Draft
Conversation
2 tasks
This provides the space to implement the XCSP3 functionality
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR track the implementation of XCSP3 support. The goal is to support enough of the format to compete in the XCSP3 challenge.
General Tasks
fzn-huubtohuub, where the crate will be renamed fromfzn-huubtohuub-cli.Model/Solverextraction methods fromFlatZincandXcsp3Instancebehindflatzincandxcsp3feature flags inhuub.OutputandGoalobjects that could directly be output from thefrom_Xextraction methods.tracingvariable registration methods, or will we have to specialize the code for each?xcsp3-serdeTasksmetaconstraintsgroupConstraint support (as quoted from the competition call)>
extensionThis constraint is described in Section 4.1.1.2 in [BLAP21a]. Competition restrictions:
accepted. However, do note that starred (or short) tables (i.e., tables with tuples containing ’*’) are accepted, as in 2019.
Note that unary, binary and n-ary extensional constraints are accepted.
regularThis constraint is described in Section 4.1.2.1 in [BLAP21a]. Competition restrictions:
mddThis constraint is described in Section 4.1.2.3 in [BLAP21a]. Competition restrictions:
allDifferentThis constraint is described in Section 4.1.3.1 in [BLAP21a]. Competition restrictions:
In addition to the basic form of
allDifferent, the advanced formallDifferent-matrixdescribed in Section 7.2.1 in [BLAP21a] is accepted.
Also, handling view extensions is authorized for the basic form of
allDifferent. It means that instead of a list of variables inside the element , it is possible to have a list of integer expressions (trees). This is shown at the end of Section 4.1.3.1 in [BLAP21a]. Competition restriction:allDifferent, the element contains either only variablesor only integer expressions (trees). It means that it is not possible to mix both forms.
allEqualThis constraint is described in Section 4.1.3.2 in [BLAP21a]. Compared to 2019, handling
view extensions is authorized for
allEqual. It means that instead of a list of variables inside the element , it is possible to have a list of integer expressions (trees). There is no competition restriction for this constraint.orderedThis constraint is described in Section 4.1.3.4 in [BLAP21a]. Competition restrictions:
As in 2019, note that it is now possible to deal with an element .
sumThis constraint is described in Section 4.1.4.1 in [BLAP21a]. Competition restrictions:
Also, handling view extensions is authorized for sum. It means here that instead of a list of variables inside the element , it is possible to have a list of integer expressions (trees).
This is shown at the end of Section 4.1.4.1 in [BLAP21a]. Competition restriction:
countThis constraint is described in Section 4.1.4.2 in [BLAP21a]. Competition restrictions:
{lt,le,gt,ge,eq,ne}) and the (right) operand must be a value or a variable, or the operator must necessarily be in and the (right) operand must be an integer interval; See
Section 1.5 in [BLAP21a].
Compared to 2019, handling view extensions is authorized for count. It means here that instead of a list of variables inside the element , it is possible to have a list of integer expressions (trees).
nValuesThis constraint is described in Section 4.1.4.3 in [BLAP21a]. Competition restrictions:
Not that it is possible to deal with the special case where the condition is composed of the operator gt and the (right) operand is the value 1, which corresponds to the global constraint notAllEqual. Compared to 2019, handling view extensions is authorized for nValues.
It means here that instead of a list of variables inside the element , it is possible to have a list of integer expressions (trees).
cardinalityThis constraint is described in Section 4.1.4.4 in [BLAP21a]. Competition restrictions:
maximumThis constraint is described in Section 4.1.5.1 in [BLAP21a]. Competition restrictions:
minimumThis constraint is described in Section 4.1.5.2 in [BLAP21a]. Competition restrictions:
elementThis constraint is described in Section 4.1.5.3 in [BLAP21a]. Competition restrictions:
As in 2019, it is possible to have a list of values (instead of variables) inside . This is presented in Section 4.1.5.3 in [BLAP21a].
Compared to 2019, the advanced form element-matrix described in Section 7.2.3 in [BLAP21a] is accepted.
channelThis constraint is described in Section 4.1.5.4 in [BLAP21a]. Competition restrictions:
As in 2019, note that for the form of channel involving two lists, it is possible that these two lists have different sizes. This is discussed at the top of Page 79 in Section 4.1.5.4 in [BLAP21a].
noOverlapThis constraint is described in Section 4.1.6.2 in [BLAP21a]. Competition restrictions:
cumulativeThis constraint is described in Section 4.1.6.3 in [BLAP21a]. Competition restrictions:
instantiationThis constraint is described in Section 4.1.8.2 in [BLAP21a]. There is no competition restriction for this constraint.
circuitThis constraint is described in Section 4.1.7.1 in [BLAP21a]. Competition restrictions:
slideThis meta-constraint is described in Section 8.1 in [BLAP21a]. Competition restrictions:
precedenceThis constraint is described in Section 4.1.3.5 in [BLAP22]. Competition restrictions:
coveredwill not be used (and so, never present in instances used for the 2023 competition)knapsackThis constraint is described in Section 4.1.6.5 in [BLAP22]. Competition restrictions:
This constraint can be very easily decomposed.
binPackingThis constraint is described in Section 4.1.6.4 in [BLAP22]. Competition restrictions:
4.1.6.4)
This constraint can be easily decomposed.