Programmazione lineare

Messaggioda jules05 » 20/05/2018, 11:46

Non so se è la sezione corretta.

Ho un problema di Integer programming e devo settare i vincoli in modo che avendo $x_1,x_2,...,x_n$ variabili ognuna di esse non sia mai compresa in un determinato intervallo.

Avevo scritto che
\[x_i\leq a+M(1-w) \; \forall i\]

\[x_i\geq b+Mw \; \forall i \]

dove M è un numero grande e w binario, ma mi dà che tutti valori o sono minori di a o maggiori di b mentre io non voglio semplicemente che siano compresi tra a e b.
jules05
Starting Member
Starting Member
 
Messaggio: 1 di 4
Iscritto il: 20/05/2018, 10:47

Re: Programmazione lineare

Messaggioda Intermat » 20/05/2018, 23:00

Hai provato a cambiare il segno nel secondo vincolo?
Diventerebbe:

$x_i <= a+M(1-w_i)$

$x_i >= b-Mw_i$

Infatti in questo caso, definito $M~~ +oo$, si ha:

Se $w_i=1$:

$x_i <= a$

$x_i >= b-M ~~-oo$

Se $w_i=0$:

$x_i <= a+M~~ +oo$

$x_i >= b$

Dovrebbe essere quello che volevi.

PS: il pedice sulla variabile $w$ potrebbe non servire, questo lo puoi sapere solo tu. Dipende dal problema.
Nihil tam Ardvvm quod non Ingenio Vincas

"Considerate la vostra semenza:
fatti non foste a viver come bruti,
ma per seguir virtute e canoscenza"
Avatar utente
Intermat
Cannot live without
Cannot live without
 
Messaggio: 1579 di 3266
Iscritto il: 30/12/2012, 20:26
Località: Roma

Re: Programmazione lineare

Messaggioda jules05 » 21/05/2018, 08:11

Ti ringrazio per la risposta è che probabilmente ho sbagliato ad impostare io tutto.
Ho dei vettori $c_1,c_2,c_3, ...,c_n$ ed una matrice $s_{i,j}$

Io ho fatto questo

\[x_i+ c_i+s_{i,j}\leq x_j+M(1-y_{ij}) \;\;\; \forall i<j\] i precede j e $y_{ij}$ binario
\[x_j+c_j+s_{j,i}\leq x_i+My_{ij} \;\;\; \forall i<j\] i precede j. \[x_i\geq 0\;\;\; \forall i\]
Per avere che $x_j=x_i+p_i+s_{ij}$

Adesso vorrei mettere che

$x_i+c_i\leq a$ OR $x_j+c_j\geq b$ per far in modo che $x_i+c_i$ non sia mai compreso tra a e b
jules05
Starting Member
Starting Member
 
Messaggio: 2 di 4
Iscritto il: 20/05/2018, 10:47


Torna a Analisi Numerica e Ricerca Operativa

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite