SCOP Trial
SCOP (SOlver for Constraint Programming) trial
How to Install to Jupyter Notebook (Lab) and/or Google Colaboratory
pip install scop-solver-trial
How to use
See https://mikiokubo.github.io/scoptrial/ and https://www.logopt.com/scop2/
Here is an example.
from scop_solver_trial import Alldiff, Linear, Model
"""
Example 1 (Assignment Problem):
Three jobs (0,1,2) must be assigned to three workers (A,B,C)
so that each job is assigned to exactly one worker.
The cost matrix is represented by the list of lists
Cost=[[15, 20, 30],
[7, 15, 12],
[25,10,13]],
where rows of the matrix are workers, and columns are jobs.
Find the minimum cost assignment of workers to jobs.
"""
workers = ["A", "B", "C"]
Jobs = [0, 1, 2]
Cost = {
("A", 0): 15,
("A", 1): 20,
("A", 2): 30,
("B", 0): 7,
("B", 1): 15,
("B", 2): 12,
("C", 0): 25,
("C", 1): 10,
("C", 2): 13,
}
m = Model()
x = {}
for i in workers:
x[i] = m.addVariable(name=i, domain=Jobs)
x_list = []
for i in x:
x_list.append(x[i])
con1 = Alldiff("AD", x_list, weight="inf")
con2 = Linear("linear_constraint", weight=1, rhs=0, direction="<=")
for i in workers:
for j in Jobs:
con2.addTerms(Cost[i, j], x[i], j)
m.addConstraint(con1)
m.addConstraint(con2)
print(m)
m.Params.TimeLimit = 1
sol, violated = m.optimize()
if m.Status == 0:
print("solution")
for x in sol:
print(x, sol[x])
print("violated constraint(s)")
for v in violated:
print(v, violated[v])
Model:
number of variables = 3
number of constraints= 2
variable A:['0', '1', '2'] = None
variable B:['0', '1', '2'] = None
variable C:['0', '1', '2'] = None
AD: weight= inf type=alldiff A B C ; :LHS =0
linear_constraint: weight= 1 type=linear 15(A,0) 20(A,1) 30(A,2) 7(B,0) 15(B,1) 12(B,2) 25(C,0) 10(C,1) 13(C,2) <=0 :LHS =0
================ Now solving the problem ================
solution
A 0
B 2
C 1
violated constraint(s)
linear_constraint 37
Metadata
Release files for scop-solver-trial 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| scop_solver_trial-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Release files / scop_solver_trial-0.1.1-py3-none-any.whl
| Download URL | scop_solver_trial-0.1.1-py3-none-any.whl |
|---|---|
| Size | 325.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d2bb93c748afff19e5ce365f64910bd20f60afdbfb1b0926e7679b8109af815f
|
|
BLAKE2b-256 checksum How to use checksums |
1d3b34f4f76f18f268248699d1c5ddc00ed5dda8c0495a37cd7f559f53a4f0b2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.12.5
|