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