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