# Binary Random CSP

Description
A random CSP is defined by a four-tuple (n, d, p1, p2), where n denotes the number of variables and d denotes the domain size of each variable, p1 and p2 are two probabilities. They are used to generate randomly the binary constraints among the variables. p1 represents the probability that a constraint exists between two different variables and p2 represents the probability that a pair of values in the domains of two variables connected by a constraint is incompatible. We use a so called model B of Random CSP (n, d, n1, n2) where n1 = p1n(n-1)/2 pairs of variables are randomly and uniformly selected and binary constraints are posted between them. For each constraint, n2 = p2d^2 randomly and uniformly selected pairs of values are picked as incompatible. For some tests, we turned the random CSP problem into an optimisation problem (minCSP). The goal is to minimize the total sum of values for all variables.
Execution
Usage (in folder \bin): `csp.bat file.cfg [output_dir]` `file.cfg` ... configuration file `output_dir` ... output folder Example: `csp.bat "..\cfg\csp\CSP(25,15,198,22).cfg" "c:\temp\CSP(25,15,198,22)"` `csp.bat "..\cfg\csp\minCSP(50,12,250,32).cfg" "c:\temp\minCSP(50,12,250,32)"` Output: Output is located in the folder `output_dir\<date>`, generated input problem (compatibilty matrix of each constraint) as well as the solution (list of assignments) is written in the file `info.txt`. For more details about the problem implementation and parameters (i.e., content of the configuration file `file.cfg`), please consult the documentation of the main class ifs.example.csp.Test and the problem implementation (package ifs.example.csp).

[back]