Come usare il risolutore sul foglio di calcolo Excel o Calc

Il risolutore è un algoritmo usato nella ricerca operativa per trovare la soluzione di un problema di ottimizzazione.

Come funziona? L'algoritmo del risolutore trova automaticamente la configurazione ottimale delle variabili decisionali rispetto a una funzione obiettivo e a dei vincoli. E' utile per formalizzare e risolvere un modello di ottimizzazione.

Quale risolutore usare

I risolutori sono strumenti disponibili anche nei fogli elettronici ( spreadsheet ).

Sia Microsoft Excel che Calc integrano al loro interno un algoritmo risolutore.

Nota. In Excel il risolutore è un componente aggiuntivo. E' quindi escluso dalla configurazione di default del software. Per usarlo bisogna istallarlo. In Calc, invece, è già preinstallato.

Tuttavia, se le variabili decisionali sono molte, è meglio usare un software professionale dedicato alla R.O. oppure sviluppare un programma risolutore ad hoc tramite i linguaggi di programmazione.

Come usare il risolutore di Calc

Il foglio elettronico Calc è un software open source, si può usare gratuitamente.

Si trova nelle suite Open Office e Libre Office, disponibili per PC con sistema operativo Windows, Linux e OS X.

Un esempio pratico

Ho un buono da 1500 euro da spendere presso un negozio di elettronica.

Sul foglio di calcolo digito una lista della spesa con 6 prodotti (B2:B7) e i rispettivi prezzi unitari (C2:C7).

il problema formalizzato nel foglio di calcolo

Nelle celle E2:E7 indico le variabili decisionali, ossia i prodotti da acquistare.

Ogni variabile indica se voglio acquistare (1) oppure no (0) un prodotto.

Nota. Nelle celle F2:F7 sono copiati i prezzi dei prodotti soltanto se decido di acquistarli, ossia solo se la variabile decisionale relativa al prodotto è uguale a 1.

Nella cella F9 viene calcolato il totale della spesa.

Infine, nella cella C9 il budget a mia disposizione ( il buono da spendere ).

E' subito evidente che il budget (1500€) non mi consente di comprare tutti i prodotti (2350€).

il problema di ottimizzazione formalizzato sul foglio di calcolo

Per risolvere il problema mi affido al risolutore.

Clicco su Strumenti nel menu superiore e seleziono la voce Risolutore.

Selezionare Strumenti e Risolutore

Come cella di destinazione ( obiettivo ) indico la spesa ( F9 ).

Voglio spendere interamente il buono, quindi indico al risolutore che voglio ottimizzare il totale della spesa al valore di 1500 euro.

Poi specifico le variabili decisionali ( celle E2:E7 ) nella voce "Tramite modifica celle", quelle in cui decido se acquistare o meno un prodotto e che determinano indirettamente la spesa totale.

la configurazione del risolutore

Per il momento non specifico nessun vincolo e clicco sul pulsante Risolvi in basso a destra.

premere su Risolvi in basso a destra

Il risolutore mi fornisce una soluzione al problema, quella di acquistare 6 tablet.

Effettivamente, ogni tablet costa 250 euro. Quindi comprandone 6 spenderei tutto il buono.

Ma cosa me ne faccio di 6 tablet?

la soluzione al problema

Per risolvere questo problema devo definire meglio il problema.

Torno sul risolutore e aggiungo dei vincoli nel riquadro Condizioni limitative.

Per evitare di acquistare più di un prodotto dello stesso tipo, specifico che la spesa per ciascun prodotto (F2:F7) deve essere inferiore o uguale (<=) al prezzo unitario di ogni prodotto (C2:C7).

Poi clicco su Risolvi.

aggiungere un vincolo nelle condizioni limitative e cliccare su Risolvi

Ora il risolutore indica più prodotti da acquistare.

Tuttavia, per far quadrare i conti il risolutore mi dice di vendere 7.5 stampanti!!!

il risultato del risolutore

Gli errori da risolvere sono ancora due.

  1. Il segno meno non deve essere previsto per risolvere il problema della lista della spesa.
  2. Le variabili di decisioni devono essere numeri interi.

Torno sul risolutore e aggiungo questi altri due vincoli.

Clicco sul pulsante Opzioni in basso a sinistra.

cliccare su Opzioni per modificare la configurazione del motore di risoluzione

Quindi, seleziono le opzioni Assumi valori interi e Assumi variabili come non negativi.

Poi clicco su OK.

imposto ulteriori due condizioni 1) numeri interi 2) numeri non negativi

Nota. In questa finestra delle opzioni c'è anche la possibilità di definire la profondità di elaborazione e il tempo di esecuzione. Sono voci utili per rendere più rapido il processo di elaborazione o, per inverso, più preciso. Per il momento non le uso perché il problema da risolvere è semplice. Sono però voci utili se il problema è molto complesso.

Infine, clicco di nuovo sul pulsante Risolvi per vedere il nuovo risultato.

cliccare sul bottone Risolvi in basso a destra

Finalmente il risultato è corretto. Il risolutore mi suggerisce di acquistare un PC e un Notebook.

In questo modo, posso spendere interamente il buono da 1500 euro.

il risultato finale del risolutore

Questo semplice esempio dimostra l'utilità dei risolutore.

In questo caso il problema era molto semplice... avrei potuto risolverlo anche a mente. E' però utile per spiegare il funzionamento dei risolutori.

Il risolutore diventa particolarmente utile per risolvere problemi di ottimizzazione complessi.

E ovviamente per chi studia o si interessa di ricerca operativa.

Come usare il risolutore di Excel

Il software Microsoft Excel ha un risolutore nei componenti aggiuntivi.

Per usarlo devo prima aggiungerlo.

Nota. Le istruzioni per aggiungere un componente aggiuntivo su Excel cambiano a seconda della versione. In genere si clicca su File, poi Opzioni, si seleziona Componenti aggiunti e si installa il Risolutore. Per ulteriori info, rimando alla guida ufficiale di Microsoft.

Un esempio pratico

Formalizzo lo stesso problema di ottimizzazione già visto su Calc.

E' il classico problema della lista della spesa.

formalizzare il problema di ottimizzazione sul foglio di calcolo Excel

Per risolvere il problema, clicco su Dati nel menu in alto.

Poi seleziono la voce Risolutore.

come avviare il risolutore su Excel

Nota. In questo caso sto usando la versione Microsoft Excel 2007. Le istruzioni sono comunque simili anche nelle versioni successive del software. Possono comunque cambiare le voci delle funzioni e la disposizione nell'interfaccia del software.

Si apre la finestra con i parametri del risolutore.

Nella voce imposta cella obiettivo indico la cella della spesa totale ( $F$9 ) e specifico che la funzione obiettivo deve essere uguale al valore del budget ( $C$9 ) ossia 1500 euro.

Alla voce Cambiando le celle indico le variabili di decisione (E2:E7 )

Nel riguadro dei vincoli del problema, clicco sul pulsante Aggiungi e inserisco F2:F7 <= C2:C7.

configuro il motore del risolutore

Nota. Evito di spiegare il motivo di queste scelte. Sono le stesse spiegazioni già viste approfonditamente nell'esempio del risolutore di Calc.

Ora clicco sul pulsante Opzioni e attivo le voci Presupponi modello lineare e Presupponi non negativo.

In questo modo, le variabili decisionali sono numeri interi non negativi.

modificare le opzioni di calcolo del risolutore

A questo punto il modello di ottimizzazione è pronto per essere elaborato.

Clicco sul pulsante Risolvi.

Premere su Risolvi

Il risolutore di Excel trova la soluzione del problema.

Mi suggerisce di acquistare un tablet e un PC.

La spesa complessiva eguaglia il budget a mia disposizione ( 1500 € ).

la soluzione del problema

E così via.

 


 

Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

FacebookTwitterLinkedinLinkedin
knowledge base

La ricerca operativa

  1. Cos'è la ricerca operativa
  2. Come costruire un modello del problema
  3. Il modello di ottimizzazione
  4. Come trovare le soluzioni ottimali
  5. Come usare il risolutore di Excel o Calc
  6. La programmazione lineare (PL)
  7. La programmazione intera (PI)