Problema PLI

m.rossi11
Salve a tutti, vorrei proporvi una bella sfida!
Dato il seguente problema di PLI, secondo voi come si potrebbe modellizzare il vincolo del "non più di 2 portate diverse"?

Ringrazio in anticipo chi risponderà! :D

Risposte
Intermat
Non mi sembra un problema particolarmente complicato. Ad ogni modo mettimi in evidenza gli eventuali errori presenti nella mia soluzione.

Per comodità nelle sommatorie definisco $text(Antipasti)=1 text(, ....... , Dolci)=4$.

Definisco:
$v_(i,j)$ è il voto dato alla persona $j$-esima ($j=A,...,F$) per la tipologia di portata $i$-esima ($i=1,...,4$).
$x_(i,j)$ è il numero di piatti della portata $i$-esima che porterà la $j$-esima persona.
$M$ è un valore arbitrario molto grande, ipoteticamente $+ oo$

La soluzione è la seguente:

$max sum_{i=1}^{4}sum_{j=A}^{F}v_(i,j)*x_(i,j)$
$sum_{i=1}^{4}x_(i,j)<=3 text( )j=A,...,F text( [1] )$
$y_(i,j)<=1 text( (*))$
$M*y_(i,j)>=x_(i,j) text( (*))$
$sum_{i=1}^{4}y_(i,j)<=2 text( )j=A,...,F text( [2])$
$sum_{i=1}^{4}x_(i,j)>=1 text( )j=A,...,F text( [3])$
$x_(i,j)>=0 text( )i=1,..,4 text( )j=A,...,F$
$y_(i,j)>=0 text( intero) text( )i=1,..,4 text( )j=A,...,F$

$(**)$ l'elemento $y_(i,j)$ mi permette di contare se una portata ($i$-esma) viene portata dal $j$-esimo amico. Questo per differenziare il discorso delle portate da quello dei piatti. E' necessario perché altrimenti i vincoli 1 e 2 avrebbero la stessa scrittura (con il secondo però che non funzionerebbe come voluto!).

$[1]$ rappresenta il vincolo 1
$[2]$ rappresenta il vincolo 2
$[3]$ rappresenta il vincolo 3


Mi sembra che non ci dovrebbero essere problemi. Eventualmente fammeli presenti! :smt023

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.