""" 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) )