4
INTRODUZIONE
L’attenzione all’ambiente e all’impatto ambientale dei prodotti ha portato negli ultimi
anni a prestare grande attenzione all’utilizzo di differenti metodologie di progettazione
del prodotto che tengano conto di tutte le fasi del suo ciclo di vita con particolare
attenzione alla fase di fine vita (End Of Life). In questo contesto, l’operazione di
disassemblaggio risulta fondamentale per il recupero delle risorse a fine vita, ed ha
anche grande importanza per le strategie di estensione della vita di utilizzo del prodotto.
Fino ad oggi la filosofia di sviluppo dei nuovi prodotti veniva riassunta dalla frase
“from cradle to gate” .
Giunto al proprio fine vita, il prodotto potrà essere:
riutilizzato nei processi produttivi (totalmente o in parte);
essere scomposto in materiali componenti che possono essere riciclati per la
produzione dello stesso tipo o di altri prodotti;
essere utilizzato a fini di recupero energetico (termovalorizzazione);
essere smaltito in discarica.
Ultimamente si sta diffondendo anche l’espressione “from cradle to grave” ovvero
“dalla culla alla tomba” che pone l’accento sulla rivalorizzazione del prodotto a fine vita
sotto forma di rientro in circolo dei materiali riciclati.
L’obiettivo di questo lavoro consiste nello sviluppo di una metodologia innovativa di
analisi del processo di smontaggio di un prodotto, mirato alla ricerca della sequenza
ottimale, che minimizzi i costi e i tempi complessivi del processo.
In questo lavoro viene prestata molta attenzione agli algoritmi di ottimizzazione ispirati
alla natura, in particolare agli algoritmi ACO (Ant Colony Optimization), GENETICO e
BCO (Bees Colony Optimization), ritenuti di notevole potenza per applicazioni
concernenti la determinazione di sequenze ottimali di smontaggio. Le procedure utili
all’applicazione degli algoritmi sono state implementate in ambiente Matlab, un
software che, grazie alla sua capacità di lavorare su matrici, ha consentito di individuare
le sequenze ottimali di smontaggio in breve tempo e con un buon numero di parametri
personalizzabili.
5
Il primo obiettivo è stato quello di verificare le potenzialità e l’efficienza degli algoritmi
progettati, attraverso l’applicazione degli stessi su un caso semplice, il disassemblaggio
di un controllo pneumatico. Trattandosi di un assemblato di piccole dimensioni, è stato
possibile verificare i risultati ottenuti dagli algoritmi e dimostrare l’effettiva capacità
degli stessi di individuare la soluzione migliore. Gli algoritmi sono stati quindi
applicati a diversi casi reali: il disassemblaggio di una macchina da caffè, di un
tostapane e una cassa audio per pc, quindi, elettrodomestici comuni e largamente
utilizzati, di cui una corretta gestione del ciclo del recupero garantirebbe significative
valenze ambientali: si evita la dispersione nell’ambiente di sostanze pericolose e si
ottengono risparmi notevoli sia in termini di estrazione di materie prime che di energia.
Nella seconda parte di questo lavoro di tesi viene presentato un confronto tra i tre
algoritmi utilizzati nei diversi casi studio evidenziando le potenzialità di ciascuno di essi
e la loro adattabilità ai problemi considerati, adattabilità che è possibile estendere a tutti
o quasi i prodotti attualmente in commercio.
Gli strumenti sviluppati, se opportunamente integrati nel processo progettuale,
consentirebbero di ottimizzare le scelte progettuali per migliorare la velocità e facilità di
disassemblaggio, in accordo con le più comuni linee guida del Design for Disassembly.
E’ stato pertanto possibile analizzare i risultati ottenuti dall’applicazione di questi
modelli matematici, nell’ottica della pianificazione del processo di disassemblaggio di
prodotti complessi, al fine di utilizzare tali strumenti come importante fonte di
vantaggio competitivo e come fondamentale leva strategica nella gestione del recupero
dei prodotti a fine vita.
L’ottimizzazione dei processi di smontaggio resta comunque un importante e
promettente campo di ricerca, che vedrà ancora notevoli approfondimenti e studi negli
anni futuri, in modo particolare sui metodi di ottimizzazione ispirati alla natura.
6
1 IL PROCESSO DI SMONTAGGIO
La pianificazione del processo di disassemblaggio include tutti i problemi relativi al
processo di disassemblaggio di un prodotto che sono articolati su differenti livelli di
analisi, partendo da un grafico o da una rappresentazione matematica degli assemblati,
giungendo alla generazione e ottimizzazione della sequenza di disassemblaggio.
In una prospettiva più ampia, questi aspetti potrebbero essere combinati con l’analisi del
livello ottimo di disassemblaggio, ossia il livello di disassemblaggio che soddisfa le
necessità e che rende vantaggioso sostenere i costi del processo stesso. Infatti, le parti o
sotto - assemblati, spesso, possono essere venduti per il riutilizzo oppure come rottami,
a seconda della domanda del mercato. Per ogni componente in un assemblato, vi è una
diversa aspettativa di fine vita: nei prodotti meccanici, le parti in movimento, per
esempio, sono note per avere una più alta probabilità di rottura e la necessità di
frequenti sostituzioni. Al contrario, moderni componenti elettronici tendono ad avere
una maggiore durata e possono essere riutilizzati in altri prodotti.
La sequenza di smontaggio è il motore principale di questo sistema di pianificazione
perché ha un grande impatto su efficienza e costi. Man mano che un prodotto diventa
più complesso, il compito di programmazione diventa più difficile. E 'ovvio che i
produttori ecologicamente responsabili devono prendere in considerazione il costo di
danno ambientale: è questo che rende il riutilizzo dei componenti e delle parti, nella
fabbricazione del nuovo prodotto, economicamente accettabile.
Le finalità, quindi, del disassemblaggio, nell’ottica della tutela ambientale, sono
riassumibili come segue:
recupero di parti, componenti e sotto - assemblati riutilizzabili in nuovi prodotti;
recupero di materiali riciclabili;
rimozione di componenti o materiali pericolosi o tossici;
accessibilità a parti o componenti che possono essere soggette ad operazioni di
servizio (riparazione, manutenzione, diagnostica).
7
Un disassemblaggio eccessivamente difficoltoso comporterebbe costi troppo elevati, e
questo potrebbe fortemente condizionare la convenienza del recupero a fine vita del
prodotto, e, quindi, la reale fattibilità.
La funzione del profitto del disassemblaggio è fortemente influenzata dall’efficienza di
tale processo, che se accuratamente pianificato può consentire di:
ridurre i tempi e i costi delle operazioni di disassemblaggio;
selezionare il completamento delle operazioni di disassemblaggio più
appropriate ed evitare quelle più superflue e meno convenienti.
La funzione del profitto dipende anche fortemente dalle caratteristiche geometriche del
prodotto, che possono favorire l’efficienza delle sequenze di smontaggio, attraverso
un’architettura del prodotto e proprietà dei componenti volte a facilitarlo.
Figura 1- schema processo di smontaggio
8
Per quanto riguarda il processo di smontaggio e le sue caratteristiche la letteratura
scientifica presenta numerosi spunti di riflessione e presta particolare attenzione ai
processi di recupero dei prodotti giunti a fine vita (EOL) in modo da recuperare più
valore possibile da questi prodotti evitando e riducendo la produzione di rifiuti
industriali. Le pubblicazioni più recenti relative a questo argomento riguardano appunto
i processi di recupero dei prodotti, l’individuazione delle sequenze ottimali di
smontaggio con particolari attenzioni ai costi dello stesso e le tecniche di gestione del
processo nel suo insieme.
L’ articolo [1] tratta di problemi relativi alla progettazione ottimale e dei processi di
recupero dei prodotti a fine vita (End Of Life) con particolare attenzione al
disassemblaggio degli stessi. L’obiettivo è quello di recuperare quanto più valore
economico ed ecologico possibile e ridurre la quantità totale di rifiuti prodotti. In questo
contesto viene utilizzato un nuovo algoritmo in due fasi per la reverse engineering e
riprogettazione dei prodotti. Nella prima fase viene proposta un’analisi di
programmazione multi-criteria per l’identificazione e la selezione ottimale dei sotto-
assemblati e dei componenti destinati al recupero da un insieme di differenti prodotti
giunti a fine vita. Nella seconda fase viene utilizzata una programmazione lineare di
tipo multi-prodotto che ottimizza i processi di recupero considerando i tempi di
smontaggio e i lead-times aziendali. Tuttavia per risolvere o limitare il problema
dell’incertezza delle soluzioni si utilizza inoltre una metodologia di analisi basata su
simulazioni. Questo approccio è utilizzato a supporto di decisioni gestionali di medio
livello.
Nell’articolo [2] l’autore presenta e sperimenta diverse metodologie per il concurrent
engineering osservando le operazioni e i processi di smontaggio da una prospettiva
globale. Viene introdotto in questo articolo il DFMA che sfrutta tutte le considerazioni
fatte riguardo a mix di prodotto, configurazione di processi e costi di set-up per
giungere ad una progettazione ottimale e globale del processo di smontaggio. Questo
metodo è anche utilizzabile per valutare la capacità produttiva e pianificare
l’accoppiamento di elementi complessi. Le soluzioni vengono inoltre esaminate
variando costi, livelli di produttività e configurazioni di prodotto differenti.
9
La pianificazione del disassemblaggio ha acquisito nel corso degli anni notevole
importanza nell’ambito della rivalorizzazione dei prodotti giunti a fine vita e nella
riduzione dei rifiuti industriali. La sequenza ottimale di disassemblaggio va valutata per
ogni prodotto riutilizzabile o per il quale si presuppone che sia destinato al riutilizzo o al
riciclo. In questo articolo [3] viene descritta una metodologia inversa di analisi basata su
quella creata da Nevins e Whitney. Nella nuova tecnologia la generazione delle
sequenze e la selezione delle parti da recuperare viene effettuata con l’utilizzo di un
software speciale.
L’individuazione della sequenza ottimale di smontaggio per un dato prodotto può
procedere attraverso la programmazione matematica, basata sui grafici AND/OR,
oppure analizzando i processi tecnologici di smontaggio. L’articolo [4] descrive diversi
metodi di ottimizzazione basati sui costi dipendenti dalle diverse sequenze di
smontaggio. I metodi utilizzati precedentemente erano basati su euristiche o meta-
euristiche, quindi trattavano problemi di tipo combinatorio non considerando
minimamente i costi e i tempi associati al posizionamento di un componente prima o
dopo un altro componente. I nuovi metodi di ottimizzazione combinano queste tecniche
alla programmazione lineare e alla programmazione binaria in modo da poter
considerare diverse situazioni aziendali e applicare le tecniche a qualsiasi processo di
smontaggio. Il metodo dimostra inoltre che le iterazioni da eseguire per ottenere la
sequenza ottimale di smontaggio sono molto poche, pertanto il tempo di CPU
necessario per l’esecuzione dell’algoritmo è molto ridotto.
10
2 TECNICHE DI OTTIMIZZAZIONE ISPIRATE ALLA
NATURA
Molti problemi di ottimizzazione di tipo multi variabile non possono essere risolti con i
classici metodi in tempi computazionali ridotti. La progettazione di sistemi
hardware/software complessi, la determinazione di strutture atomiche delle proteine,
l’ottimizzazione dei parametri di funzioni potenziali, la schedulazione della produzione,
la pianificazione di un ciclo di produzione sono solo alcuni esempi di possibili
applicazioni ingegneristiche dove due o più funzioni obiettivo devono essere ottimizzate
simultaneamente.
Questo ha portato a generare algoritmi capaci di trovare soluzioni quasi ottime in tempi
computazionali ragionevoli.
Gli algoritmi di ottimizzazione ispirati alla natura mimano i metodi, esistenti in natura,
per guidare una ricerca verso la soluzione ottima. Una differenza tra questa categoria di
algoritmi e gli algoritmi di ricerca diretta è l’utilizzo, nei primi, di una popolazione di
soluzioni per ogni iterazione invece di una singola soluzione.
Durante ogni ciclo dell’algoritmo, una popolazione di soluzioni viene processata e
trasformata, producendo come risultato una nuova popolazione di soluzioni.
Se un problema di ottimizzazione ha un singolo ottimo, si può prevedere che i membri
della popolazione convergano a tale soluzione di ottimo. Tuttavia, se un problema
prevede più soluzioni di ottimo, un algoritmo ispirato alla natura può essere usato per
catturare tali soluzioni di ottimo nella popolazione finale.
In questa categoria di algoritmi rientrano:
Simulated Annealing;
algoritmo di ottimizzazione dello sciame di particelle, Particle Swarm
Optimization (PSO);
11
algoritmo di ottimizzazione della colonia di formiche, Ant Colony Optimization
(ACO);
algoritmo genetico, Genetic Algorithm (GA);
algoritmo di ottimizzazione della colonia di api, Bees Colony Optimization
(BCO).
Tutti questi metodi, differenti tra loro, hanno una strategia in comune: generare
variazioni di soluzioni già create. Alcuni metodi ricorrono a criteri “avidi” per decidere
quali soluzioni generate conservare. Tale criterio porta ad accettare una nuova soluzione
se e soltanto se questa comporta un incremento del valore della funzione obiettivo
(assumendo che il problema di ottimizzazione sia di massimizzazione).
2.1 SIMULATED ANNEALING
Il Simulated Annealing (SA) è divenuto negli ultimi anni una euristica ampiamente
discussa. Le applicazioni più diffuse del SA sono su problemi combinatori, in
particolare su problemi di scheduling. In particolare nell’ambito dello scheduling di
processi industriali su macchine si hanno varie applicazioni da problemi con tempi di
settaggio dipendenti dalla sequenza di montaggio a problemi di tipo flow shop.
Il SA è nato come metodo di simulazione del processo di tempra (annealing) dei solidi.
L’annealing [5] è il processo con il quale un solido, portato allo stato fluido, mediante
riscaldamento ad alte temperature, viene riportato di nuovo allo stato solido o
cristallino, a temperature basse, controllando e riducendo gradualmente la temperatura.
Ad alte temperature, gli atomi nel sistema si trovano in uno stato altamente disordinato
e quindi l’energia del sistema è elevata. Per portare tali atomi in una configurazione
cristallina altamente ordinata (statisticamente), deve essere abbassata la temperatura
del sistema. Riduzioni veloci della temperatura possono causare difettosità nel reticolo
cristallino con conseguente meta-stabilità, con fessurazioni e fratture del reticolo stesso
(stress termico). L’annealing evita questo fenomeno procedendo ad un graduale
raffreddamento del sistema, portandolo ad una struttura globalmente ottima stabile.
12
La determinazione di un appropriato criterio di interruzione è un fattore critico per il
successo del SA. Il processo di annealing converge ad un ottimo globale se la
temperatura è sufficientemente ridotta in modo graduale. Al fine di evitare un eccessivo
tempo di calcolo, ciò che viene usualmente fatto è di interrompere il processo quando il
numero di soluzioni accettate ad un certo stadio è inferiore ad un valore fissato. In tal
caso ci si può aspettare una soluzione prossima all’ottimo globale. Eventualmente, per
affinare o verificare la bontà della soluzione ottenuta, è possibile utilizzare dei metodi di
ricerca locale.
Anche la generazione delle soluzioni rappresenta un punto cardine per la velocità di
calcolo dell’algoritmo SA. È necessario che la procedura di generazione, detta anche
perturbazione, sia il più veloce possibile;il numero elevato di transizioni per ogni stadio
di temperatura, se associato ad un elevato tempo di generazione di soluzioni candidato,
porterebbe sicuramente ad un aumento esponenziale del tempo di calcolo.
2.2 PARTICLE SWARM OPTIMIZATION
L’algoritmo di Particle Swarm Optimization [6] ( PSO ), dal momento della sua
pubblicazione nel 1995, è stato impiegato per risolvere numerosi problemi di
ottimizzazione. La semplicità del concetto che ne è alla base, unita alla capacità di
adattarsi con successo ai vari problemi a cui veniva applicato, ha attirato nel corso degli
anni una sempre crescente attenzione da parte della scienza. Le origini del PSO
affondano le loro radici nello studio dei comportamenti sociali che regolano i
movimenti e le dinamiche di gruppi di animali ( stormi di uccelli, banchi di pesci,
sciami di insetti, ecc ).
L’aspetto più interessante di questi studi va ricercato nel fatto che l’insieme di individui
si muove e si organizza in assenza di un controllo centralizzato. In altre parole, il
comportamento collettivo è il risultato di semplici interazioni locali e il singolo
individuo non è dotato di percezione globale.
Questo fa si che, anche con un numero non troppo elevato di particelle, si riescano ad
esaminare dati di grandi dimensioni, per poi concentrarsi su una zona specifica, dove
una o più delle particelle hanno trovato un possibile target secondo le specifiche
particolari della funzione di fitness.
13
Da questa semplice descrizione di come opera l’algoritmo, è semplice capire perché a
questo tipo di ottimizzazione sia stato dato l’appellativo di “swarm” ( propriamente in
italiano “sciame” ).Tale parola è stata scelta in virtù del comportamento tenuto dai vari
elementi della simulazione, il cui movimento caotico sembra molto simile a quello di
uno sciame di insetti in cerca di fonti di sostentamento.
Chiarita la correttezza dell’appellativo “Swarm Optimization”, resta ancora da spiegare
perché sia stato ad essi anteposto il termine “Particle”. Gli agenti sono degli oggetti
senza volume ( possono occupare la stessa posizione spaziale ) e, almeno nella versione
originale, senza massa: questi due concetti porterebbero a classificare gli agenti come
dei punti e non come delle particelle. Gli agenti utilizzati sono però anche caratterizzati
dall’avere una propria velocità ed accelerazione,due attributi questi strettamente legati
al concetto di particella. Per tale motivo gli autori scelsero di battezzare il proprio
algoritmo come Particle Swarm Optimization.
Negli ultimi anni, come si può notare dai numerosi articoli presenti nella letteratura
scientifica recente, è sempre più crescente l’interesse per quella che viene chiamata
Swarm Intelligence (intelligenza dello sciame) da cui prendono spunto algoritmi come
l’ACO e il BCO.
La qualità di un prodotto dipende dalla qualità degli accoppiamenti delle parti di cui è
composto. Quando le parti assemblate sono intercambiabili, le variazioni nel
disassemblaggio possono essere calcolate come la somma delle tolleranze dei
componenti. Se le variazioni sono minori della somma delle tolleranze, l’unica
soluzione è l’assemblaggio selettivo. Nell’articolo [6] la selezione delle sequenze
ottimali di assemblaggio si effettua utilizzando la Particle Swarm Optimization.
L’algoritmo proposto è stato dimostrato per un assemblaggio lineare costituiti di 3
componenti aventi simili dimensioni e proprietà tecnologiche. La variazione di
assemblaggio ottenuta con i metodi precedenti è pari a 37 μm; utilizzando l’algoritmo
PSO si ottiene una riduzione della variazione fino a 7,2 μm. Le considerazioni su
questo algoritmo valgono anche per problemi di ottimizzazione con un numero di
componenti maggiore.
14
2.3 ANT COLONY OPTIMIZATION
Uno dei più affascinanti fenomeni di organizzazione osservabili in natura è una colonia
di formiche: sono dappertutto, se c’e’ un panino incustodito lo trovano in poco tempo,
in ancora meno tempo lo hanno ricoperto e a fine picnic non ce n'è più traccia. Per
quanto piccole siano, le formiche trovano sempre la via più breve e più agevole per
ritornare a casa. L’algoritmo che formalizza il comportamento delle formiche prende il
nome di Ant Colony Optimization [7] (ACO) ed è stato introdotto nel 1992 da Marco
Dorigo del Politecnico di Milano. L’argomento presenta un numero impressionate di
technical paper, che oltre a descriverlo ed espanderlo, ne formalizzano le più comuni
applicazioni pratiche.
L’euristica ACO è applicata a problemi di ottimizzazione discreta. Innanzitutto
definiamo l’ambiente in cui le formiche operano: esse si muovono su un grafo con un
numero finito di nodi. Per capire dove le formiche si trovano in un dato istante useremo
il concetto di stato – mentre per valutare globalmente cosa fanno definiremo cos’è una
soluzione ammissibile.
C = { , ,…. } è un insieme finito di nodi
L = { | ( , ϵ C} è un insieme finito di rami – l’insieme delle possibili
connessioni (o transizioni) fra gli elementi di C
= J( ,t) è il costo associato al ramo – normalmente è dato dal tempo
impiegato per percorrerlo
Ω = Ω(C,L,t) è un insieme finito di vincoli assegnati sugli elementi di C ed L
s = ( , …, ,…) è una sequenza di elementi appartenenti a C ed s è chiamato
stato e rappresenta i nodi che una formica ha visitato nell’ordine in cui
compaiono nella sequenza.
Lo stato è la “memoria” che la formica ha del suo viaggio.
15
Sia S l’insieme di tutte le possibili sequenze, allora definiamo il suo sottoinsieme
composto da tutte le sequenze s che sono stati ammissibili rispetto ai vincoli Ω .
La lunghezza della sequenza s è espressa come |s|.
Dati due stati =( , .. ) e =( , .. , +1) si dice che lo stato è
raggiungibile dallo stato se esiste un +1 ϵ L tale che risulti
=( , +1). L’insieme degli stati raggiungibili in uno solo passo a partire
dallo stato s si identifica con
Ψ si definisce soluzione se è uno stato appartenete ad “s” e soddisfa tutti i
requisiti del problema, come ad esempio una soglia minima da superare
JΨ(L,t) è il costo associato alla soluzione Ψ con il quale ne valutiamo l’ottimo
Nel caso del commesso viaggiatore, C è l’insieme delle città, L l’insieme della rete
stradale che le collega e la soluzione Ψ è un circuito Hamiltoniano a cui è associato un
costo JΨ(L,t).
Dopo aver definito l’ambiente vediamo come si comporta la colonia di formiche. Le
formiche operano esplorando il grafo: esse scelgono i vari archi da percorrere secondo
una logica descritta più avanti. Le formiche sono completamente indipendenti tra di loro
e per scambiarsi informazioni sulla “bontà” dei percorsi trovati usano scie di feromoni
che depositano sui rami percorsi. Dato un ramo , si indica con la scia di feromoni
associata. Inoltre si può associare ad ogni ramo un valore euristico che influenzerà la
scelta del percorso da parte delle formiche. Il valore euristico può essere inserito sia
all’inizio sul grafo, sia durante il processo di ottimizzazione.
Le formiche si comportano nel seguente modo:
Cercano la soluzione di costo minore min(JΨ(L,t))
Una formica k ha una memoria che usa per salvare informazioni sul percorso
che ha seguito. La memoria serve per costruire soluzioni ammissibili, valutarle e
ricostruire il percorso fatto all’indietro
16
Una formica k nello stato =(s, )=(s,i) può andare in ogni nodo cj che
appartiene all’insieme degli stati raggiungibili dal nodo i
La scelta del nodo in cui andare viene fatta in base a regole probabilistiche, che
si trovano in ogni nodo come ant routing table =[ ]. La ant routing table è
una funzione delle scie di feromoni , dei valori euristici , del percorso che
la formica ha fatto per arrivare fino a questo nodo ( ) e dai vincoli del
problema
Ogni formica può nascere con uno stato di partenza start ed avere una o più
condizioni di morte
Le formiche esplorano continuamente il grafo costruendo in maniera
incrementale una soluzione fino a quando per almeno una formica non sono
verificate le condizioni di morte
Una formica può emettere una scia di feromoni mentre esplora il grafo: questa
procedura si definisce aggiornamento attivo passo per passo di feromoni
Alternativamente una formica può esplorare il grafo, trovare una soluzione e poi
depositare i feromoni seguendo il percorso inverso. Questa procedura prende il
nome di aggiornamento attivo ritardato di feromoni
Le formiche esplorano un grafo muovendosi asincronamente: la scelta del percorso la
fanno in base ai risultati di un processo stocastico, che è definito tramite informazioni
locali ad ogni nodo contenute nella ant routing table. Pur essendo le formiche
sufficientemente complesse da trovare singolarmente una soluzione, una buona
soluzione è trovata solo grazie ai risultati collettivi di tutte le formiche. Ogni formica fa
uso solo di informazioni private (la sua memoria) e di informazioni locali (ant routing
table). Per comunicare fra di loro le formiche leggono e scrivono scie di feromoni:
quando una formica trova una soluzione, la valuta e deposita la sua valutazione nella
scia sul percorso che ha seguito.