Skip to content

Commit

Permalink
minor tweaks
Browse files Browse the repository at this point in the history
  • Loading branch information
paulk-asert committed Nov 11, 2012
1 parent b86feb4 commit 69eb337
Show file tree
Hide file tree
Showing 6 changed files with 33 additions and 29 deletions.
Binary file modified OrTools/lib/com.google.ortools.constraintsolver.jar
Binary file not shown.
Binary file modified OrTools/lib/jniconstraintsolver.dll
Binary file not shown.
Binary file removed OrTools/lib/jniconstraintsolver32.dll.bak
Binary file not shown.
Binary file removed OrTools/lib/jniconstraintsolver64.dll.bak
Binary file not shown.
60 changes: 32 additions & 28 deletions OrTools/src/OrToolsCraneTortoise.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -2,35 +2,39 @@ import com.google.ortools.constraintsolver.IntVar
import com.google.ortools.constraintsolver.Solver
import groovy.transform.CompileStatic

@CompileStatic
class OrToolsCraneTortoise {
static { System.loadLibrary("jniconstraintsolver") }

@CompileStatic
static void main(args) {
def solver = new Solver("OrToolsCraneTortoise")
def totalAnimals = 7
def totalLegs = 20
IntVar cranes = solver.makeIntVar(0, totalAnimals, 'Cranes')
IntVar tortoises = solver.makeIntVar(0, totalAnimals, 'Tortoises')
solver.addConstraint(solver.makeEquality(solver.makeSum(cranes, tortoises), totalAnimals))
def craneLegs = solver.makeProd(cranes, 2)
def tortoiseLegs = solver.makeProd(tortoises, 4)
solver.addConstraint(solver.makeEquality(solver.makeSum(cranes, tortoises), totalAnimals))
solver.addConstraint(solver.makeEquality(solver.makeSum(craneLegs, tortoiseLegs), totalLegs))
IntVar[] animals = [cranes, tortoises]
def db = solver.makePhase(animals, solver.CHOOSE_FIRST_UNBOUND, solver.ASSIGN_MIN_VALUE)
solver.newSearch(db)
while (solver.nextSolution()) {
println animals
}
solver.endSearch()
System.loadLibrary("jniconstraintsolver")
solve()
}

static solve() {
new Solver(getClass().name).with {
def totalAnimals = 7
def cranes = makeIntVar(0, totalAnimals, 'Cranes')
def tortoises = makeIntVar(0, totalAnimals, 'Tortoises')
addConstraint(makeEquality(makeSum(cranes, tortoises), totalAnimals))

// stats
println """
Solutions : ${solver.solutions()}
Failures : ${solver.failures()}
Branches : ${solver.branches()}
Wall time : ${solver.wallTime()} ms
""".stripIndent()
def totalLegs = 20
def craneLegs = makeProd(cranes, 2)
def tortoiseLegs = makeProd(tortoises, 4)
addConstraint(makeEquality(makeSum(craneLegs, tortoiseLegs), totalLegs))

IntVar[] animals = [cranes, tortoises]
newSearch(makePhase(animals, CHOOSE_FIRST_UNBOUND, ASSIGN_MIN_VALUE))
while (nextSolution()) {
println animals
}
endSearch()

// stats
println """
Solutions : ${solutions()}
Failures : ${failures()}
Branches : ${branches()}
Wall time : ${wallTime()} ms
""".stripIndent()
}
}
}
}
2 changes: 1 addition & 1 deletion OrTools/src/OrToolsMenu.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ class OrToolsMenu {
def priceEach = [215, 275, 335, 355, 420, 580]
int sum = 1505
int maxNumOrdered = sum.intdiv(priceEach.min())
new Solver("OrToolsMenu").with {
new Solver(getClass().name).with {
// in cents so we can use ints
def numOrdered = makeIntVarArray(priceEach.size(), 0, maxNumOrdered)
addConstraint(makeEquality(makeScalProd(numOrdered, priceEach as int[]).var(), sum))
Expand Down

0 comments on commit 69eb337

Please sign in to comment.