# n es el numero de dominos que vamos a apilar param n:=10; # V es el conjunto de los dominos set V:={1 to n}; # x[i] nos dice la coordenada x del lado izquierdo del i-esimo domino var x[V] >=0; # queremos maximizar la coordenada x de la ubicacion del ultimo domino maximize fobj: x[n]+2; # sujeto a que el primero de los dominos empiece en x=0 subto empieza: x[1]==0; # tambien le pido que se mueva hacia la derecha subto avance: forall in V with i>=2: x[i]>=x[i-1]; # y que este en equilibrio subto eq: forall in V with j>=2 do sum in V with i>=j: x[i] <=(n-j+1)*(x[j-1]+1);