From: Tias G. <tia...@cs...> - 2008-06-17 13:07:29
|
On Thu, 12 Jun 2008 21:53:25 +0200, Chris Jefferson <ch...@bu...> wrote: > Thank you for your comments! > > Fortunately, in the next couple of weeks Minion's documentation should > improve hugely, as a Constraint Programming Summer School is being > held in St. Andrews ( http://www-circa.mcs.st-and.ac.uk/cpss2008/ ) in > which we will be using Minion extensively. We will use your comments > when making these changes! I'll be attending that summer school, that's why I'm already testing it out a bit on my own models : ) > As you say, the "-quiet" and "-verbose" flags only effect the parser. > They should probably be renamed. > > You are also right that the "-printsol" option never does anything. > Sorry about that. > > The 'PRINT' statement and any command line flags are supposed to > forfill different roles. The 'PRINT' statement decides which variables > should be printed, as in many problems there are lots of variables > whose values we do not care about. This set cannot be changed from the > command line, the only choice which can be made is how things are > actually printed. > > you might want to look at the "-tableout" option, which puts a number > of useful facts into another file, including size of search and time > taken. Then you could seperate reading the solutions and reading info > about search. > > In terms of making Minion go faster however, there are some more > useful options available to you. You may have to experiment with > these: > > ... Thanks for the tips, but my problem uses only binary variables, and (reified) linear constraints on them, so bounds are not relevant and consistency isn't really influential. > -varorder is another powerful tool, but can be difficult to tune. Look > out for overtuning for one or two instances. Useful values to try are: > > static (default) - goes in the order you list in the 'VARORDER' section. > conflict - which tries to search variables which have previously > caused problems. > sdf - Generally considered the "standard" order most people use. Interestingly, I've compared with gecode for some datasets, and minion is slightly better than gecode if I use the input order as variable ordering. If i take 'degree_max' (take variable which is most constrained) then gecode becomes significantly faster. Would your system allow for a variable ordering similar to 'degree_max' ? I'm interested to see if minion would outperform gecode, and how it would scale into 10 000's of variables and constraints. Greetings, Tias |