<#### Metodo del Simplesso (esercizio modello) Risolvere il seguente problema di PL :

Lo scriviamo in forma standard :

  • siccome è dobbiamo moltiplicare per la funzione obiettivo :
  • aggiungiamo i vari “surplus” ai vincoli per farli diventare uguaglianze :

e quindi avremo :

La nostra base ammissibile sono le nostre variabili di slack aggiunte (che sono gratis “soluzioni” ammissibili, basta porre le ).

Facciamo il tableau :

e quindi la situazione e la seguente (in figura le rappresentazioni con i rispettivi colori - blu e rosso) :

e :

(conosciuta anche come Matrice Identità in giallo nella figura sotto).

Siccome la prima riga di non ha tutti i numeri , la soluzione di base attuale NON è OTTIMALE. Quindi procediamo con l’operazione di cambio base :

  • prendere il minimo della riga , che risulta essere : la colonna che entra in base è
  • calcoliamo il quoziente minimo :

quindi siccome prendiamo la prima riga, ovvero che esce.

Ricordiamo che nel calcolo di si ignora un eventuale negativo.

  • quindi la nuova base risulta essere : (siccome è “entrato” ed uscito )
  • eseguiamo l’operazione di pivot (intersezione tra riga che esce e colonna che entra), e quindi otteniamo che il pivot sarà
  • calcoliamoci la nostra nuova riga che sarà
  • le nuove righe () verranno create secondo il seguente “algoritmo”, prendiamo per esempio la costruzione della riga :
    • prendo come riferimento la vecchia riga
    • prendiamo il numero di questa riga in posizione , dove è l’indica della nostra colonna che entrava (), quindi e quindi il nostro numero della riga è (il secondo dopo )
    • ora dobbiamo capire quante volte dobbiamo sottrarre il nostro numero () per avere . (dobbiamo risolvere )
      • quindi il nostro numero “jolly” sarà
    • ora gli altri numeri della riga del nuovo seguiranno questo pattern :
	- quindi avremo che :

Quindi applicando lo stesso algoritmo per costruire la riga avremo il nuovo tableau :

con la seguente situazione :

e :

e quindi con avremo che .

N.B. : il “nuovo” si costruisce sempre secondo il problema originale, quindi in questo caso abbiamo sostituito con e quindi andiamo a prendere i coefficienti degli originali del problema

Siccome la riga ha ancora numeri NON positivi si ripete il metodo!

  • il minimo della riga è colonna che entra
  • calcoliamo il minimo :
  • quindi esce
  • il nostro pivot è
  • calcoliamo la nuova

Riconsideriamo il tableau solo con i valori nuovi :

Calcoliamo ora le varie righe :

  • :
  • :
  • :
    • sarà identica a prima!

PS : ho utilizzato che si capisce meglio Quindi avremo il nuovo tableau :

e la situazione sarà la seguente :

e :

e quindi con avremo che . Osserviamo ora che tutti i costi ridotti nella prima riga sono tutti e quindi la soluzione di base corrente è ottima!

Il problema PL ha come soluzione :

Metodo delle due fasi

Quando si usa il metodo delle due fasi? Quando dopo aver portato in forma standard ci accorgiamo che non abbiamo una base ammissibile valida (es. presenza di nella matrice di identità). Questo succede quando abbiamo :

  • vincoli con (generano variabili surplus negative)
  • vincoli con (non da surplus)
Fase 1

L’obiettivo di questa fase è quella di trovare una base valida con cui procedere/partire con il metodo del Simplesso.

  1. ad ogni equazione di sistema a cui manca un pezzo della matrice di identità, aggiungiamo una variabile finta
  2. congeliamo la nostra funzione obiettivo () per un attimo e adottiamo la funzione obiettivo che ci minimizza le variabili finte :
  1. costruiamo il tableau e mettiamo nella colonna della base : variabili e eventuali slack (solo quelli con segno positivo (es. e non ))
  2. questo tableau costruito non è “canonico” siccome le variabili in base sono in base ma hanno costo
    • sottraiamo alla riga tutte le righe del tableau delle variabili finte :
  3. ora continuiamo sempre con questo tableau con il metodo del simplesso per trovare il valore di
    • se troviamo procediamo alla Fase 2
    • altrimenti il problema è inammissibile e l’esercizio finisce
Fase 1
  1. cancelliamo le colonne
  2. cancelliamo la riga e mettiamo e i costi originali di partenza
  3. ora siccome abbiamo messo dei costi “vecchi” in una base nuova, sicuramente le variabili che ora sono in base avranno dei costi diversi da zero nella nuova riga , quindi dobbiamo azzerarli.
    • lo facciamo come abbiamo fatto prima nella fase 1 per azzerare le (vedi esercizio di esempio per capire meglio)
  4. e ora iniziamo con il simplesso standard
Esercizio modello di esempio

Trasformiamo in forma standard :

siamo bloccati (abbiamo segno ) e nessuna delle due può entrare in base.

Fase 1
  1. aggiungiamo le variabili
  1. la funzione obiettivo su cui lavoreremo sarà :
  2. costruiamo il tableau :
  1. azzeriamo e con :
    • (top!)
    • (top!)
  2. quindi avremo il seguente tableau :

e facciamo utilizziamo metodo del simplesso :

  • minimo riga : entra in base
  • test quoziente :
  • quindi esce di base e il pivot è
  • nuova riga :
  • procediamo calcolando le nuove righe :
    • riga :
    • riga :
  • quindi avremo il nuovo tableau :

Facciamo ancora, siccome abbiamo costi negativi :

  • entra
  • test quoziente :
  • quindi esce e il pivot è
  • nuova riga :

calcoliamo le nuove righe (diretto nel tableau lo faccio)

PERFETTO abbiamo e le due variabili artificiali sono state tolte dalla base.

Fase 2

Avremo il nuovo tableau :

  • dobbiamo nella riga , azzerare e con :
    • (top!)
    • (top!)
    • e quindi avremo il tableau :

che risulta già risolto siccome non ci sono costi negativi :