Un modello matematico di ricerca operativa per il

Transcript

Un modello matematico di ricerca operativa per il
Un modello matematico per il totocalcio e scommesse
Di Cristiano Armellini, [email protected]
max(t + d )
c t + c d + f <= max
2
1
t + d < 13

t > 1
d > 1

t , d : integer
t = numero di triple al costo unitario di C1
d = numero di doppie al costo unitario di C2
f = costo fisso schedina senza doppie né triple
t, d variabili positive e intere
max = importo massimo da giocare
formulazione in LINGO
[obj] max = T+ D;
C*T + E*D + F <= 500;
T+D < 13;
T >= 1;
D >= 1;
END
@GIN(T);
@GIN(D);
Formulazione in LINDO
MAX t+d
ST
c1 t + c2 d + f<= 500
t +d < 13
t >= 1
d>=1
END
GIN 2
Modelli matematici per le scommesse sportive
Servono verificare se per un certa scommessa esiste o meno la possibilità di arbitraggio ovvero di
scommettere su tutti i risultati in modo che il giocatore vinca sempre, qualunque sia il risultato
finale. Sono possibili personalizzazioni di vari tipo (importo minimo delle quote da giocare, somma
massima complessiva, importi interi ecc).
Esempio di quote (1) 2,10; (X) 3,50; (2) 2.90
In LINDO
MIN X1+X2+X3
ST
2.10 X1 - X1 - X2 -X3 >= 1
3.50 X2 - X1 - X2 -X3 >= 1
2.90 X3 - X1 - X2 -X3 >= 1
X1 >= 1
X2 >= 1
X3 >= 1
X1 + X2 + X3 <= 500 // quota massima da giocare
END
GIN 3 // solo se vogliamo importi interi da giocare
MAX 2.10X1 + 3.50X2 + 2.90X3 - 3X1 - 3X2 -3X3
ST
2.10X1 - X1 - X2 - X3 >= 0
3.50X2 - X1 - X2 - X3 >= 0
2.90X3 - X1 - X2 - X3 >= 0
X1 >= 1
X2 >= 1
X3 >= 1
X1 + X2 + X3 <= 500
END
GIN 3 // solo se vogliamo importi interi da giocare
MAX 2.10X1 + 3.50X2 + 2.90X3
ST
2.10X1 - X1 - X2 - X3 >= 0
3.50X2 - X1 - X2 - X3 >= 0
2.90X3 - X1 - X2 - X3 >= 0
X1 >= 1
X2 >= 1
X3 >= 1
X1 + X2 + X3 <= 500 // quota massima da giocare
END
GIN 3 // solo se vogliamo importi interi da giocare
In LINGO
[OBJ] min = x+y+z;
2.10*x-x-y-z > 1;
3.50*y-x-y-z > 1;
2.90*z-x-y-z > 1;
x+y+z <= 500;
x >= 1;
y >= 1;
z >= 1;
END
@gin(x);
@gin(y);
@gin(z);
[OBJ] max = 2.10*x+3.50*y+2.90*z-3*x-3*y-3*z;
2.10*x-x-y-z > 1;
3.50*y-x-y-z > 1;
2.90*z-x-y-z > 1;
x+y+z <= 500;
x >= 1;
y >= 1;
z >= 1;
END
@gin(x);
@gin(y);
@gin(z);
[OBJ] max = 2.10*x+3.50*y+2.90*z;
2.10*x-x-y-z > 1;
3.50*y-x-y-z > 1;
2.90*z-x-y-z > 1;
x+y+z <= 500;
x >= 1;
y >= 1;
z >= 1;
END
@gin(x);
@gin(y);
@gin(z);
Formulazione in GAMS
Per la formulazione in GAMS basta tener presente in modello di programmazione generale del
gams ([] = parti da completare)
variables
z;
Positive variables x, y, w;
Equations
obiettivo, vincolo1, vincolo2, vincolo 3;
obiettivo .. z =e= [] ;
vincolo1 .. [] =l= [];
vincolo1 .. [] =l= [];
vincolo1 .. [] =l= [];
model prova /all/;
solve prova using lp minimizing z;
Di seguito lo screenshot di alcuni tra i più noti programmi impiegati nella risoluzione dei problemi
di ricerca operativa (lineare e non)
Il LINGO
Il LINDO
Programmazione con Excel (risolutore)
Simile a Excel è il risolutore di Open Office o di libre Office
GnuNumeric
GAMS
Open Office e Libre Office