1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | """ PyCSP3 Model (see pycsp.org) Examples: python3 Ramsey.py python3 Ramsey.py -data=10 """ from pycsp3 import * n = data or 8 # x[i][j] is the color of the edge between nodes i and j x = VarArray(size = [n, n], dom = lambda i, j: range ((n * (n - 1 )) / / 2 ) if i < j else None ) satisfy( # no monochromatic triangle in the graph NValues(x[i][j], x[i][k], x[j][k]) > 1 for (i, j, k) in combinations( range (n), 3 ) ) minimize( Maximum(x) ) |