• Non ci sono risultati.

Metodi computazionali intelligenti nella produzione

4.TRASFERIMENTO TECNOLOGICO E COMPLESSITA’

CARTESIANO SISTEMICO

3- apprendimento per rinforzo (Reti neurali, Algoritmi genetici o evolutivi, Sistemi a

6.4 Metodi computazionali intelligenti nella produzione

Dal finire degli anni ‘90 sono stati sviluppati diversi strumenti intelligenti di calcolo utilizzabili in ambito produttivo. Vengono elencati di seguito quelli più diffusi insieme alle loro principali caratteristiche [75].

Expert Systems (ES)

sono programmi computerizzati comprensivi di una base di conoscenza su un dominio di riferimento che viene utilizzata per risolvere problemi inerenti al dominio considerato, i primi sistemi esperti sono stati realizzati all’inizio degli anni ’70. Il sistema esperto esegue le stesse operazioni di una persona esperta in materia, deve essere in grado di dare i medesimi giudizi e di fornire le stesse spiegazioni. Un ES sostituisce pertanto l’esperto della materia, in particolare l’operatore aziendale che deve risolvere problemi all’interno di un’impresa

Un sistema esperto si articola in tre parti tra loro integrate: • Base di conoscenza

• Motore inferenziale • Interfaccia utente

Fig.6.1 Struttura di un sistema esperto

Le differenza che esiste tra un sistema tradizionale e un ES è che i sistemi esperti utilizzano tecniche euristiche e sono guidati da dati, ma non da una definita procedura. L’approccio euristico prevede che, se anche una soluzione è ritenuta soddisfacente, non è per forza quella che noi stiamo cercando. Tutte le soluzioni sono considerate soddisfacenti , si prende come valida quella che più si avvicina all’obiettivo finale. La tecnica euristica, come verificato nella presente ricerca,

87

è alla base di alcune tra le più significative metodologie di calcolo della complessità ad oggi proposte dalla comunità scientifica.

Esempi di applicazione sono la Nissan e la Toyota che utilizzano un sistema esperto per la modellazione del flusso dei materiali, l’applicazione delle norme e il coordinamento della fabbricazione lungo tutta la linea produttiva.

Knowledge-Based Systems (KBS)

I Knowledge-Based Systems. costituiscono un sottogruppo dei sistemi esperti che in particolare viene utilizzato quando ci si basa su una conoscenza articolata di uno specifico argomento. Vengono prevalentemente utilizzati in problemi complessi di tipo decisionale, a livello industriale in particolare durante la fase di progettazione del prodotto.

La caratteristica che qualifica questa tecnica come Intelligenza Artificiale è la incompletabilità del sistema. Questo perché la conoscenza, che deriva da diverse fonti di informazione, come mostrato in fig. 6.2 non è mai completa e può essere continuamente aggiornata. Si tratta quindi di uno strumento che guida l’utente, attraverso l’utilizzo di proposizioni logiche quali alberi di decisione, tabelle di verità, etc., verso una scelta corretta.

Fig. 6.2 Rappresentazione grafica di un KBS e delle fonti di informazione della base di conoscenza [76].

Insieme ai Sistemi Esperti costituiscono la tecnica di IA più matura, essendo già disponibili commercialmente parecchi sistemi di sviluppo per facilitare la loro fabbricazione.

88

Multi-Agent (MA)

La tecnica più utilizzata nell’ambito del controllo e della supervisione è l’agent-based

software, in quanto particolarmente adatta al controllo distribuito. L’affidabilità e la flessibilità di

un sistema manifatturiero dipendono dall’affidabilità e dalla flessibilità del sistema di controllo incorporato, ovvero, nella maggior parte dei casi, di un software agent-based.

Un tipico processo di produzione è molto simile ad una soluzione Multi-agent, dove ogni dipartimento (o segmento) del sistema produttivo è rappresentato da un agente che, collaborando e cooperando assieme agli altri agenti, realizza i compiti di produzione. Un agente può fare osservazioni in merito al suo ambiente, ha una propria conoscenza, dispone di preferenze riguardo agli stati dell’ambiente e inizia ed esegue azioni che cambiano l’ambiente che lo circonda. [77]. Questo concetto viene rappresentato in fig. 6.3.

Si può quindi dedurre che l’idea alla base di un sistema multi-agent è la decentralizzazione del controllo dove l’organizzazione viene realizzata autonomamente (self-organization).

Applicazioni industriali:

I sistemi multi-agent possono essere applicati a tutti le diverse fasi di sviluppo del prodotto: design, process planning, pianificazione produzione e allocazione risorse, programmazione, controllo monitoraggio, diagnosi, assemblaggio.

89

Neural Networks (NN)

Le reti neurali sono rappresentate da modelli matematici che definiscono le interconnessioni tra elementi (neuroni o nodi artificiali) rappresentanti il cervello umano. Simulano pertanto il comportamento del cervello umano combinando pattern di riconoscimento, ragionamento deduttivo e computazione numerica.

La prima rete neurale denominata “Perceptron” fu inventata presso i Cornell Aeronautical Laboratory di New York nel 1957. Si trattava di un classificatore lineare in grado di raggruppare oggetti in base a valori simili delle loro caratteristiche, il che ricorda la Group Technology, cioè il raggruppamento dei prodotti in famiglie in base a caratteristiche simili di natura geometrica e tecnologica.

Lo scopo delle reti neurali è riprodurre i molteplici metodi di apprendimento del cervello umano, facendo in modo che la rete interagisca con l’ambiente esterno senza l’aiuto dell’utente. I neuroni ricevono in ingresso gli stimoli e li elaborano, l’elaborazione può essere anche molto complicata, ma in un caso semplice si può pensare che i singoli ingressi vengano moltiplicati per un opportuno valore detto ‘peso’. Il risultato delle moltiplicazioni viene sommato e nel caso in cui la somma superi una certa soglia il neurone si attiva ‘rendendo attiva’ la sua uscita. Il peso alto indica un ingresso molto importante, quello basso un elemento di lignaggio inferiore. Le connessioni che si vengono a stabilire fra i neuroni sono molteplici, ognuna dispone di un proprio peso e contribuisce al collegamento ingresso/uscita come si può osservare in fig.6.4.

90

Sopra è riportata una classica rete neurale pienamente connessa in cui i singoli neuroni vengono connessi ai neuroni successivi. Il primo strato corrisponde agli ingressi (I) dove le informazioni in entrata vengono adeguate alle esigenze dei neuroni. Il secondo strato nascosto (H, Hidden), è responsabile della vera e propria elaborazione e può essere composto da più colonne di neuroni. Il terzo strato è quello di uscita (O) che raccoglie i risultati e li adatta alle richieste del successivo blocco della rete neurale.

L’esempio della figura sopra riportata è molto semplice, infatti esistono reti neurali che coinvolgono migliaia di neuroni e decine di migliaia di connessioni. È possibile costruire reti neurali con più strati Hidden, però è dimostrato che pochi strati Hidden possono garantire lo stesso rendimento di un multi-Hidden nel momento in cui l’addestramento è stato fatto in modo opportuno.

Un punto di forza delle reti neurali è che sono in grado di trattare molti dati e di funzionare anche qualora alcune unità del sistema dovessero funzionare male. Industrialmente risultano efficaci quando si dispone di dati storici a partire dai quali estrarre dati e modelli senza effettuare prove e sperimentazioni.

Punti di debolezza sono l’efficienza condizionata dal fatto che le variabili predittive siano scelte con cura e la necessità di una fase di apprendimento piuttosto lunga, soprattutto quando il numero dei record e delle variabili analizzate è molto grande.

Applicazioni industriali:

In ambito produttivo le reti neurali trovano applicazione ove l’analisi statistica delle variabili risulti difficoltosa e dispendiosa in termini di tempo, ma soprattutto in quei campi dove le relazioni deterministiche esistenti tra le variabili non sono chiare. Tra questi troviamo la modellazione, la predizione, il controllo del processo produttivo, la classificazione e il riconoscimento di modelli, il clustering e l’ottimizzazione del ciclo di produzione.

Le reti neurali hanno applicazioni importanti anche nel settore del controllo di qualità delle produzioni industriali, con input rappresentato dal valore delle tolleranze massime accettabili sui prodotti realizzati. Nel momento in cui la rete neurale si trova di fronte alla realizzazione di un grande quantitativo di prodotti, basta far osservare al programma vari esempi di prodotti il cui standard qualitativo è già stato riconosciuto (sia in senso positivo che negativo). Conseguentemente la rete costruisce autonomamente un modello di tolleranze per poter giudicare quelle dei pezzi successivi e gestire scarti e rilavorazioni.

91

Fuzzy Logic (FL)

La fuzzy logic (o logica sfumata) è una tecnica di soft computing (come le reti neurali e gli algoritmi genetici) e rappresenta un’estensione della logica booleana in cui è possibile attribuire a ciascuna proposizione un grado di verità compreso tra 0 e 1. La differenza sostanziale fra la logica booleana e quella fuzzy è quindi che nella booleana il passaggio da uno stato all’altro é netto, in quella fuzzy avviene in modo meno brusco considerando le varie sfumature che esistono nel passaggio. La fuzzy logic permette di quantificare la vaghezza, una caratteristica può essere vera (=1) o falsa (=0), ma può anche assumere valori intermedi compresi nell’intervallo [0,1].

La nascita di questa logica può essere attribuita a Lotfi A.Zadeh, Professore all’Università di Berkeley che, cominciando a dubitare delle tecniche tradizionali, introdusse nel 1964 il concetto di insieme sfocato e funzione di grado di appartenenza, che mappa gli elementi di un universo in un intervallo reale continuo [0;1], e da cui derivò poi la ‘logica sfumata’.

La realizzazione di un sistema fuzzy passa attraverso tre fasi fondamentali [78]:

• Fuzzificazione. Trasformazione di un valore numerico (crisp) in un sistema fuzzy;

• Applicazione delle regole fuzzy. Vengono applicate svariate regole (rule base o

Knowledge Base). Vengono realizzati sottoinsiemi con metodi inferenziali. Per ottenere

un unico insieme output si applica il metodo dell’unione (usando l’operazione or), il metodo della somma (sommando gli insiemi output) o il metodo del massimo;

• Defuzzificazione del sistema fuzzy output individuato. Per ottenere il corrispettivo numerico si individua il valore maggiormente rappresentativo tramite il metodo COG (in cui il valore crisp equivale al centro di gravità o baricentro della figura solida delimitata dall’insieme fuzzy output) o il metodo MOM (crisp ottenuto dal valore medio dei valori corrispondenti ai massimi delle funzioni membership dell’insieme fuzzy output) o altre metodologie.

92

Applicazioni industriali

La prima applicazione industriale venne realizzata nel 1974 in Gran Bretagna con il primo sistema in grado di controllare un generatore di vapore basato su logica fuzzy. Attualmente sono molti i casi di utilizzo: dal sistema automatizzato per il controllo operativo dei treni nella metropolitana della città di Sendai, realizzato nel 1987 in Giappone (paese dove prima ha preso piede questa tecnica), ai prodotti d’uso comune come elettrodomestici e automobili, alla costruzione di modelli previsionali di economia, alla sismologia e alla diagnostica medica.

Rispetto ai sistemi esperti, quelli fuzzy dispongono di regole (anche contraddittorie) concatenate in parallelo a dispetto della successione in serie dei sistemi esperti, che permettono loro di gestire elementi di imprevedibilità (caratteristica non presente nei sistemi esperti), hanno inoltre bisogno di un numero di regole limitato e presentano un costo decisamente inferiore rispetto ai sistemi esperti. Per questo la fuzzy logic viene ampiamente utilizzata nel settore produttivo. In molti casi è integrata con un sistema di reti neurali, il che permette di ottenere un livello di risultato e un grado di affidabilità molto elevato. Le applicazione in particolare riguardano la fase di design concettuale, parametrico e di configurazione, la fase di pianificazione del processo, la schedulazione, l’analisi del processo produttivo, il monitoraggio, la diagnosi, il controllo del processo e la fase di ispezione.

Genetic Algorithms (GA)

Gli algoritmi genetici appartengono alla ‘computazione naturale’, dove i programmatori creano modelli in riferimento a fenomeni biologici ispirati al principio della selezione naturale di Charles Darwin e sono rappresentati da metodi euristici di ricerca e ottimizzazione. Sono spesso utilizzati, nei settori meccanici e robotici, assieme a sistemi fuzzy per produrre le soluzioni più adeguate. Si tratta di algoritmi adattivi con capacità di apprendimento che vengono utilizzati in particolare nella ricerca, nel machine learning e nei problemi di ottimizzazione

Nelle fig. 6.13 e 6.14 viene rappresentato il procedimento che segue un algoritmo genetico. Le variabili sono combinate e codificate in una serie di stringhe binarie per formare i ‘cromosomi’. Tramite il computer viene generata una popolazione casuale in continua evoluzione di questi cromosomi, che vengono classificati sulla base di una funzione fitness che aiuta nella risoluzione del problema. Le stringhe binarie sopracitate, denominate fittest, possono sopravvivere oppure riprodursi con altre stringhe mediante operazioni genetiche come il ‘crossover’ e la

93

‘mutazione’. È così disponibile un potente motore di ricerca in cui è necessario il bilanciamento tra sfruttamento ed esplorazione. Il risultato viene poi decodificato nel suo valore originario per rivelare la soluzione.

Fig.6.14 Modalità di lavoro di un algoritmo genetico [fonte Internet Web]

Applicazioni industriali

In ambito produttivo i GA possono avere molte applicazioni, al momento le più comuni sono nello scheduling, nell’allocazione delle risorse e in particolare nei problemi di scheduling nel Job- Shop.

94

Simulated Annealing

Gli algoritmi di Simulated Annealing (SA) derivano da un’analogia algoritmica con il processo di ricottura dei materiali, dove l’obiettivo è quello di portare il materiale ad uno stato di energia interna minima considerato ottimale in quanto i difetti reticolari della struttura metallica vengono minimizzati. Tale tecnica utilizza un parametro (temperatura) che viene diminuito in maniera iterativa fino a raggiungere valori prossimi allo zero. L’algoritmo genera punti casualmente in relazione ai quali viene individuata una funzione obiettivo che corrisponde alla migliore situazione (cioè quella di minima energia) . Al fine del miglioramento della condizione del sistema vengono scelte nuove posizioni nell’ambito di un range all’interno del quale è possibile comunque soddisfarne i vincoli. Durante il procedimento i parametri non vengono mai modificati contemporaneamente. Una tecnica consiste nel proiettare le variabili in un sottospazio di dimensione inferiore e nel modificare solamente i parametri scelti. Gli algoritmi Simulated Annealing sono in genere utilizzati per risolvere problemi con variabili discrete, l’ottimizzazione di variabili continue richiede un adattamento dell’algoritmo.

Hybrid Systems

Allo scopo di sfruttare i vantaggi delle diverse tecniche presentate vengono spesso combinati diversi approcci in sistemi ibridi. In particolare sono frequenti sistemi che vedono integrati Knowledge Based Systems, Reti neurali e logica fuzzy come i neural-fuzzy, neural- genetic e fuzzy-genetic. Altro esempio più noto di sistema ibrido è il data mining.

Nelle aziende manifatturiere è ormai diffusa la presenza di data warehouse basi di dati informazionali (da distinguere da quelli operazionali più specificatamente riferiti alle operazioni eseguite in azienda) che raccolgono in un unico “magazzino” tutti i dati di interesse per l’azienda e relativi alla sua attività di business, sintetizzandoli, integrandoli e strutturandoli in modo tale da rendere agevole ed efficace la ricerca di informazioni [79]. Il data mining consiste nell’insieme di strumenti e tecniche utilizzate per estrarre dai dati informazioni “nascoste” a causa della mancata conoscenza dell’utente dovuta al numero di informazioni disponibili troppo elevato oppure alla sua impossibilità culturale di elaborarli [79]. Il data mining è principalmente realizzato tramite algoritmi e riconoscimento di modelli (pattern recognition) che dopo essere stati individuati, possono essere a loro volta utilizzati come punto di partenza per ipotizzare nuove relazioni di tipo causale tra fenomeni. Le tecniche di data mining sono molteplici [80]: statistica; tecniche di IA

95

quali reti neurali e algoritmi genetici; modelli di qualità grafici; clustering; alberi di decisioni, analisi delle associazioni, etc.