You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I agree that it should be defined clearly what semantics are given to empty
arrays for all the cases that you mention.
For circuit in particular, Gecode elects to not define the semantics for
empty arrays and that is why it fails noisily. I think that that is a
reasonable choice to make for Gecode when used from C++. However, that
should really not be exposed from MiniZinc, the case of an empty array
should be handled in a manner that is consistent with what MiniZinc thinks
the semantics should be. I will defer any changes on the Gecode side until
we have some guidance.
Cheers,
Mikael
On Mon, Dec 18, 2023 at 11:12 AM Mats Carlsson ***@***.***> wrote:
IMHO, the following models should silently succeed:
include "globals.mzn";
constraint sliding_sum(0, 0, 0, []);
include "globals.mzn";
constraint symmetric_all_different([]);
include "globals.mzn";
constraint subcircuit([]);
include "globals.mzn";
constraint bin_packing_capa([], [], []);
include "globals.mzn";
constraint bin_packing_load([], [], []);
include "globals.mzn";
constraint bin_packing(0, [], []);
include "globals.mzn";
constraint circuit([]);
include "globals.mzn";
constraint decreasing([]);
include "globals.mzn";
constraint increasing([]);
include "globals.mzn";
constraint disjunctive([], []);
include "globals.mzn";
constraint inverse([], []);
and the following should silently fail:
include "globals.mzn";
constraint let {var int: W} in member([], W);
but:
- sliding_sum, symmetric_all_different, increasing, decreasing, inverse
fail noisily
- symmetric_all_different fails noisily
- subcircuit succeeds silently with Gecode but fails noisily with
Chuffed and OR-Tools
- bin_packing and friends, disjunctive, knapsack give evaluation
errors during flattening
- circuit crashes Gecode and fails noisily with Chuffed and OR-Tools
- member fails silently with Gecode but noisily with Chuffed and
OR-Tools
For circuit and subcircuit, the semantics is not obvious. Is a circuit
with no nodes still a circuit?
—
Reply to this email directly, view it on GitHub
<#770>, or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAB34ZX6UHEYTIFOIDEMVNDYKAJHFAVCNFSM6AAAAABAZIL7XSVHI2DSMVQWIX3LMV43ASLTON2WKOZSGA2DMMRWGA3TINA>
.
You are receiving this because you are subscribed to this thread.Message
ID: ***@***.***>
IMHO, the following models should silently succeed:
and the following should silently fail:
but:
sliding_sum
,symmetric_all_different
,increasing
,decreasing
,inverse
fail noisilysymmetric_all_different
fails noisilysubcircuit
succeeds silently with Gecode but fails noisily with Chuffed and OR-Toolsbin_packing
and friends,disjunctive
,knapsack
give evaluation errors during flatteningcircuit
crashes Gecode and fails noisily with Chuffed and OR-Toolsmember
fails silently with Gecode but noisily with Chuffed and OR-ToolsFor
circuit
andsubcircuit
, the semantics is not obvious. Is a circuit with no nodes still a circuit?The text was updated successfully, but these errors were encountered: