U

#### user25330421

##### Guest

https://github.com/google/or-tools/blob/stable/ortools/sat/samples/cp_sat_example.py.

Every code example gets hung up on the same part after creating the solver.

When I run the code I am not getting an output from any of the examples, each time it gets hung up after creating the solver, then the script just seems to terminate. I have modified this CP-Stat model code example with some print statements for debugging but I still can't figure out why every example gets hung up on the same part.

Code:

```
#!/usr/bin/env python3
# [START program]
"""Simple solve."""
# [START import]
from ortools.sat.python import cp_model
# [END import]
def main() -> None:
"""Minimal CP-SAT example to showcase calling the solver."""
print("Starting the solver...") # Debug print statement
try:
# Creates the model.
# [START model]
print("Creating model...")
model = cp_model.CpModel()
print("Model created.")
# [END model]
# Creates the variables.
# [START variables]
print("Creating variables...")
var_upper_bound = max(50, 45, 37)
x = model.NewIntVar(0, var_upper_bound, "x")
y = model.NewIntVar(0, var_upper_bound, "y")
z = model.NewIntVar(0, var_upper_bound, "z")
print(f"Variables created: x in [0, {var_upper_bound}], y in [0, {var_upper_bound}], z in [0, {var_upper_bound}]")
# [END variables]
# Creates the constraints.
# [START constraints]
print("Adding constraints...")
model.Add(2 * x + 7 * y + 3 * z <= 50)
model.Add(3 * x - 5 * y + 7 * z <= 45)
model.Add(5 * x + 2 * y - 6 * z <= 37)
print("Constraints added.")
# [END constraints]
# [START objective]
print("Setting objective...")
model.Maximize(2 * x + 2 * y + 3 * z)
print("Objective set.")
# [END objective]
# Creates a solver and solves the model.
# [START solve]
print("Creating solver...")
solver = cp_model.CpSolver()
print("Solver created.")
print("Solving model...")
status = solver.Solve(model)
print(f"Model solved with status: {status}")
# [END solve]
# [START print_solution]
print("Checking solution...")
if status == cp_model.OPTIMAL or status == cp_model.FEASIBLE:
print(f"Maximum of objective function: {solver.ObjectiveValue()}\n")
print(f"x = {solver.Value(x)}")
print(f"y = {solver.Value(y)}")
print(f"z = {solver.Value(z)}")
else:
print("No solution found.")
# [END print_solution]
# Statistics.
# [START statistics]
print("Printing statistics...")
print("\nStatistics")
print(f" status : {solver.StatusName(status)}")
print(f" conflicts: {solver.NumConflicts()}")
print(f" branches : {solver.NumBranches()}")
print(f" wall time: {solver.WallTime()} s")
print("Statistics printed.")
# [END statistics]
except Exception as e:
print(f"An error occurred: {e}")
if __name__ == "__main__":
main()
print("Solver finished.") # Debug print statement
# [END program]
```

I am using python version 3.12.1 with VS Code. I have uninstalled and reinstalled OR-Tools and all dependent libraries multiple times. The output in the terminal appears as follows:

Code:

```
Starting the solver...
Creating model...
Model created.
Creating variables...
Variables created: x in [0, 50], y in [0, 50], z in [0, 50]
Adding constraints...
Constraints added.
Setting objective...
Objective set.
Creating solver...
Solver created.
Solving model...
```

The optimized solution should look something like:

Code:

```
Model solved with status: 4 # This status code should indicate OPTIMAL or FEASIBLE
Checking solution...
Maximum of objective function: 32.0 # Example value
x = 5.0 # Example value
y = 0.0 # Example value
z = 0.0 # Example value
Printing statistics...
Statistics
status : OPTIMAL # Example status
conflicts: 0
branches : 0
wall time: 0.001 s
Statistics printed.
Solver finished.
```

I believe there is an issue with solver itself but I'm not sure how to diagnose what it is, it may be something simple that I am overlooking. Any help would be greatly appreciated.

<p>I am new to Google OR-Tools and trying to start by running a basic example from OR-Tools example library found here</p>

<p><a href="https://github.com/google/or-tools/blob/stable/ortools/sat/samples/cp_sat_example.py" rel="nofollow noreferrer">https://github.com/google/or-tools/blob/stable/ortools/sat/samples/cp_sat_example.py</a>.</p>

<p>Every code example gets hung up on the same part after creating the solver.</p>

<p>When I run the code I am not getting an output from any of the examples, each time it gets hung up after creating the solver, then the script just seems to terminate. I have modified this CP-Stat model code example with some print statements for debugging but I still can't figure out why every example gets hung up on the same part.</p>

<pre><code>#!/usr/bin/env python3

# [START program]

"""Simple solve."""

# [START import]

from ortools.sat.python import cp_model

# [END import]

def main() -> None:

"""Minimal CP-SAT example to showcase calling the solver."""

print("Starting the solver...") # Debug print statement

try:

# Creates the model.

# [START model]

print("Creating model...")

model = cp_model.CpModel()

print("Model created.")

# [END model]

# Creates the variables.

# [START variables]

print("Creating variables...")

var_upper_bound = max(50, 45, 37)

x = model.NewIntVar(0, var_upper_bound, "x")

y = model.NewIntVar(0, var_upper_bound, "y")

z = model.NewIntVar(0, var_upper_bound, "z")

print(f"Variables created: x in [0, {var_upper_bound}], y in [0, {var_upper_bound}], z in [0, {var_upper_bound}]")

# [END variables]

# Creates the constraints.

# [START constraints]

print("Adding constraints...")

model.Add(2 * x + 7 * y + 3 * z <= 50)

model.Add(3 * x - 5 * y + 7 * z <= 45)

model.Add(5 * x + 2 * y - 6 * z <= 37)

print("Constraints added.")

# [END constraints]

# [START objective]

print("Setting objective...")

model.Maximize(2 * x + 2 * y + 3 * z)

print("Objective set.")

# [END objective]

# Creates a solver and solves the model.

# [START solve]

print("Creating solver...")

solver = cp_model.CpSolver()

print("Solver created.")

print("Solving model...")

status = solver.Solve(model)

print(f"Model solved with status: {status}")

# [END solve]

# [START print_solution]

print("Checking solution...")

if status == cp_model.OPTIMAL or status == cp_model.FEASIBLE:

print(f"Maximum of objective function: {solver.ObjectiveValue()}\n")

print(f"x = {solver.Value(x)}")

print(f"y = {solver.Value}")

print(f"z = {solver.Value(z)}")

else:

print("No solution found.")

# [END print_solution]

# Statistics.

# [START statistics]

print("Printing statistics...")

print("\nStatistics")

print(f" status : {solver.StatusName(status)}")

print(f" conflicts: {solver.NumConflicts()}")

print(f" branches : {solver.NumBranches()}")

print(f" wall time: {solver.WallTime()} s")

print("Statistics printed.")

# [END statistics]

except Exception as e:

print(f"An error occurred: {e}")

if __name__ == "__main__":

main()

print("Solver finished.") # Debug print statement

# [END program]

</code></pre>

<p>I am using python version 3.12.1 with VS Code. I have uninstalled and reinstalled OR-Tools and all dependent libraries multiple times. The output in the terminal appears as follows:</p>

<pre><code>Starting the solver...

Creating model...

Model created.

Creating variables...

Variables created: x in [0, 50], y in [0, 50], z in [0, 50]

Adding constraints...

Constraints added.

Setting objective...

Objective set.

Creating solver...

Solver created.

Solving model...

</code></pre>

<p>The optimized solution should look something like:</p>

<pre><code>Model solved with status: 4 # This status code should indicate OPTIMAL or FEASIBLE

Checking solution...

Maximum of objective function: 32.0 # Example value

x = 5.0 # Example value

y = 0.0 # Example value

z = 0.0 # Example value

Printing statistics...

Statistics

status : OPTIMAL # Example status

conflicts: 0

branches : 0

wall time: 0.001 s

Statistics printed.

Solver finished.

</code></pre>

<p>I believe there is an issue with solver itself but I'm not sure how to diagnose what it is, it may be something simple that I am overlooking. Any help would be greatly appreciated.</p>