scipopt / PyGCGOpt

Python interface and modeling environment for GCG
https://scipopt.github.io/PyGCGOpt/
MIT License
14 stars 4 forks source link

The variable number in the decomposition does not match the number in the model #32

Open haoyangliu123 opened 6 months ago

haoyangliu123 commented 6 months ago

Dear support team,

I use pyGCGopt 0.3.1, GCG 3.5.5, SCIP 8.1.0, pySCIPopt 4.4.0 to detect the following instance. The instance has 4200 variables (200 bin, 0 int, 0 impl, 4000 cont) and 7209 constraints, but I find the decomposition only has 3209 variables.

The instance Uploading instance.txt… (you may want to change the .txt to .mps before using this instance)

starting detection
 Consclassifier "nonzeros" yields a classification with 32  different constraint classes 
 Consclassifier "constypes" yields a classification with 1 different constraint classes 
 Consclassifier "constypes according to miplib" yields a classification with 2 different constraint classes 
 Consclassifier "gamsdomain" yields a classification with 1  different constraint classes 
 Conspartition "gamsdomain" is not considered since it offers the same structure as "constypes" conspartition
 Consclassifier "gamssymbols" yields a classification with 1  different constraint classes 
 Conspartition "gamssymbols" is not considered since it offers the same structure as "constypes" conspartition
 Varclassifier "gamsdomain" yields a classification with 1  different variable classes 
 Varclassifier "gamssymbols" yields a classification with 1  different variable classes 
 Varpartition "gamssymbols" is not considered since it offers the same structure as "gamsdomain"
 Varclassifier "vartypes" yields a classification with 2 different variable classes
 Varclassifier "varobjvals" yields a classification with 2 different variable classes
 Varpartition "varobjvals" is not considered since it offers the same structure as "vartypes"
 Varclassifier "varobjvalsigns" yields a classification with 2 different variable classes
 Varpartition "varobjvalsigns" is not considered since it offers the same structure as "vartypes"
 the current consclass distribution includes 32 classes but only 18 are allowed for GCGconshdlrDecompCalcCandidatesNBlocks()
start finding decompositions for original problem!
 in dec_consclass: there are 3 different constraint classes   
  the current consclass distribution includes 32 classes but only 9 are allowed for propagatePartialdec() of cons class detector
 the current constraint classifier "constypes" consists of 1 different classes   
  the current constraint classifier "constypes according to miplib" consists of 2 different classes   
 dec_consclass found 4 new partialdecs 
dec_densemasterconss found 1 new partialdec 
dec_neighborhoodmaster found 1 new partialdec 
POSTPROCESSING of decompositions. Added 1 new decomps. 
Found 10 finished decompositions.
Measured running time per detector:
Detector postprocess               worked on        1 finished decompositions and took a total time of      0.002
Detector consclass                 worked on        4 finished decompositions and took a total time of      0.006
Detector densemasterconss          worked on        1 finished decompositions and took a total time of      0.000
Detector neighborhoodmaster        worked on        1 finished decompositions and took a total time of      0.000
Detector connectedbase             worked on        9 finished decompositions and took a total time of      0.151
Detector varclass                  worked on        3 finished decompositions and took a total time of      0.001
finished finding decompositions for original problem!
Detection Time: 4.03

The codes are as follows

instance = "instance.mps"
m = gcg.Model()
m.readProblem(instance)
m.detect()
decomps = m.listDecompositions()
d = decomps[0]
print(d.getNVars())

All the best Regards

jurgen-lentz commented 6 months ago

Hallo @haoyangliu123,

Unfortunately, I am not able to download the instance. Can you please send me the instance to the email jurgen.lentz@rwth-aachen.de ?

Best wishes, Jurgen