|
|
CONSIDERAZIONI GENERALI
In quanto non esiste una definizione soddisfacente di Ricerca Operativa (R.O.) si fa spesso confusione sulla natura, sui caratteri e sugli strumenti di questa disciplina. I problemi della R.O. sono problemi di scelta ma non è certamente vero qualsiasi problema di scelta sia per ciò stesso un problema di R.O.
DEFINIZIONE DI R.O.
COME PROCEDERE NELLA R.O.
L'analisi matematica rappresenta, una parte relativamente contenuta del lavoro globale richiesto a uno studioso di R.O.
Le fasi di uno studio di R.O. possono essere così schematizzate:
individuazione del problema;
raccolta dei dati;
costruzione di un modello rappresentativo del problema;
determinazione della soluzione;
messa a punto e collaudo del modello e della soluzione;
interpretazione dei risultati e relazione per i decisori.
I problemi vanno anzitutto scoperti. Conoscere un problema significa conoscere le varie alternative possibili. Per poter scegliere razionalmente occorre anzitutto ben chiari gli obbiettivi.
Nella fissazione di questi, benché sia spesso necessario ridurre gli obbiettivi generali d'impresa a sub-obbiettivi parziali, è bene avere la vista lunga: uno studio di R.O. dovrebbe mirare a soluzioni che siano ottimali per tutta l'organizzazione piuttosto che per un solo settore. Normalmente come obbiettivo generale d'impresa si assume il massimo profitto a lunga scadenza oppure, se si tratta d'aziende d'erogazione, la fornitura di un dato servizio al minimo costo.
Accade che il Ricercatore Operativo debba calcolarli direttamente non fosse altro che per averli in una determinazione utile per gli scopi che deve raggiungere.
Il modello matematico non è altro che una rappresentazione ideale della realtà, rappresentazione realizzata facendo ricorso ad appositi simboli ed espressioni matematiche
La R.O. afferma di cercare la soluzione ottima di un certo problema in realtà si mira a trovare soltanto la soluzione migliore compatibile con le informazioni di cui si dispone. A tal proposito occorre osservare che:
a) la soluzione alla quale si perviene, anche se ottimale, lo è per il modello considerato. Ciò, però, non assicura che lo sia per il problema. In ogni caso, se il modello è ben costruito la soluzione trovata costituirà senz'altro una buona approssimazione della soluzione del problema.
b) Molto spesso l'individuazione della soluzione ottimale in senso assoluto tra le numerose possibili è così laboriosa da non essere assolutamente conveniente.
I problemi pratici vengono risolti con metodi cosiddetti euristici (frutto d'invenzione intellettuale), che non conducono con certezza ad una soluzione ottimale ma assicurano il raggiungimento di una buona soluzione,prossima all'ottimale, con una spesa ragionevole.
Il criterio per giudicare la validità consiste nel verificare se c'è profonda corrispondenza tra le previsioni del modello e quello che accadrebbe nella realtà. Quando si parla di messa a punto e collaudo del modello e della sua soluzione vuol dire, controllare il modello per vedere se il suo output è plausibile. Da questa verifica si ottengono due risultati: veramente ottimale e falsamente ottimale.
Può accadere che in presenza di un problema concreto ci si trovi, per motivi diversi, nell'impossibilità di giungere alla costruzione di un' idoneo modello. Tale fatto non è di per sé una sconfitta definitiva: il fatto d'aver analizzato il problema e di averlo individuato in certi suoi tratti essenziali può portare già avanti sulla strada di una maggiore realizzazione della gestione di quel particolare problema.
STORIA DELLA PROGRAMMAZIONE LINEARE
La nascita della Programmazione Lineare risale al 1951, anno in cui uno studioso della Rand Corporation, G.B. Dantzig, ne fece la presentazione. In quell'occasione G.B. Dantzig presentò il metodo della Programmazione Lineare nella sua primitiva formulazione.
In sostanza un problema di Programmazione Lineare non è altro che un problema di ricerca di massimo ( minimo ) di una funzione lineare sottoposta a vincoli lineari. La funzione può presentare due o più variabili per cui si possono avere problemi di Programmazione Lineare a due variabili e problemi di Programmazione Lineare a più di due variabili.
PROGRAMMAZIONE LINEARE A DUE VARIABILI
DEFINIZIONE DEL PROBLEMA
Si ha un problema di programmazione lineare quando, data una funzione lineare di due variabili, si vuole ricercare il massimo ( minimo) subordinatamente all'esistenza di vincoli lineari (disequazioni di primo grado in due incognite).
Precisamente, se:
z = p1x+p2y
è funzione lineare, di essa si ricerca il massimo (minimo) subordinatamente:
a) ai vincoli:
x y
che prendono il nome di vincoli di segno;
b) ad altri vincoli lineari espressi sotto forma di disuguaglianze deboli: vincoli tecnici.
PRECISAZIONI IN MERITO AI VINCOLI
Per quanto riguarda i vincoli, che hanno forza di disuguaglianze deboli, occorre fere qualche precisazione.
a) i vincoli limitano la ricerca dei valori di x e di y che rendono massima ( minima ) la funzione z in una determinata regione del piano.
Osservazione: con riferimento alla trattazione di problemi economici si dice che i vincoli sotto forma di disuguaglianza deboli definiscono il campo di scelta, cioè la regione del piano in cui vanno ricercati i valori di x e di y che rendono massima ( minima ) la funzione.
Esempio:
x y
4x + y
x + 3y
b) Facendo riferimento ad un sistema di assi cartesiani xOy il campo di scelta viene rappresentato graficamente dalla regione del piano in cui soddisfano con le loro coordinate tutti i vincoli esistenti. E, poiché esistono sempre i vincoli di segno x e y , ne segue che la rappresentazione del campo di scelta va effettuata utilizzando soltanto il primo quadrante.
REGOLA: Per risolvere un problema di programmazione lineare occorre determinare i vertici del poligono che rappresenta il campo di scelta calcolando il valore che la funzione assume in ciascuno d'essi. Confrontando i valori così ottenuti si determina il massimo (minimo) della funzione.
La regola ora enunciata è una conseguenza del seguente fondamentale:
Teorema: In un problema di programmazione lineare il massimo (minimo) può cadere soltanto in un vertice del campo di scelta.
Se per un qualsiasi motivo, si tralasciasse di fare la rappresentazione grafica nel campo di scelta la mole di calcoli da eseguire per individuare quei vertici sarebbe notevolmente superiore.
La non rappresentazione preliminare del campo di scelta comporterebbe la risoluzione di 10 sistemi mentre la preliminare rappresentazione del campo di scelta fa scendere a 5 il numero dei sistemi da risolvere.
Ecco dunque emergere la fondamentale importanza della rappresentazione grafica del campo di scelta. Essa riduce, notevolmente il numero di sistemi che occorre risolvere per determinare i vertici fra i quali andrà poi ricercato il massimo ( minimo ).
Il vertice del campo di scelta è qualsiasi punto in cui due vincoli sono realizzati sotto forma d'uguaglianza e i restanti sotto forma di disuguaglianza. Perché un vertice , inteso come punto d'intersezione di due vincoli, sia accettabile come vertice del campo di scelta occorre che esso soddisfi, con le sue coordinate, tutti gli altri vincoli sotto forma di disuguaglianze.
In generale, se le variabili sono m e i vincoli sono n il modello matematico, cioè l'insieme della funzione da ottimizzare, e dei vincoli si presenta come segue:
z = p1x1+p2x2+p3x3+.+pmxm
a11x1+a12x2+.+a1mxm b1
a21x1+a22x2+.+a2mxm b2
an1x1+an2x2+.+anmxm bn
con:
x1 0 x2 0 .... xn 0
essendo
p1,p2,.,pn : i coefficienti delle incognite ;
b1,b2,.,bn : le risorse disponibili;
a11,a12,.,a21,a22,., an1,an2,.,anm : i coefficienti di assorbimento delle risorse disponibili.
Premesso che in linea teorica si potrebbe procedere come fatto nel caso di due sole variabili, precisiamo subito che, sotto il profilo operativo concreto, s'incontrerebbero ben presto difficoltà praticamente insormontabili.
ALGORITMO DEL SIMPLESSO
Il simplesso è un metodo iterativo che permette di fare un'opportuna selezione dei vertici. Precisamente esso fornisce un criterio sistematico per potere, senza determinare preventivamente tutti i vertici, passare da un vertice accettabile ad un altro vertice che, essendo pure accettabile , è anche migliore del precedente.
Sostanzialmente, il simplesso si basa sulla seguente considerazione:
Poiché il P.L. la funzione obiettivo e i vincoli sono lineari e la ragione ammissibile come campo di scelta è convessa , se un vertice è miglior, in termini di funzione obbiettivo, dei vertici ad esso adiacenti esso è allora sicuramente l'ottimo fra tutti i vertici accettabili.
INTRODUZIONE DI VARIABILI SLACK
Il problema che si vuole risolvere viene dapprima modificato, sebbene soltanto formalmente, trasformando tutte le disequazioni (ad eccezione di quelle riguardanti i vincoli di segno) in equazioni. Questa trasformazione è possibile introducendo, inizialmente per ogni vincolo, una variabile fittizia, detta slack la quale deve sottostare soltanto al vincolo di segno, che resta sempre sottointeso. Da tener presente che le variabili slack non figurano nella funzione obbiettivo. Il motivo per cui vengono introdotte le variabili slack è in sostanza, questo: dopo l'introduzione delle variabili slack ogni vertice viene individuato da tanti zeri quante sono le variabili libere del problema.
L'APPLICAZIONE DEL SIMPLESSO DOPO L'INTRODUZIONE DELLE VARIABILI SLACK.
Prima si determina per ogni variabile che si vuole attivare quale variabile si deve annullare ( per non uscire dal campo di scelta ), poi si determina quale variabile conviene attivare perché y aumenti ed aumenti il più possibile. Il procedimento si ripete fino a quando si trova che l'attivazione di una qualunque variabile nulla farebbe diminuire e non aumentare y. Si è allora trovato il vertice massimo.
Una delle più importanti scoperte che si ebbero come risultato degli studi sui problemi di P.L. fu il concetto di dualità. Questa scoperta rivelò che ogni problema di programmazione lineare associato con un altro problema pure di programmazione lineare, che viene detto "duale" e le cui relazioni con il problema originario detto primale, non sono soltanto di natura formale.
Consideriamo il seguente problema di programmazione lineare:
MAX
Subordinatamente ai vincoli:
( i = 1 , 2 , .. , n )
xi (j = 1, 2, ..., m
Chiameremo questo problema primale. Il problema duale corrispondente ad esse è:
MIN
Subordinatamente ai vincoli :
( j = 1 , 2 , .. , m )
zi ( i = 1 , 2 , .. , n )
Cioè il duale di un problema di P.L. si ottiene dal primale:
sostituendo al problema di massimizzazione in m variabili ed n vincoli un problema di minimizzazione in n variabili ed m vincoli;
scambiando i coefficienti della funzione obbiettivo con i termini dei vincoli;
scambiando righe con colonne nella matrice dei coefficienti dei vincoli;
cambiando il verso delle disuguaglianze di vincolo.
Dunque c'è una variabile duale per ogni vincolo primale ed un vincolo duale per ogni variabile primale; per quanto concerne i vincoli i coefficienti del vincolo j-esimo del problema duale sono i coefficienti con i quali compare la variabile xj nei vincoli del primale e viceversa.
Sulla dualità di un problema di P.L. valgono alcuni teoremi fondamentali che sono:
Teorema 1. Esiste il duale di qualsiasi problema di programmazione lineare.
Teorema 2. Il duale del duale è il primale.
Teorema 3. I valori che può assumere la funzione obiettivo in un problemadi massimo sono minori o uguali a quelli che può assumere la funzione obbiettivo del corrispondente problema di minimo duale.
Teorema 4.Se:
x*=(x*1, x*1,..., x*m)
è la soluzione ottimale di un problema primale e:
z*=(z*1, z*1,..., z*n)
è la soluzione ottimale del duale, risulta:
yx (x*) = yz (z*)
Cioè : i valori della funzione obiettivo del primale e del duale, calcolati nelle rispettive soluzioni ottime,coincidono.
Privacy |
Articolo informazione
Commentare questo articolo:Non sei registratoDevi essere registrato per commentare ISCRIVITI |
Copiare il codice nella pagina web del tuo sito. |
Copyright InfTub.com 2025