fix examples after FEASIBLE -> OPTIMAL CP-SAT change; improve display of the sudoku problem
This commit is contained in:
@@ -85,7 +85,7 @@ def cover_rectangle(num_squares):
|
||||
print('%s found in %0.2fs' % (solver.StatusName(status), solver.WallTime()))
|
||||
|
||||
# Prints solution.
|
||||
if status == cp_model.FEASIBLE:
|
||||
if status == cp_model.OPTIMAL:
|
||||
display = [[' ' for _ in range(size_x)] for _ in range(size_y)]
|
||||
for i in range(num_squares):
|
||||
sol_x = solver.Value(x_starts[i])
|
||||
|
||||
@@ -161,7 +161,7 @@ def solve_hidato(puzzle, index):
|
||||
solver = cp_model.CpSolver()
|
||||
status = solver.Solve(model)
|
||||
|
||||
if status == cp_model.FEASIBLE:
|
||||
if status == cp_model.OPTIMAL:
|
||||
if visualization.RunFromIPython():
|
||||
output = visualization.SvgWrapper(10, r, 40.0)
|
||||
for i, var in enumerate(positions):
|
||||
|
||||
@@ -66,9 +66,16 @@ def solve_sudoku():
|
||||
# Solve and print out the solution.
|
||||
solver = cp_model.CpSolver()
|
||||
status = solver.Solve(model)
|
||||
if status == cp_model.FEASIBLE:
|
||||
if status == cp_model.OPTIMAL:
|
||||
for i in line:
|
||||
print([int(solver.Value(grid[(i, j)])) for j in line])
|
||||
output = ''
|
||||
for j in line:
|
||||
output += str(int(solver.Value(grid[(i, j)]))) + ' '
|
||||
if j == 2 or j == 5:
|
||||
output += '| '
|
||||
print(output)
|
||||
if i == 2 or i == 5:
|
||||
print('------|-------|-------')
|
||||
|
||||
|
||||
solve_sudoku()
|
||||
|
||||
@@ -110,7 +110,7 @@ def solve_zebra():
|
||||
solver = cp_model.CpSolver()
|
||||
status = solver.Solve(model)
|
||||
|
||||
if status == cp_model.FEASIBLE:
|
||||
if status == cp_model.OPTIMAL:
|
||||
people = [englishman, spaniard, japanese, ukrainian, norwegian]
|
||||
water_drinker = [
|
||||
p for p in people if solver.Value(p) == solver.Value(water)
|
||||
|
||||
Reference in New Issue
Block a user