Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Metodo del Simplesso e Programmazione Lineare: Soluzioni Ottime e Vincoli, Schemi e mappe concettuali di Ricerca Operativa

Il metodo del simplesso e la programmazione lineare, fornendo una panoramica dettagliata delle soluzioni ottime e dei vincoli. Il documento illustra come identificare una soluzione di base ammissibile, come calcolare le matrici necessarie e come interpretare i risultati. Inoltre, viene spiegato come risolvere problemi ausiliari e come calcolare i prezzi ombra. Infine, viene introdotto il problema del duale e la programmazione lineare intera e binaria. Utile per chi studia programmazione lineare e vincoli.

Tipologia: Schemi e mappe concettuali

2022/2023

In vendita dal 16/05/2024

benedetta-zattara
benedetta-zattara 🇮🇹

5

(1)

12 documenti

1 / 9

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
PROGRAMMAZIONE LINEARE
FORMA STANDARD
1. Funzione obiettivo
- Porto la funzione obiettivo in minimo (da max a min) e cambio tutti i segni (min z=-cx)
- Moltiplicazione per una costante >0 non influenza l’ottimo
- Moltiplicazione per una costante <0 non si deve considerare invertendo i segni
- Addizione/sottrazione di una costante non si considera
- Se uso slack li devo aggiungere con coefficiente 0
- Se ho un denominatore mi porto tutto a numeratore e sposto i termini
2. Vincoli
- Definisco i vincoli portandoli tutti con = (tranne vincolo di non negatività), aggiungendo
della variabili di slack:
S se ho <=
- P se ho >=
- I termini noti devono essere tutti >0 quindi se ho b<0 devo moltiplicare per -1
- Concludo con x1, x2,..,s1,.. >=0
METODO DEL SIMPLESSO
1. Preparo le matrici:
- Matrice riga c
- Matrice A coefficienti dei vincoli
- Matrice b dei termini noti
2. Identifico una soluzione di base ammissibile: può essere matrice identità iscritta in A, una
matrice già data oppure trovata con problema ausiliario
3. Ricreo le matrici:
- Matrice riga c scambiando l’ordine delle variabili in modo da avere all’inizio le variabili
connesse alla SBA
- Riporto la matrice A scomponendola in A=[B|D], dove B è la matrice SBA (identità) e D
è la matrice relativa alle variabili fuori base
- Affianco alla matrice A la matrice b
4. Calcolo le matrici
- B-1, B-1D e B-1b
- Creo la matrice colonna con le variabili nello stesso ordine in cui le ho messe sopra (le
richiamo facendo = e selezionando la cella sopra)
- Le variabili fuori base (xD) sono poste sempre =0, mentre le variabili di base sono = B-1b
- Calcolo i coefficienti di costo ridotto rD=cD – cBB-1D
- Calcolo i rapporti di velocità come B-1b / B-1D (allineati sotto la matrice D)
- Calcolo z=cx
5. La soluzione è ammissibile?
La soluzione è ammissibile se tutte le incognite X,S,P >=0
pf3
pf4
pf5
pf8
pf9

Anteprima parziale del testo

Scarica Metodo del Simplesso e Programmazione Lineare: Soluzioni Ottime e Vincoli e più Schemi e mappe concettuali in PDF di Ricerca Operativa solo su Docsity!

PROGRAMMAZIONE LINEARE

FORMA STANDARD

  1. Funzione obiettivo
    • Porto la funzione obiettivo in minimo (da max a min) e cambio tutti i segni (min z=-cx)
    • Moltiplicazione per una costante >0 non influenza l’ottimo
    • Moltiplicazione per una costante <0 non si deve considerare invertendo i segni
    • Addizione/sottrazione di una costante non si considera
    • Se uso slack li devo aggiungere con coefficiente 0
    • Se ho un denominatore mi porto tutto a numeratore e sposto i termini
  2. Vincoli
    • Definisco i vincoli portandoli tutti con = (tranne vincolo di non negatività), aggiungendo della variabili di slack:  S se ho <=  - P se ho >=
    • I termini noti devono essere tutti >0 quindi se ho b<0 devo moltiplicare per -
    • Concludo con x1, x2,..,s1,.. >=

METODO DEL SIMPLESSO

  1. Preparo le matrici:
    • Matrice riga c
    • Matrice A coefficienti dei vincoli
    • Matrice b dei termini noti
  2. Identifico una soluzione di base ammissibile: può essere matrice identità iscritta in A, una matrice già data oppure trovata con problema ausiliario
  3. Ricreo le matrici:
    • Matrice riga c scambiando l’ordine delle variabili in modo da avere all’inizio le variabili connesse alla SBA
    • Riporto la matrice A scomponendola in A=[B|D], dove B è la matrice SBA (identità) e D è la matrice relativa alle variabili fuori base
    • Affianco alla matrice A la matrice b
  4. Calcolo le matrici
    • B-1, B-1D e B-1b
    • Creo la matrice colonna con le variabili nello stesso ordine in cui le ho messe sopra (le richiamo facendo = e selezionando la cella sopra)
    • Le variabili fuori base (xD) sono poste sempre =0, mentre le variabili di base sono = B-1b
    • Calcolo i coefficienti di costo ridotto rD=cD – cBB-1D
    • Calcolo i rapporti di velocità come B-1b / B-1D (allineati sotto la matrice D)
    • Calcolo z=cx
  5. La soluzione è ammissibile? La soluzione è ammissibile se tutte le incognite X,S,P >=
  1. La soluzione è l’ottimo? Applico criterio di ottimizzazione: la soluzione è l’ottimo se rD>=0 (coefficienti costo ridotto). Poiché stiamo minimizzando, è chiaro che se tutti i coefficienti r sono positivi, non è possibile ridurre la funzione obiettivo, quindi quello è il minimo.
  2. La soluzione è illimitata? Se non è l’ottimo, passo al test di illimitatezza. La soluzione è illimitata se in corrispondenza di rD<0 ho tutti i rapporti di velocità <0. Quindi significa che nessuno dei m vettori in base può uscire dalla base. Se illimitata, mi fermo perché non esiste una soluzione ottima.
  3. Soluzione con cambio base Se la soluzione è limitata, passo alla regola di iterazione del simplesso per trovare una nuova soluzione di base ammissibile:
    • IN: entra in base la x in corrispondenza del rD più grande negativo
    • OUT: esce dalla base la x in corrispondenza del rapporto di velocità più piccolo. Quindi, in corrispondenza di rD più grande negativo, guardo la colonna e, individuata la cella con rapporto più piccolo, scorro a destra e incrocio la variabile che esce
    • Ritorno sopra e scambio le colonne delle variabili IN e OUT (deve scambiarsi anche il riferimento con il nome)
    • Ripeto l’iterazione fino a che non ottengo tutti rD positivi
    • Mostro la soluzione ammissibile: indico valore di z e delle variabili x

PROBLEMA AUSILIARE

Problema ausiliare serve per capire se il problema generale ha una soluzione e trovare la soluzione di base ammissibile per far partire il metodo del simplesso.

  1. Traformo il problema originale (forma standard) in problema ausiliario
    • Trasformo la funzione obiettivo da minimizzare z come sommatoria di u (da 1 a m numero di equazioni di vincoli)
    • A ogni equazioni di vincoli aggiungo una variabile u
  2. Interpretazione dei risultati
    • z=0: il PL ha soluzione e la base identificata è la base di partenza del problema principale
    • z≠0: il problema lineare principale non ha soluzioni

PROBLEMA DEL DUALE

Ogni problema lineare (primale) ha affiancato un problema duale

  • Ha caratteristiche simili
  • Più semplice da risolvere e le soluzioni dei due problemi sono strettamente collegate
  • La soluzione del duale fornisce informazioni sulla soluzione del primale
  • Il duale del duale è il primale. Costruzione:  Il massimo diventa un minimo e viceversa  Tante variabili quanti sono i vincoli (se 3 equazioni dei vincoli avrò Y1, Y2, Y3)  I coefficienti della funzione obiettivo nel duale sono i termini noti dei vincoli del primale  I coefficienti dei vincoli del duale sono la matrice A del primale traslata (per il primo vincolo del duale guardo i coefficienti della prima colonna dei vincoli del primale)  I termini noti del duale sono i coefficienti della funzione obiettivo del primale  La tipologia di vincolo nel duale è determinata dalla tipologia della variabile nel primale  La tipologia di variabile del duale è determinata dalla tipologia di vincolo nel primale Identifico qual è il mio primale (in base a min o max) e seguo lo schema in base alla direzione in cui devo andare. TEOREMA DUALITÀ FORTE Se il problema primale ammette una soluzione, allora anche il problema duale ammette una soluzione. Le funzioni obiettivo nel primale e nel duale sono identiche. I coefficienti di costo del primale sono esattamente le soluzioni del duale perché i prezzi ombra del primale sono le soluzioni del duale.

PROGRAMMAZIONE LINEARE INTERA

Per far sì che le variabili siano intere, bisogna impostare il metodo del simplesso aggiungendo come vincolo che le variabili X debbano essere intere.

BRANCH AND BOUND

Andando verso ramificazioni successive, sicuramente il modello sarà meno performante (in un problema di max avrò z più basso e in un problema di min avrò z più alto). Lo scopo è trovare la soluzione con x intere e con z maggiore (max) o minore (min). Problema di minimizzazione

  1. Si determina la soluzione ottimale del problema assegnato ignorando il vincolo che X ∈ N, ma rispettando il vincolo X>=
  2. Se la soluzione continua ottimale è intera, il problema è risolto
  3. Se la soluzione continua ottimale non è intera, almeno una variabile Xi assume il valore non intero Xi*
  4. Si suddivide la regione ammissibile in due sottoregioni, una ottenuta aggiungendo al sistema dei vincoli Xi <= intero immediatamente inferiore Xi* e l’altra aggiungendo al sistema dei vincoli Xi >= intero immediatamente inferiore Xi*
  5. Si determinano le soluzioni ottimali continue con riferimento alle due precedenti sottoregioni
  6. Si procede eventualmente alla suddivisione delle sottoregioni in modo iterativo, mediante l’introduzione di ulteriori vincoli aggiuntivi
  7. Il processo di suddivisione in sottoregioni e il corrispondente calcolo delle soluzioni ottimali prosegue finchè in ciascuna sottoregione:
    • La soluzione ottimale è intera
    • Il problema non ha soluzioni
    • La soluzione ottimale non è intera, ma il valore di z è >= (se sono in condizione di minimizzazione) al valore di z già ottenuto con una delle precedenti soluzioni ottimali intere
  8. A questo punto si confrontano tutte le soluzioni ottimali intere e si sceglie quella a cui corrisponde il minimo valore di z (minimizzazione). Questa è la soluzione ottimale per il problema assegnato di PL intera

PROGRAMMAZIONE LINEARE BINARIA

Per far sì che le variabili siano intere, bisogna impostare il metodo del simplesso aggiungendo come vincolo che le variabili X debbano essere binarie (0;1)

  • Variabili: A=1 se vera; 0 altrimenti
  • Vincoli: variabili binarie

SHORTEST PATH – CAMMINO MINIMO

Qual è il percorso più breve per andare da un punto all’altro. Può essere risolto con un’impostazione:

  1. Variabili: ogni arco è una variabile dicotomica (1 se impegno l’arco, 0 altrimenti)
  2. Funzione obiettivo: minimizzare il peso complessivo di quello che vado a impegnare (somma pesata degli archi)
  3. Vincoli
    • se esco, - se entro
    • Devo uscire dal punto di partenza, cioè un arco deve essere impegnato ma non posso andare verso entrambi (AB+AC = 1)
    • Devo arrivare al punto di uscita, cioè un arco deve essere impegnato ma non posso arrivare da entrambi (-FH-GH = -1)
    • Se considero di essere in un punto, devo essere arrivato e uscirne. In un nodo: - somma archi in entrata + somma archi in uscita = 0
  4. Si definisce matrice c, A, x
  5. La soluzione mostra il percorso più breve per andare dall’inizio alla fine e z sono i km impiegati per il percorso

METODO DI DIJKSTRA

Costruirsi il seguente schema: Nodo Cammino Da nodo Esplorato

  1. Inizializzare i vettori, cioè elenco i nodi presenti nel grafo (primo: partenza, ultimo: arrivo)
  2. Definire i cammini = quanto ci si impiega ad arrivare da un punto all’altro
    • Partenza = 0
    • Tutti gli altri nodi = inf
  3. Impongono esplorato = 0 all’inizio, per dire che non ho esplorato nessun ramo
  4. ISPEZIONE
    • Ispeziono il nodo con cammino minore (B), ancora da esplorare
    • Mi sposto nel nodo selezionato B e vedo dove posso andare (C, D)
    • Per andare in C aggiungo il peso pBC al camminoB
    • Se pBC < camminoC  sostituisco camminoC con pBC
    • Quando ho sostituito il cammino, devo dire da che nodo provengo (in C provengo da B)
    • Faccio stessa cosa con D e poi segno in B con 1 che ho esplorato quel nodo
    • Riparto iterativamente
  5. Percorso inverso Parto dalla fine e vedo di conseguenza da dove proviene ciascun nodo

MASSIMO FLUSSO

Ipotizzo di avere una tubatura di fluido e voglio sapere qual è il flusso massimo tra sorgente e pozzo. Si risolve con un modello di programmazione lineare intera (flusso).

  1. Variabili: archi (flusso che può passare in quell’arco)
  2. Funzione obiettivo: max uscente dalla fonte
  3. Vincoli:
    • Ciascun arco <= valore flusso passante per quel tubo
    • Per ogni nodo con freccia entrante + e freccia uscente – tutti = 0
    • Tutti archi >= 0
  4. Risolvo con il risolutore con programmazione lineare intera (vincolo int)

ALGORITMO DI FORD-FULKERSON

Ipotizzo di avere una tubatura di fluido e voglio sapere qual è il flusso massimo tra sorgente e pozzo.

  1. Scelgo un percorso da fonte a pozzo
  2. In quel percorso scelgo il collo di bottiglia, cioè l’arco con il minimo valore in uscita dal tubo
  3. In tutti i tubi del percorso individuato:
    • sottraggo il valore del flusso CDB da quello in avanti
    • aggiungo il valore del flusso CDB da quello in indietro Il tratto con il minimo valore andrà posto =0 e quindi verrà tolto
  4. Ripeto per tutti i percorsi che individuo finchè possibile
  5. Sommo i massimi flussi di ogni grafo ridisegnato per ottenere il massimo flusso

TEORIA DEI GIOCHI

Un gioco è un modello stilizzato che descrive situazioni di interazione strategica dove il risultato ottenuto da un agente dipende non solo dalle sue azioni ma anche dalle azioni di altri agenti.

EQUILIBRIO DI NASH

In matrice:  Sinistra: corrisponde cella a sinistra  Sopra: corrisponde cella a destra

  • Scelgo la cella con valore più alto In tabella:
  • Blocco un giocatore (C)
  • Analizzo gli scenari dei giocatore restanti (A e B) uguali (A=1,B=1) e scelgo lo scenario tra la coppia con R maggiore (Rc)
  • L’equilibrio di Nash è lo scenario in cui tutti i giocatori sono stati scelti