|
It:Utilizzare la Funzione Solver
From NeoWiki
Attenzione Le figure di questa pagina fanno ancora riferimento alla versione francese della pagina scritta da Jgd. Le funzioni del testo sono invece già state tradotte nel corrispondente in italiano. Ci scusiamo per l'inconveniente. Sarà nostra cura risolvere al più presto l'incongruenza.
La funzione Solver è una funzione che permette di calcolare le condizioni che realizzano la massimizzazione degli obiettivi e la minimizzazione dei costi rispettando alcuni vincoli. L'esempio che segue illustra l'utilizzo della funzione Solver inserita a partire da NeoOffice 2.1 in Calc.
N.B. L'interfaccia della funzione Solver è esclusivamente in inglese e non è stata tradotta, ad oggi, in nessun'altra lingua. Per tua comodità verso al fine di questa pagina è stato riportato il lessico dei termini presenti nella finestra della funzione tradotto, ed una breve spiegazione del significato.
Contents |
Presentazione del problema
Supponiamo che in una fabbrica si costruiscano tre tipi di macchine, A1, A2, A3. Chiamiamo Pi il prezzo delle materie prime ed Hi il numero di ore di lavoro necessarie alla fabbricazione della macchina di tipi Ai. Il guadagno per la macchina di tipo Ai è uguale a Bi.
Le variabili da considerare sono il numero xi di macchine di tipo Ai fabbricate.
Noi cercheremo di calcolare i valori dei numeri xi che rendono massimo il guadagno totale realizzato.
Questi dati devono rispettare dei vincoli, per esempio:
- il numero xi deve essere un numero intero. Si vogliono costruire almeno 30 macchine di quel tipo.
- il costo totale delle materie prime dovrà essere inferiore o uguale a 10 000 €
- il numero totale di ore lavorate dovrà essere inferiore o uguale a 5 200.
Macchine | A1 | A2 | A3 |
---|---|---|---|
Numero di macchine | x1 | x2 | x3 |
Prezzo delle materie prime per macchina | p1 | p2 | p3 |
Numero di ore di lavoro per macchina | h1 | h2 | h3 |
Guadagno per macchina | b1 | b2 | b3 |
Guadagno massimo | b1x1+b2x2+b3x3 | ||
Vincoli | x1 >= 30, x2 >= 30, x3 >= 30 | p1x1+p2x2+p3x3 <= 10 000 | h1x1+h2x2+h3x3 <= 5 200 |
Soluzione del problema
- Apri un documento Calc
- Nel foglio di calcolo inserisci i dati come mostrato nella tabella:
Il valore 1890 contenuto nella cella B8 è dato dalla somma delle ore di lavoro necessarie alla fabbricazione di 30 macchine di ogni tipo, calcolato con la funzione MATR.SOMMA.PRODOTTO(B2:D2;B4:D4).
Il valore 6300 contenuto nella cella B9 è il costo delle materie prime necessarie per produrre 30 macchine di ogni tipo, calcolato con la funzione MATR.SOMMA.PRODOTTO(B2:D2;B3:D3).
Vogliamo rendere massimo il guadagno totale: MATR.SOMMA.PRODOTTO($B$2:$D$2;B5:D5)
- Scegliere il menù Strumenti > Solver…. Si aprirà la finestra Optimization Solver.
- Definire il modello:
N.B Tutti i riferimenti verranno automaticamente tradotti in riferimenti assoluti per il risolutore. Questo spiega la presenza del prefisso "$" nei riferimenti delle celle.
- Clicca sulla piccola freccia verde a destra del campo Set target cell, poi clicca sulla cella contenente la funzione da ottimizzare, nel nostro caso la cella B7 che contiene la formula che calcola il guadagno totale. Clicca di nuovo sulla freccia verde a destra del campo di inserimento dei dati, il valore $Tabella1.$B$7 viene scritto automaticamente nel campo Set target cell.
- Clicca su Maximize. È l'obiettivo fissato.
- Clicca sulla piccola freccia verde che si trova a destra del campo By changing cells per scegliere le celle che contengono le variabili delle quali vogliamo determinare i valori che permettono di rendere massimo il guadagno. Selezioniamo le tre celle B2, C2, D2 facendo scorrere il cursore. Clicca di nuovo sulla piccola freccia verde a destra del campo di immissione dei dati. La matrice $Tabella1.$B$2:$D$2 viene scritta automaticamente nel campo By changing cells.
- Definire i vicoli:
Fissiamo i seguenti vincoli:
- MATR.SOMMA.PRODOTTO(B2:D2;B4:D4) ≤ 5 200
- MATR.SOMMA.PRODOTTO(B2:D2;B3:D3) ≤ 10 000
- B2 ≥ 30
- C2 ≥ 30
- D2 ≥ 30
- clicca sul bottone Add. Si apre la finestra Constraint.
- Clicca sulla piccola freccia verde a destra del campo Cell reference e clicca sulla cella B8, poi clicca di nuovo sulla freccia.
- Nel campo Constraint digita il valore scelto, cioè 5200.
- Clicca su OK.
- Clicca nuovamente sul bottone Add ed aggiungi le quattro altre condizioni nello stesso modo appena visto. Cambia il segno "<=" in ">=" per le condizioni relative a xi.
- Scegli le opzioni:
- Clicca sul bottone Options
- Nella finestra Options che si apre, lascia selezionate le opzioni di défault Assume linear model e scegli l'opzione Allow only integer values.
- Clicca su OK.
- Clicca sul bottone Solve.
- Apparirà il messaggio Solution found, soluzione trovata. Clicca su OK.
I valori delle celle da B2 a D2 sono state modificate in modo da trovare il guadagno massimo possibile rispettando i vincoli imposti.
In questo esempio si ottiene x1= 82, x2 = 31 et x3 = 30.
- Puoi salvare questo modello cliccando sul bottone Save. Cliccando invece sul bottone Load è possibile richiamare il modello per affinarlo ulteriormente e, per esempio, modificare i valori immessi per i costi di produzione.
Lessico
Finestra principale |
---|
Inglese | Italiano | Descrizione |
---|---|---|
Define model | Definizione del modello | |
Set target cell | Definisci la cella obiettivo | Indirizzo della cella contenente il valore da ottimizzare |
Goal | Obiettivo | Definisce l'ottimizzazione: massimizza o minimizza |
By changing cells | Modificando le celle | Posizione delle celle il cui contenuto verrà modificato |
Subject to the constraints | Vincoli da rispettare | Definisce le condizioni che devono essere rispettate |
Add | Aggiungi | Aggiunge un nuovo vincolo |
Change | Modifica | Modifica la definizione del vincolo selezionato |
Delete | Elimina | Cancella il vincolo selezionato |
Solve | Risolvi | Lancia il processo |
Reset | Inizializza | Elimina tutti i valori immessi |
Options | Opzioni | Apre la finestra di dialogo Options |
Save | Registra | Registra (salva) i valori correnti nei metadati del documento |
Load | Apri | Importa i valori registrati nei metadati del documento |
Close | Chiudi |
Finestra Contraintes e Options |
---|
Inglese | Italiano | Descrizione |
---|---|---|
Cell Reference | Indirizzo della cella | Permette di immettere l'indirizzo della cella che dovrà contenere le condizioni/I vincoli imposti |
Constraint | Vincoli | Permette di immettere le condizioni imposte che possono essere un valore numerico o il riferimento ad una cella |
Assume linear model | Modello lineare | Se questa opzione è smarcata la funzione Solver utilizza un algoritmo di programmazione lineare, altrimenti utilizza un algoritmo non-lineare |
Allow only positive values | Permetti solo valori positivi | Le variabili possono assumere solo valori posotivi |
Allow only integer values | Permetti solo valori interi | Le variabili possanoa assumere solo valori interi |
Altre risorse
[Descrizione della funzione Solver] [en]