Simply: tutorial

Transcript

Simply: tutorial
Simply: tutorial
Questo tutorial ha lo scopo di guidare lo studente ad un primo utilizzo dello strumento Simply. Il
programma è sotto forma di file Jar eseguibile, perciò non necessita di installazione e può essere
avviato sotto ciascuna delle maggiori piattaforme (Mac Os X, Windows, Linux).
L’unico requisito è un JRE in versione 1.6 o superiore. Per controllare la presenza del JRE, aprite un
terminale (o prompt dei comandi, sotto Windows) e digitate “java -version”, senza le virgolette; se
ottenete informazioni sulla versione installata di Java, e se la versione è corretta, non avete
problemi. Altrimenti, potete scaricare l’ultima versione alla pagina
http://java.com/en/download/index.jsp.
Verrà ora inserito e risolto, per mostrare la maggior parte delle funzionalità del tool, il seguente
problema artificiale:
Min. 𝑍 = 0.4𝑥1 + 0.6𝑥2
s.t.
0.3𝑥1 + 0.1𝑥2 ≤ 2.7
0.5𝑥1 + 0.5𝑥2 = 6
0.6𝑥1 + 0.4𝑥2 ≥ 6
𝑥1…2 ≥ 0
Aprite il file Simply.jar con un doppio clic. La prima schermata che apparirà è quella in Fig. 1.
Modificate i valori dei
campi in alto a destra
agendo sulle frecce (non
sui campi di testo, che non
sono editabili). Notate
come cambiando il numero
di variabili o vincoli,
cambiano anche i campi in
basso a sinistra. Impostate
questi valori a tre varabili e
tre vincoli.
Fig. 1: Schermata iniziale di Simply
Simply - Tutorial
Fig. 2: Schermata iniziale con problema d'esempio
Ora inserite i valori corretti nei campi numerici: i coefficienti della funzione obiettivo nella prima
riga, segnata in giallo, i termini noti nella colonna evidenziata in blu, il verso dei vincoli (come
sopra, agendo sul selettore) e i coefficienti dei vari vincoli nei campi in bianco, alla giusta posizione.
Una volta inserito il problema, premete Convalida. Dovreste ottenere la finestra in Fig. 2.
Premendo il pulsante Risolutore, nella finestra principale, si dà l’avvio alla sessione di risoluzione
del problema. Se premete il pulsante lasciando valori non numerici in uno dei campi, Simply
assume automaticamente l’ultimo valore valido inserito.
Se il programma rileva termini noti negativi,
vedrete un messaggio che ricorda di tenerne
conto, nello stabilire se il problema deve essere
risolto con il metodo artificiale, oppure no.
Fig. 3: Domanda sul problema artificiale
Dopodiché, compare il messaggio in Fig. 3. A
seconda della correttezza della risposta, avrete un messaggio di conferma o di errore, con brevi
indicazioni sul motivo. Si tratta solo del primo di una serie di messaggi a risposta chiusa, con lo
scopo di guidarvi e farvi riflettere sulle varie fasi del metodo del simplesso.
Simply - Tutorial
Successivamente, compare l’interfaccia vera e propria del risolutore, rappresentata in Fig. 4. Nella
metà superiore, potete vedere le istruzioni del passo
attuale. E’ importante che seguiate precisamente le
indicazioni presenti in questo pannello, provvisto col
preciso scopo di guidare all’uso dell’interfaccia.
Nella metà inferiore della finestra, risiedono i campi
numerici del tableau e della BFS attuale. Infine, alla base
della finestra, si vedono i tre tasti di comando e una barra di
stato.
Il primo passo è l’introduzione del tableau iniziale. Il
tableau ha la funzione obiettivo in alto, i termini noti a
destra e risolve un problema di massimizzazione. Questo,
come si nota in figura, ha il risultato di invertire i segni della
funzione obiettivo in caso di problemi di minimizzazione. I
campi numerici presentano le stesse caratteristiche di quelli
nella
finestra
Fig. 4: Iniziale presentazione del risolutore
principale:
validazione dell’input, formato a due cifre decimali con il
punto come separatore, segnalazione di valori impossibili da
interpretare con un bordo rosso.
Dopo aver introdotto i valori desiderati, dovete premere il
tasto Convalida, in basso e al centro. Questo tasto, qui e in
tutto il resto del problema, causa il confronto tra il tableau
inserito e quello internamente calcolato dall’algoritmo: a
seconda che quello inserito sia corretto o meno, vedrete
nella parte alta della finestra un messaggio di conferma,
oppure di errore.
In quest’ultimo caso, i campi errati sono evidenziati in rosso
(vedi Fig. 5). Ciò vi permetterà di identificare prontamente
Fig. 5: Risultato di una convalida errata o
parzialmente errata.
l’errore e correggerlo. In questo caso, viene attivato il tasto
Simply - Tutorial
Soluzione: alla pressione del tasto, il tableau sarà compilato con i valori corretti per il passo
attuale. L’uso della soluzione è scoraggiato, vi aggiungerà un voto nullo alla media delle valutazioni.
Usatelo solo nel caso non riusciate in nessun modo ad andare avanti. Il tasto viene disattivato dopo
ogni utilizzo e riattivato solo in caso di nuovo errore, alla prossima Convalida del problema.
Se la convalida non dà errori, si attiva il tasto Procedi. Premendo quest’ultimo vi porterete alla
normalizzazione del tableau per la Fase Uno, opportunamente segnalata nell’area dei messaggi.
Questo passo è analogo al precedente: è necessario inserire i valori esatti nel tableau (dopo averli
calcolati con carta e penna) e Convalidare il risultato,
premendo poi il tasto Procedi quando l’intero tableau è
corretto (potrete comunque farlo solo allora).
Prima di passare oltre, leggerete un messaggio che chiede
se il tableau inserito è ottimo oppure no. Si tratta del test di
ottimalità, che come la maggior parte delle altre fasi del
simplesso, è interattivo. Come nella domanda preliminare
sull’artificialità, otterrete un messaggio di conferma o di
errore, a seconda della risposta, con una breve spiegazione.
Il test di ottimalità è presente ogni volta che si inserisce e
convalida un nuovo tableau, tranne nei due casi (l’inizio
della Fase Uno, come si è visto, e l’inizio della Fase Due) in
cui è presentato solo dopo la normalizzazione del tableau.
Fig. 6: Selezione della variabile entrante
La fase successiva è la selezione della variabile entrante. Come segnalato nell’area messaggi,
dovete scegliere il primo elemento della colonna pivot (nel caso della Fig. 6, la casella con il valore
−0.53).
Per fare ciò, dovete fare clic su una casella della prima riga. Solo la prima riga dei campi numerici,
e solo in questa fase del problema (ad ogni sua ripetizione), risponde al clic. Se avete fatto clic
correttamente (senza trascinare il mouse), la colonna viene evidenziata in colore e, nell’area
messaggi, compaiono notifiche sulla correttezza o meno della scelta.
Simply - Tutorial
Durante questa fase, tutti i pulsanti sono disabilitati, per
limitare le possibilità di errori e incongruenze nella
procedura; potete solamente selezionare colonne, fino a
quando sceglierete quella corretta. A questo punto, i campi
numerici della prima riga non hanno più la possibilità di
essere selezionati (per evitare confusioni) e così, la colonna
pivot rimane correttamente evidenziata per le fasi
successive. Il tasto Procedi si riattiva.
Premendolo ulteriormente, compare una domanda chiusa
sulla boundness (la condizione per cui la regione
ammissibile è limitata, garantendo così l’esistenza di
soluzioni) del problema; di nuovo, analogamente alle altre
domande a risposta chiusa, riceverete un messaggio di
conferma o di errore. Il test di boundness è presente dopo
Fig. 7: Selezione della variabile uscente
ogni selezione della variabile entrante. Alla risposta, si
disattiva il tasto Procedi.
Il punto successivo è la selezione della variabile uscente. Come nella precedente, fate qui la vostra
scelta tramite clic sulla prima colonna del tableau. L’area dei messaggi presenta ora
un’informazione appropriata, compreso un promemoria sull’uso del test del minimo rapporto.
Anche ora, solo la prima colonna dei campi numerici, escludendo l’elemento nella prima riga,
risponde al clic con la selezione, e solo in questa fase del problema.
In Fig. 7 è rappresentata una possibile
selezione, in questo caso sbagliata. Notate che,
sia in questa fase che nella precedente, nel
caso di parità tra le possibili scelte viene
applicata la Regola di Bland: si sceglie la
Fig. 8: Raggiungimento dell'ottimo alla fine della Fase Uno
variabile con indice minore. Come prima, potete selezionare righe diverse fino alla scelta
dell’esatta riga pivot: a quel punto, la prima colonna perde la capacità di rispondere ai clic e si
riattiva il tasto Procedi.
Simply - Tutorial
Il passo successivo consiste nelle operazioni di pivot. Vi viene richiesto di modificare il tableau,
tenendo conto delle nuove variabili di base. La riga e la colonna pivot rimangono evidenziate, per
mantenerle immediatamente visibili. Dovrete applicare l’usuale procedura di Convalida, Soluzione
(se proprio necessario) e pressione del tasto Procedi solo a
convalida avvenuta con successo. Un nuovo test di ottimalità
conclude il ciclo, che si ripete fino al raggiungimento dell’ottimo.
Infine, un messaggio, visualizzato in Fig. 8, vi informerà della fine
della Fase Uno. A questo punto dovete rispondere all’unico test di
ammissibilità del problema, ancora sotto forma di domanda a
risposte chiuse.
Una volta risposto al test, viene presentato il tableau di
preparazione alla Fase Due, con le variabili artificiali già rimosse
(vedi Fig. 9).
A questo punto, dovete inserire i
valori appropriati (in questo caso,
i
Fig. 9: Termine della Fase Uno
coefficienti
della
funzione
obiettivo, con segno adeguato al
tipo di problema) e normalizzare il tableau: questa è la seconda
ed ultima occasione in cui ad una fase di Convalida non segue un
test di ottimalità, che sarà presente dopo la normalizzazione. Da
questo punto, i passi e le possibilità sono esattamente gli stessi
delle precedenti iterazioni, fino al raggiungimento dell’ottimo.
Alla fine del problema, vi viene comunicata la valutazione,
calcolata in base alle vostre scelte. Inoltre, l’ottimo è evidenziato
mediante un bordo nero marcato sulla casella, visibile in Fig. 10.
Potete ora chiudere la finestra per inserire e risolvere un altro
problema, oppure chiudere il programma con il comando File>Esci.
Fig. 10: Raggiungimento dell'ottimo