feat: enable Basic var and List var to coexist for the construction heuristic#1593
Conversation
triceo
left a comment
There was a problem hiding this comment.
First round of review finished. Will do a deeper reading when I have more time.
One general comment: until we can deliver this for LS as well, this needs to be disabled - people shouldn't be able to configure this, if it's going to fail later. It also should not be in the docs.
Let's keep the PR as is for now, but before we merge it, we add a kill switch. We will remove the kill switch when we merge the LS part.
Also - did you make sure enterprise works? Including nearby?
Not yet. I've planned it as a later step for when the LS is working. |
triceo
left a comment
There was a problem hiding this comment.
One comment, otherwise LGTM.
|



This PR allows for the construction of an initial solution using both basic and list variables within the same model. The proposal does not introduce any new configurations for the construction heuristic; rather, it modifies the entity placer definition to accept a list instead of just a single element.
There are some limitations concerning the definition of the entity placer. Therefore, the current behavior for a single placer configuration will remain unchanged. However, a new option has been added to define a placer for values (list variable) and a placer for entities (basic variable).
By default, the solving process combines the default strategies from both placers. For each list variable placement, we then test all possible placements for the basic variables and select the best combination. It is important to note that the list variables impose some restrictions on the CH settings, limiting it to only defining
QueuedValuePlacer. The proposed approach retains these limitations, and the mixed model can only be configured as shown in the previous snippet.