TITLE
CirclePackingUnitSquare;
OPTIONS
ModelType=Nonlinear
ParserType=Extended
DATA
Circles := 3;
INDEX
i := 1..Circles;
j := i;
VARIABLES
Radius;
x[i];
y[i];
MODEL
MAX Radius;
SUBJECT TO
KeepcircleA[i] -> KCA: ABS(x) + Radius <= 1/2;
KeepcircleB[i] -> KCB: ABS(y) + Radius <= 1/2;
NoOverlap[i,j] WHERE (i NOV:
2 * Radius <= ((x[i] - x[i:=j])^2 + (y[i] - y[i:=j])^2)^0.5;
BOUNDS
-0.5 <= x <= 0.5;
-0.5 <= y <= 0.5;
END