<html><head></head><body><div style="font-family: Verdana;font-size: 12.0px;"><div>Hi Christopher,</div>

<div> </div>

<div>here is a small example:</div>

<div> </div>

<div>=============================</div>

<div>
<div>STATISTICS<br/>
  Problem name     : mzn_scip<br/>
  Variables        : 11 (10 binary, 1 integer, 0 implicit integer, 0 continuous)<br/>
  Constraints      : 0 initial, 1 maximal<br/>
OBJECTIVE<br/>
  Sense            : minimize<br/>
VARIABLES<br/>
  [binary] <X_INTRODUCED_0_>: obj=0, original bounds=[0,1]<br/>
  [binary] <X_INTRODUCED_1_>: obj=0, original bounds=[0,1]<br/>
  [binary] <X_INTRODUCED_2_>: obj=0, original bounds=[0,1]<br/>
  [binary] <X_INTRODUCED_3_>: obj=0, original bounds=[0,1]<br/>
  [binary] <X_INTRODUCED_4_>: obj=0, original bounds=[0,1]<br/>
  [binary] <X_INTRODUCED_5_>: obj=0, original bounds=[0,1]<br/>
  [binary] <X_INTRODUCED_6_>: obj=0, original bounds=[0,1]<br/>
  [binary] <X_INTRODUCED_7_>: obj=0, original bounds=[0,1]<br/>
  [binary] <X_INTRODUCED_8_>: obj=0, original bounds=[0,1]<br/>
  [binary] <X_INTRODUCED_9_>: obj=0, original bounds=[0,1]<br/>
  [integer] <objective>: obj=0, original bounds=[2,2]<br/>
CONSTRAINTS<br/>
  [orbisack] <p_lex_lesseq__orbisack_0>: orbisack(X_INTRODUCED_0_,X_INTRODUCED_1_.X_INTRODUCED_2_,X_INTRODUCED_3_.X_INTRODUCED_4_,X_INTRODUCED_5_.X_INTRODUCED_6_,X_INTRODUCED_7_.X_INTRODUCED_8_,X_INTRODUCED_9_;<br/>
END</div>
</div>

<div>=============================</div>

<div> 
<div>
<div>However when I tried to read it in SCIP I got message:</div>

<div>WARNING: constraint handler <orbisack> does not support parsing constraints<br/>
 </div>

<div>The .cip model was exported using C API, and the model created too, from MiniZinc.</div>

<div> </div>

<div>Stack trace (gcc 9.3.0, Ubuntu 20.04):</div>

<div>=============================</div>

<div>Program received signal SIGSEGV, Segmentation fault.<br/>
0x00007ffff16367ea in SCIPconsTransform (origcons=0x555555eab350, blkmem=0x555555ddf070, set=0x555555dd47a0, transcons=0x7fffffffce98)<br/>
    at /home/bg25/Downloads/Software/Solvers/compiled_packages/SCIP/scipoptsuite-7.0.2/scip/src/scip/cons.c:6439<br/>
6439          (*transcons)->transorigcons = origcons;<br/>
(gdb) where<br/>
#0  0x00007ffff16367ea in SCIPconsTransform (origcons=0x555555eab350, blkmem=0x555555ddf070, set=0x555555dd47a0, transcons=0x7fffffffce98)<br/>
    at /home/bg25/Downloads/Software/Solvers/compiled_packages/SCIP/scipoptsuite-7.0.2/scip/src/scip/cons.c:6439<br/>
#1  0x00007ffff18646cf in SCIPprobTransform (source=0x555555c7a290, blkmem=0x555555ddf070, set=0x555555dd47a0, stat=0x555555f793c0, primal=0x555555c8d9e0,<br/>
    tree=0x555555e51630, reopt=0x0, lp=0x555555cefd60, branchcand=0x555555e2a0c0, eventfilter=0x555555ef10c0, eventqueue=0x555555e24bc0, conflictstore=0x555555f831b0,<br/>
    target=0x555555dbb518) at /home/bg25/Downloads/Software/Solvers/compiled_packages/SCIP/scipoptsuite-7.0.2/scip/src/scip/prob.c:584<br/>
#2  0x00007ffff19043ea in SCIPtransformProb (scip=0x555555dbb470)<br/>
    at /home/bg25/Downloads/Software/Solvers/compiled_packages/SCIP/scipoptsuite-7.0.2/scip/src/scip/scip_solve.c:407<br/>
#3  0x00007ffff190e4ff in SCIPpresolve (scip=0x555555dbb470)<br/>
    at /home/bg25/Downloads/Software/Solvers/compiled_packages/SCIP/scipoptsuite-7.0.2/scip/src/scip/scip_solve.c:2390<br/>
#4  0x00007ffff190f1f6 in SCIPsolve (scip=0x555555dbb470)<br/>
    at /home/bg25/Downloads/Software/Solvers/compiled_packages/SCIP/scipoptsuite-7.0.2/scip/src/scip/scip_solve.c:2620<br/>
#5  0x000055555567120c in MIPScipWrapper::solveSCIP() ()<br/>
#6  0x0000555555660dca in MiniZinc::MIPSolverinstance<MIPScipWrapper>::solve() ()<br/>
#7  0x00005555555bfd2e in MiniZinc::MznSolver::solve() ()<br/>
#8  0x00005555555c874e in MiniZinc::MznSolver::run(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) ()<br/>
#9  0x00005555555bb2cd in main ()<br/>
=============================</div>

<div> </div>

<div> </div>

<div>I guess should be easiest to go from here, but if you want to reproduce, need MiniZinc @ 4802031dc17742e6978fc683ef68324c73a66796 and the following command:</div>

<div> </div>

<div> minizinc -v -s --solver scip challenge_from_2012/mznc2017_probs/opd/opd__reduce_find_SCIPbug.mzn challenge_from_2012/mznc2017_probs/opd/small_bibd_06_50_25__reduced.dzn --writeModel opd__verySmall.cip</div>

<div> </div>

<div>with the .mzn and .dzn as follows (reduced from original ones in MZN Challenge 2017):</div>

<div>.MZN:</div>

<div>
<div>include "lex_greatereq.mzn";</div>

<div>%------------------------------------------------------------------------------%<br/>
% Parameters</div>

<div>int: v;                     % Number of rows<br/>
int: b;                     % Number of columns<br/>
int: r;                     % Row sum</div>

<div>set of int: rows = 1..v;    % Set of rows<br/>
set of int: cols = 1..b;    % Set of columns</div>

<div>%------------------------------------------------------------------------------%<br/>
% Lower bound computation for lambda</div>

<div>int: rv = r*v;<br/>
int: rvmodb = rv mod b;<br/>
int: floorrv = rv div b;<br/>
int: ceilrv = rv div b + bool2int(rv mod b != 0);<br/>
int: num = (ceilrv*ceilrv*rvmodb+floorrv*floorrv*(b-rvmodb)-rv);<br/>
int: denom = v*(v-1);<br/>
int: lb_lambda = num div denom + bool2int( num mod denom !=0);</div>

<div>%------------------------------------------------------------------------------%<br/>
% This line is there for debugging purposes, it can be safely removed</div>

<div>%int: tmp = trace("% Computed lower bound for lambda: "++show(lb_lambda)++"\n",lb_lambda);</div>

<div>%------------------------------------------------------------------------------%<br/>
% Variables</div>

<div>array [rows, cols] of var 0..1: m;
<div>var lb_lambda..b: objective;        % The 'lambda' variable</div>

<div>
<div>constraint symmetry_breaking_constraint(<br/>
    forall(j in {min(cols), min(cols)+1} diff {max(cols)})(<br/>
        lex_greatereq([m[i, j] | i in rows], [m[i, j+1] | i in rows])<br/>
    )<br/>
);</div>

<div> </div>
</div>

<div>.DZN:</div>

<div>v =  5;<br/>
b = 2;<br/>
r = 2;<br/>
 </div>
</div>
</div>

<div> </div>

<div>I also tried compiling current scipoptsuite/master but my ssh seems to invalid for gcg, and then cmake canot find CMakeLists.txt for soplex for example.</div>

<div> </div>

<div>Best regards,</div>

<div>Gleb</div>

<div> </div>

<div name="quote" style="margin:10px 5px 5px 10px; padding: 10px 0 10px 10px; border-left:2px solid #C3D9E5; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">
<div style="margin:0 0 10px 0;"><b>Gesendet:</b> Freitag, 05. Februar 2021 um 22:01 Uhr<br/>
<b>Von:</b> "Christopher Hojny" <c.hojny@tue.nl><br/>
<b>An:</b> scip@zib.de<br/>
<b>Betreff:</b> Re: [SCIP] isModelCons in Orbisack -- Crash</div>

<div name="quoted-content">Hi Gleb,<br/>
<br/>
you are right. If you want to use orbisacks to "just" handle symmetries<br/>
in your problem, you should set the "isModelCons" flag to FALSE. In this<br/>
case, SCIP will also except solutions that do not adhere to the orbisack<br/>
constraint. Only in case you want to enforce that a solution adheres to<br/>
the orbisack structure, the "isModelCons" flag should be set to TRUE. If<br/>
SCIP detects orbisacks on its own, it always adds them with the flag<br/>
being FALSE to not hinder heuristics to find solutions.<br/>
<br/>
Regarding your crash report, it is difficult to find the reason without<br/>
further information. Could you provide further information on how you<br/>
add orbisacks, a stack trace of the fail, or a minimum crashing example<br/>
please?<br/>
<br/>
Best,<br/>
Christopher<br/>
<br/>
<br/>
<br/>
On 05-02-2021 06:49, Gleb Belov wrote:<br/>
> Hi,<br/>
>  <br/>
> I have a model where anti-symmetry constraints use orbisacks. When<br/>
> setting isModelCons==0, SCIP 7.0.2 crashes i SCIPconsTransform(). Do I<br/>
> understand correctly that pure anti-symmetry constraints should set<br/>
> isModelCons==0?<br/>
>  <br/>
> Cheers,<br/>
> Gleb<br/>
>  <br/>
>  <br/>
><br/>
> _______________________________________________<br/>
> Scip mailing list<br/>
> Scip@zib.de<br/>
> <a href="https://listserv.zib.de/mailman/listinfo/scip" target="_blank">https://listserv.zib.de/mailman/listinfo/scip</a><br/>
><br/>
_______________________________________________<br/>
Scip mailing list<br/>
Scip@zib.de<br/>
<a href="https://listserv.zib.de/mailman/listinfo/scip" target="_blank">https://listserv.zib.de/mailman/listinfo/scip</a></div>
</div>
</div>
</div>

<div> </div>

<div class="signature"> </div></div></body></html>