Passa ai contenuti principali

Barriere d'ingresso alle tecnologie di ottimizzazione

In questi giorni mi sto chiedendo quale sia il modo migliore per approcciarsi in maniera pratica alla risoluzione di un problema di ottimizzazione.

Cerco di spiegarmi con una storiella.

Supponiamo che io ed un mio collega lavoriamo per l'IT di una PMI; anzi, noi due siamo l'IT di questa PMI. Un giorno l'amministratore unico ci chiede di aiutare il direttore della produzione ad ottimizzare l'intera filiera di produzione, in modo da controllare i costi, incrementare i profitti, aumentare la qualità del lavoro. E magari di poter fare delle analisi what-if per capire costi e benefici di ipotetici interventi di manutenzione.

Io che ho studiato ricerca operativa all'università, con un onorevole 24, ho qualche vago ricordo e conoscenza  e sono abbastanza certo che quello che mi sta chiedendo l'amministratore unico si trovi in quel cassetto della mia memoria. Forse ho ancora qualche appunto, ma forse anche no e allora inizio a cercare su internet. Per fortuna trovo l'ultima edizione degli appunti del corso (grazie prof. per continuare ad aggiornarli e a pubblicarli liberamente) e, come esempio del capitolo che spiega la programmazione a numeri interi, trovo un problema che forse si avvicina a quello dell'amministratore unico. Ora, a parte il fatto che la risoluzione del problema è lasciata allo studioso, l'esercizio copre diciamo un quarto o un quinto di quello che dovrei fare io. E la parte restante?

Vabbè, diciamo che sono almeno volenteroso e che, a partire dalla traccia d'esercizio presente negli appunti, potrei iniziare a realizzare un dimostrativo. Tanto per poter dire all'amministratore unico se sono in grado di risolvere il suo problema e quanto costa in termini di tempo e licenze software.

Cerco su internet un modo per risolvere i problemi a programmazione a numeri interi e, nascosta nella seconda pagina di google, trovo finalmente un link ad un software commerciale. Se ai costi della minima licenza che posso comprare (diciamo 20.000 euro), ci aggiungo il costo di apprendimento di questo nuovo strumento (diciamo 2 o 3 mesi di lavoro) e il rischio di non capirci niente (diciamo abbastanza alto), concludo che questa strada non è percorribile.

Ritorno a cercare su internet, e questa volta aggiungo alla mia ricerca le parole magiche "open source". Oh bene bene, questa volta nella prima pagina mi sembra di aver trovato dei riferimenti utili. In effetti qualche software l'ho trovato. L'impressione però è che, pur avendo azzerato la parte economica, il tempo che mi ci vorrebbe per apprendere uno qualunque di questi software è forse aumentato, con il rischio di non capirci niente comunque e senza un servizio di supporto commerciale.

Non demordo ancora. Prendo il telefono e chiamo il mio collega che lavora presso un nostro cliente. Anche loro hanno una filiera produttiva articolata, per cui spero mi possa dare qualche suggerimento. Dopo i soliti convenevoli, arrivo diretto al punto e il mio collega mi presenta la soluzione su un piatto d'argento: excel. Loro fanno tutto con excel! Hanno un certo numero di fogli collegati tra di loro e con i quali ottimizzano il processo. Gli faccio notare che in realtà stanno controllando il processo, non ottimizzandolo; per tutta risposta mi viene detto che sono troppo pignolo con i termini: controllare ed ottimizzare in fondo sono anche sinonimi.


La storiella è inventata, ma il problema è reale. Quali soluzioni si possono offrire a chi vuole approcciarsi in maniera semplice e concreta alla risoluzione di problemi di ottimizzazione? Qui non mi interessano i mega progetti di logistica delle grandi aziende di distribuzione merci; sto considerando proprio la PMI che potrebbe trarre un vantaggio competitivo e strategico dall'adozione di alcune tecnologie di ottimizzazione, che sono però di fatto precluse per barriere d'ingresso troppo onerose da abbattere.


Spero di aver trasmesso la mia perplessità. Ci voglio pensare un po' per capire quali alternative ci possono essere.

Commenti

Post popolari in questo blog

Digital Twin – Il caso Hyperloop

  Con il termine  hyperloop  si identificano una serie di tecnologie che promettono di rivoluzionare il trasporto di persone e cose. L’idea di base è molto semplice: far viaggiare all’interno di tubi, dove viene creato il vuoto, delle capsule ad alta velocità con binari a levitazione magnetica.   Credits: Virgin Hyperloop on instagram.com/p/CRHEB9ctQ6u/   Qualche tempo fa, mi è capitato di leggere un interessante articolo su come la progettazione della soluzione guidata dal gruppo Virgin, sia stata affiancata da analisi svolte mediante un sistema di ottimizzazione matematica. Come meglio descritto nel seguito, un digital twin, completamente basato su un modello matematico di ottimizzazione, permette di valutare le migliori scelte progettuali tenendo in considerazione i vari obiettivi di progetto.   La necessità di avere un digital twin nasce probabilmente dal fatto che le tecnologie  hyperloop  non hanno una base di partenza già esistente. No...

La programmazione dichiarativa come sistema di intelligenza artificiale

Sull'intelligenza artificiale si è creato un grosso equivoco, che vale la pena risolvere. https://www.instagram.com/p/BwyfskdnV7a/ Senza voler essere formali, l’accezione comune di intelligenza artificiale è usata per identificare un sistema informatico basato su reti neurali usato per risolvere problemi di  difficile formalizzazione . Ad esempio, le auto a guida autonoma, i sistemi di traduzione in tempo reale, la previsione dei prezzi dell’energia. Per  difficile formalizzazione  intendo un concetto molto sottile. Scrivere un algoritmo che sia in grado di riconoscere l’immagine di un gattino è molto difficile se non impossibile. Mentre, in maniera paradossale, è più semplice scrivere un algoritmo che  impari  a riconoscere gattini perché è stato addestrato con le immagini di mille diversi gattini. Cablare ed addestrare una rete neurale che riconosca gattini è un esempio di  meta-programmazione , proprio perché non si scrive un algoritmo che ca...

PuLP – Un valido strumento per la didattica

L'insegnamento dei concetti di base della ricerca operativa, ovvero la programmazione lineare, ha trovato nel corso degli ultimi anni diversi strumenti di supporto. Sono ormai parecchi i software gratuiti e open source che permettono agli studenti e agli insegnanti di toccare con mano le nozioni e i concetti spiegati e studiati sui banchi. Ricordiamo, ad esempio, glpk che con il suoi linguaggio di modellazione MathProg permettete di scrivere e risolvere anche complessi modelli di programmazione lineare intera. Oppure citiamo anche lp_solve che con il suo ambiente impropriamente chiamato lp_solve IDE permette di scrivere e risolvere modelli di programmazione lineare direttamente nella formulazione matematica. A mio avviso però le proposte appena citate sono limitate nella potenza espressiva e nelle capacità di integrarsi con altri software o moduli esterni. Queste limitazioni sono egregiamente risolte da PuLP : un modellatore di problemi di programmazione lineare intera basato ...