Ottimizzazione ELABORAZIONE DI SEGNALI E IMMAGINI MEDIANTE TECNICHE DI CALCOLO EVOLUTIVO. Ottimizzazione e Apprendimento Automatico



Documenti analoghi
ELABORAZIONE DI SEGNALI E IMMAGINI MEDIANTE TECNICHE DI CALCOLO EVOLUTIVO. Stefano Cagnoni

Page 1. Evoluzione. Intelligenza Artificiale. Algoritmi Genetici. Evoluzione. Evoluzione: nomenclatura. Corrispondenze natura-calcolo

Computazione Naturale AA

FONDAMENTI di INFORMATICA L. Mezzalira

Studio e implementazione di un OCR per auto-tele-lettura dei contatori di gas e acqua

Implementazione parallela di algoritmi genetici per la stima di HMM

Stimare il WCET Metodo classico e applicazione di un algoritmo genetico

Logica e codifica binaria dell informazione

INFORMATICA 1 L. Mezzalira

Tecniche di riconoscimento statistico

Regressione non lineare con un modello neurale feedforward

Testi di Esercizi e Quesiti 1

Dispensa di database Access

Breve introduzione al Calcolo Evoluzionistico

Ottimizzazione Multi Obiettivo

ISTITUTO TECNICO ECONOMICO MOSSOTTI

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile

Introduzione agli Algoritmi Genetici Prof. Beatrice Lazzerini

Esercitazione Informatica I AA Nicola Paoletti

3 CENNI DI TEORIA DELLA COMPLESSITA COMPUTAZIONALE. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

Una metodologia di progettazione di applicazioni web centrate sui dati

Riproduzione Crossover Mutazione

Linguaggio del calcolatore. Algebra di Boole AND, OR, NOT. Notazione. And e or. Circuiti e reti combinatorie. Appendice A + dispense

Esempi ed esercizi Aritmetica degli elaboratori e algebra di commutazione

Liceo Tecnologico. Indirizzo Informatico e Comunicazione. Indicazioni nazionali per Piani di Studi Personalizzati

Machine Learning -1. Seminari di Sistemi Informatici. F.Sciarrone-Università Roma Tre

Tecniche di riconoscimento statistico

Introduzione agli Algoritmi Genetici Prof. Beatrice Lazzerini

Come ragiona il computer. Problemi e algoritmi

Parte I. Prima Parte

EVOLUZIONE DEI LINGUAGGI DI ALTO LIVELLO

Esercitazioni su rappresentazione dei numeri e aritmetica dei calcolatori"

Un circuito integrato è una piastrina di silicio (o chip), quadrata o rettangolare, sulla cui superficie vengono realizzati e collegati

Lezione 8. La macchina universale

Cap. 3 Reti combinatorie: analisi e sintesi operatori logici e porte logiche

Ricerca Operativa A.A. 2007/2008

Pro e contro delle RNA

Aprire WEKA Explorer Caricare il file circletrain.arff Selezionare random split al 66% come modalità di test Selezionare J48 come classificatore e

RICONOSCIMENTO DI TARGHE AUTOMOBILISTICHE

Immagini binarie. Binarizzazione di immagini a livelli di grigio

API e socket per lo sviluppo di applicazioni Web Based

Informatica. Rappresentazione dei numeri Numerazione binaria

Calcolatori Elettronici A a.a. 2008/2009

LEZIONE 3. Ing. Andrea Ghedi AA 2009/2010. Ing. Andrea Ghedi AA 2009/2010

Complessità Computazionale

Programmazione dinamica

Descrizione di un algoritmo

Suggerimenti per l approccio all analisi dei dati multivariati

Calcolatori: Algebra Booleana e Reti Logiche

La Metodologia adottata nel Corso

11. Evoluzione del Software

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA

Riconoscimento e Recupero dell'informazione per Bioinformatica

Architettura (10/9/2003) Pag. 1/6. Cognome e Nome (in stampatello):

Tecniche di Simulazione: Introduzione. N. Del Buono:

Sistemi Operativi. 5 Gestione della memoria

Tipi classici di memoria. Obiettivo. Principi di localita. Gerarchia di memoria. Fornire illimitata memoria veloce. Static RAM. Problemi: Dynamic RAM

La riforma del servizio di distribuzione del

LA PROPRIETA INTELLETTUALE

IL COMPONENTE DATA MINING MODEL DEL PROGETTO

MACHINE LEARNING e DATA MINING Introduzione. a.a.2015/16 Jessica Rosati jessica.rosati@poliba.it

Automazione Industriale (scheduling+mms) scheduling+mms.

Grafica ed interfacce per la comunicazione Scienze della Comunicazione

Dall Algoritmo al Programma. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Modulo 1. Concetti di base della Tecnologia dell Informazione ( Parte 1.1)

Distributed P2P Data Mining. Autore: Elia Gaglio (matricola n ) Corso di Sistemi Distribuiti Prof.ssa Simonetta Balsamo

Lezione 1. Introduzione e Modellazione Concettuale

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)

Progettazione di Basi di Dati

Corso di Linguaggi di Programmazione

Prof. Giuseppe Chiumeo. Avete già studiato che qualsiasi algoritmo appropriato può essere scritto utilizzando soltanto tre strutture di base:

Corso di Informatica

PIANO DI LAVORO DEI DOCENTI

L ICF - Classificazione Internazionale del Funzionamento, della Disabilità e della Salute

Corso di Matematica per la Chimica

Librerie digitali. Video. Gestione di video. Caratteristiche dei video. Video. Metadati associati ai video. Metadati associati ai video

Tipi di dato-prima parte

Introduzione al corso

Il ragionamento diagnostico TEST DIAGNOSTICO. Dott.ssa Marta Di Nicola. L accertamento della condizione patologica viene eseguito TEST DIAGNOSTICO

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.6. Unità di controllo microprogrammata

Realizzazione di un Tool per l iniezione automatica di difetti all interno di codice Javascript

DAL DIAGRAMMA AL CODICE

Automazione Industriale 4- Ingegneria del Software

TRAGUARDI PER LO SVILUPPO DELLE COMPETENZE AL TERMINE DELLA SCUOLA PRIMARIA

Sistemi elettronici per la sicurezza dei veicoli: presente e futuro. Il ruolo della norma ISO per la Sicurezza Funzionale

Cos è un Calcolatore?

Scopo della lezione. Informatica. Informatica - def. 1. Informatica

Modelli per variabili dipendenti qualitative

12. Evoluzione del Software

Rappresentazione dei numeri in un calcolatore

Ottimizzazione delle interrogazioni (parte I)

Richiesta pagina PHP (es: index.php)

ARCHITETTURE DI SISTEMI INTEGRATI PER APPLICAZIONI SPECIFICHE. Design Flow

Algoritmi di scheduling

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

LINGUAGGI DI PROGRAMMAZIONE

Tutti i contenuti sono di proprietà letteraria riservata di Roberta Cocco e protetti dal diritto d autore. Si ricorda che il materiale didattico è

Introduzione all analisi dei segnali digitali.

Introduzione al MATLAB c Parte 2

Correttezza. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 10. A. Miola Novembre 2007

Transcript:

Ottimizzazione ELABORAZIONE DI SEGNALI E IMMAGINI MEDIANTE TECNICHE DI CALCOLO EVOLUTIVO Stefano Cagnoni L approccio a problemi pratici per i quali non esistono (o sono solo parzialmente note) soluzioni dirette può essere riformulato in termini di ottimizzazione di una funzione obiettivo che rappresenta il costo o la qualità della soluzione. La soluzione, in questi casi, può essere definita in modo generale, con molti parametri. totalmente sconosciuta Spesso è l unica metodologia di progetto possibile! Ottimizzazione e Apprendimento Automatico Tipicamente la funzione da ottimizzare: rappresenta le specifiche di un problema da risolvere viene ottimizzata attraverso procedure automatiche sulla base delle prestazioni ottenute su un certo numero di esempi rappresentativi del problema, o comunque emulando un comportamento desiderato Si realizza quindi un processo di apprendimento induttivo Problema Soluzione incognita Funz. costo f(p 1 p n ) Esempi Metodo di ottimizzazione Soluzione Il problema della progettazione si sposta dalla definizione di una soluzione esatta e giustificata da una teoria alla Un diverso approccio alla progettazione ricerca di una soluzione che funziona bene, attraverso: definizione di un criterio per valutare la bontà (costo) della soluzione cercata scelta del metodo da utilizzare per massimizzarlo (minimizzarlo). 1

Quando ricorrere all ottimizzazione? Ottimizzazione e calcolo evolutivo assenza di soluzioni dirette specifiche del problema esprimibili solamente in modo qualitativo. comportamenti o fenomeni descrivibili o misurabili in modo impreciso (es. segnali affetti da rumore) scarsa conoscenza a priori sul problema da affrontare necessità di integrare moduli per i quali singolarmente valgono le precedenti condizioni Il calcolo evolutivo comprende metodi utili nei casi in cui: la soluzione è del tutto sconosciuta - l algoritmo evolutivo definisce forma e parametri della soluzione (ad es. Programmazione Genetica) la soluzione è definita a priori in forma parametrica - l algoritmo evolutivo ottimizza la funzione qualità (costo) agendo sui valori dei parametri che definiscono il comportamento della soluzione (ad es. Algoritmi Genetici, Strategie Evolutive, ecc.) Application frameworks Optimization of parameters of specific objective (fitness) functions related with a well-defined task. Optimization of parameters of specific objective (fitness) functions for a whole system. Optimization of qualitative performances based on comparisons between solutions (tournaments). Generation of solutions from scratch. Applications to signal and image processing and pattern recognition Optimization of filter/detector AND algorithm parameters for event detection and image segmentation. Qualitative optimization of image processing algorithms. Design of implicitly parallel binary classifiers and image operators.

Applications Optimization of a QRS detector of ECG signals. Optimization of the 3D segmentation of tomographic images based on an elastic contour model. GP optimization of color palettes for color processing of MR images. Low-level image processing and low-resolution character recognition. OTTIMIZZAZIONE DI FILTRI Typical problems: event detection image segmentation Basic structure of a detection / segmentation algorithm Filter => signal (contrast) enhancement Detector => event (feature) detection SIGNAL PROCESSING Signal Enhancement and Event Detection Linear filter: DESIGN OF QRS DETECTORS THROUGH PARAMETER OPTIMIZATION Given: Filter/detector layout Training set Fitness function Optimize: Filter coefficients Detector threshold Other parameters regulating the adaptive behaviour of the detector 3

FILTER LAYOUT ALTRI PARAMETRI DELLA SOLUZIONE Linear: Linear with selected samples: Quadratic with selected samples: EXPERIMENTAL SETUP TRAINING SET 10 10-second tracts of the ECG from each of the 48 30-minute records of the MIT-BIH Arrhythmia Database (5981 beats out of about 110,000). FITNESS FUNCTION f = f max - (FP + FN ), f max such that f>0 RESULTS 99.5% average sensitivity (100% on most normal recordings) Much faster detection with respect to published algorithms yielding comparable results FP = False Positives, FN = False Negatives 4

IMAGE SEGMENTATION Region based RATIONALE Pre-defined routines seldom work, so: Contour based GA optimisation of a specific edge detector, via interactive specification of a few training contours, followed by extraction of the contours of the structure of interest from the whole data set The problem can be reduced to 1D contour detection. CONTOUR EXTRACTION c 0, c k c k,l FILTER = filter coefficients of 0th, 1st, and nd order terms. d k = offsets along the scan line 5

DETECTOR possible detection schemes: Thresholding of filter output O(x i ) = 0 if o(x i )>T 1 otherwise where T = threshold Detection of the threshold-crossings of the filter output where Z= threshold O (x i ) = 1 if (o(x i ) - Z) ( o(xi-1) Z ) < 0 0 otherwise T and Z are also optimised by the GA SEGMENTATION Definition of a starting contour Iterate: Application of the GA-designed filter to the next contour Elastic contour model-based interpolation (also optimised by the GA) of the edge points extracted by the filter RESULTS TRAINING SET One slice following the one which is used to seed the iterative segmentation process FITNESS FUNCTION d yk = distance, along scan line L h, between the actual edge point and the one detected, K = constant 6

Evoluzione interattiva di tavole di lookup Scopo: date due immagini I 1 (x,y) e I (x,y), ottenere, evolvendola tramite GP, una immagine a colori I C (x,y) = F (I 1 (x,y), I (x,y) ) interessante dal punto di vista di una specifica applicazione. Fitness implicitamente definita dall utente che è l arbitro del torneo (di dimensione ) utilizzato nella fase di selezione. Dim. popolazione: 15 N. generazioni : 10-15 Perc. Crossover: 0.7 No Mutazione: Risultati di 3 diversi esperimenti Sub-machine code Genetic Programming Sub-machine code Genetic Programming Variante di GP: si evolvono programmi che usano operatori logici bit a bit che operano su una codifica impacchettata di più dati binari. Programmi eseguibili su calcolatori sequenziali: realizzano implicitamente un paradigma SIMD (Single Instruction Multiple Data) Realizzazione software delle estensioni multimediali degli attuali processori (es. MMX, 3DNow). Tipicamente si usano variabili di tipo unsigned long (a 3 o 64 bit a seconda del compilatore o delle architetture su cui si lavora) per contenere la codifica della stringa di bit di input. La stringa può contenere la codifica di campioni consecutivi di una sequenza temporale, oppure una riga o una finestra di un immagine, ecc. Con una singola operazione binaria bit a bit si opera su un intero blocco di dati. 7

Sub-machine code Genetic Programming Vantaggi operare in parallelo su più dati e quindi rendere più efficiente la valutazione della funzione di fitness, valutare, con una singola sequenza di operazioni, la fitness su più casi contemporaneamente. Limiti Non è possibile applicare operazioni diverse (o pesi diversi) a dati appartenenti ad uno stesso blocco: il long int è visto come un array di dati indipendenti su cui viene applicata la stessa operazione. Aims of the application To test SmcGP effectiveness on a real-world problem (car license plate recognition) To compare results achieved by the SmcGP-evolved programs with the corresponding algorithms used in the APACHE license-plate recognition system Experimental test bed (APACHE plate-recognition system) Pre-processing Main task: car licenseplate recognition Data: 130 images of running cars Low-level tasks: plate extraction and character recognition Input image Grey-level image H.gradient image The horizontal-gradient image is then thresholded to obtain a binary image showing only the strongest edges. 8

Plate Extraction Character recognition Characters are extracted from the plate and an LVQ neural net is used to recognize them The plate region is the region where the horizontal edge density is highest Riconoscimento di caratteri Criteri di qualità per un classificatore binario Riconoscimento di cifre rappresentate da pattern binari bidimensionali: 10 classificatori binari che hanno in ingresso il pattern bidimensionale e in uscita: 1 se il pattern appartiene alla classe corrispondente al classificatore 0 se il pattern appartiene ad un altra classe Veri Positivi: output 1, risposta corretta 1 Veri Negativi: output 0, risposta corretta 0 Falsi Positivi: output 1, risposta corretta 0 Falsi Negativi: output 0, risposta corretta 1 Sensibilità: VP/(VP+FN) * 100 percentuale dei casi con output=1 in presenza del target Specificità: VN/(VN+FP) * 100 percentuale dei casi con output=0 in assenza del target Predittività positiva: VP/(VP+FP) * 100 percentuale dei casi in cui il target è presente in corrispondenza di output =1 9

Classificazione con classificatori indipendenti Vantaggi Ogni classificatore è specializzato e quindi ha prestazioni generalmente molto elevate. realizzazione particolarmente compatta, non richiede di tenere conto, in un unica funzione, delle caratteristiche di più classi. Svantaggi Casi limite (indecidibili): - tutti i classificatori rispondono 0 - più di un classificatore risponde 1. E necessario un meccanismo di disambiguazione. Codifica degli ingressi Pattern di ingresso: caratteri binari di dimensione 13x8 104 bit possono essere rappresentati su 4 (3x4=18) unsigned long. 7 bit del pattern sono impacchettati nei 4 bit meno significativi dei primi 3 long I restanti 3 sono impacchettati nel quarto long. Operatori utilizzati Operatori binari bitwise: AND OR NOT XOR Shift circolari : SHR, SHR, SHR4, SHL, SHL, SHL4 Funzione di fitness funzioni di fitness sperimentate FIT1 = numero di classificazioni corrette (VP + VN) FIT = sqrt ( Sensibilità + Specificità ) NB Se il training set è caratterizzato da una distribuzione uniforme degli esempi nelle 10 classi, allora i casi negativi per ogni classificatore sono 9 volte maggiori dei positivi. Costanti effimere (ERC) unsigned long su 3 bit => FIT1 privilegia la specificità FIT mantiene equilibrio fra le due proprietà 10

Parametri evoluzione Dati a disposizione Popolazione : 1000 Perc. Sopravvivenza : 17 % Perc. Crossover : 80% Perc. Mutazione : 3% Selezione tramite torneo con dimensione del torneo = 7 Database Soc. Autostrade circa 11000 caratteri 13x8 estratti da targhe reali binarizzati con soglia = 0.5 (0 = nero; 1 = bianco) 604 per il training set 5010 per il test set Da 300 a 000 iterazioni Singolo classificatore Metodo di classificazione Ingresso : unsigned long pattern[4] Uscita : unsigned long out Si considera come uscita del classificatore binario il bit di out che massimizza la fitness sul training set. Classificazione: si applicano i 10 classificatori e si guardano le risposte. Se la risposta è ambigua si applica un classificatore di emergenza (il classificatore LVQ attualmente in uso nel sistema APACHE). In caso di risposta nulla unica possibilità, in caso di più classi riconosciute è possibile specializzare altri classificatori nello spareggio fra classi. Scelta della fitness Con la strategia utilizzata, è stata scelta FIT1. Specificità molto elevata => quando il classificatore risponde 1, sbaglia molto raramente. I casi in cui non ci sono risposte sono meno del 5% I casi ambigui meno dell 1 % Circa il 95% dei caratteri può essere classificato direttamente (accuratezza train 99.98%, test 98.7%). Il restante 5% viene classificato tramite il classificatore LVQ. 11

Training set Risultati 99.65% di classificazioni corrette (99.98% sul 99% dei casi classificato direttamente) Test Set 97.43% di classificazioni corrette (98.7% sul 95.3% dei casi classificato direttamente) Circa 0.5 microsecondi per classificatore (.5 microsecondi per pattern) su un Pentium III 600MHz compilando i programmi genetici risultanti. Implementazione: notazione prefissa (AND (AND (NOT (SHR (OR PAT3 PAT))) (SHL4 (SHL4 (NOR (SHR PAT) (AND PAT3 (SHL4 (SHL4 (NOR (SHL (SHL4 PAT3)) (NOR (SHR4 (SHL PAT1)) PAT1)))))) (OR (OR (SHR PAT3) (AND (NOR PAT (AND (SHR PAT) (SHL PAT3)) (SHR (SHR4 (NOT (SHR PAT3)))))) (SHR (SHR4 PAT3))))))) Notazione infissa e listato C ( ( ( NOT ( SHR ( ( PAT3 ) OR ( PAT ) ) ) ) AND ( SHL4 ( SHL4 ( NOT ( ( SHR ( PAT ) ) OR (( PAT3 ) AND ( NOT ( ( SHR4 ( SHL ( PAT1 ) ) ) OR ( PAT1 ) ) ) ) ) ) ) ) ) AND ( SHL4 ( SHL4 ( NOT ( (SHL ( SHL4 ( PAT3 ) ) ) OR ( ( ( SHR ( PAT3 ) ) OR ( ( NOT ( ( PAT ) OR ( SHL ( PAT3 ) ) ) ) AND ( SHR ( SHR4 ( NOT ( SHR ( PAT3 ) ) ) ) ) ) ) OR ( ( SHR ( PAT ) ) AND ( SHR ( SHR4 ( PAT3 ) ) ) ) ) ) ) ) ) ) unsigned long class0 (unsigned long p1, unsigned long p, unsigned long p3, unsigned long p4) { return ( ( ( ~ ( SHR ( ( p3 ) ( p ) ) ) ) & ( SHL4 ( SHL4 ( ~ ( ( SHR ( p ) ) ( ( p3 ) & ( ~ ( ( SHR4 ( SHL ( p1 ) ) ) ( p1 ) ) ) ) ) ) ) ) ) & ( SHL4 ( SHL4 ( ~ ( ( SHL ( SHL4 ( p3 ) ) ) ( ( ( SHR ( p3 ) ) ( ( ~ ( ( p ) ( SHL ( p3 ) ) ) ) & ( SHR ( SHR4 ( ~ ( SHR ( p3 ) ) ) ) ) ) ) ( ( SHR ( p ) ) & ( SHR ( SHR4 ( p3 ) ) ) ) ) ) ) ) ) ); } SmcGP-based plate extraction Input data: 4 unsigned long words encoding a window, of size 3x4 pixels, from the binarized gradient image Desired SmcGP-evolved binary classifier output: 1 if the window belongs to the plate 0 otherwise 1

Training set Parametri dell evoluzione 80/130 images Input data: gradient image 100 samples/image: 60 from the plate area, 30 from around the plate, 10 from anywhere else in the image 366 negative + 484 positive = 5190 training samples Empty samples (that can be found both inside and outside the plate) have been purged. Popolazione = 1000 individui Selezione tramite torneo di dimensione 7 80% crossover 17% sopravvivenza 3% mutazione Fitness F' = ( nneg FP) ( n + nneg Pos FN ) n Pos = F'' = Dim _ Programma /10000000 F = F' + F'' Specificità + Sensibilità Results (training set) Typical results Performance of the best program: Specificity = 33/366 (88.5%) Sensitivity = 4045/484 (83.85%) Program size : 1087 Fitness: 0.1496 The same algorithm that APACHE directly applies to the gradient image can be applied to this image to improve plate localization 13

Results When several edges are present outside the plate, the basic algorithm may fail. Filling the gaps in the plate increases robustness The evolved algorithm produces a 10-fold increase in the density of detected pixels within the plate. Sample cases (comparison with APACHE) Both algorithms detect the plate correctly GRADIENT (%) GENETIC (%) PLATE PIXELS AVERAGE 367 (6.48%) 3513 (6.05%) 5661 The increase in the number of false detections is limited and mostly harmless. GRADIENT (%) GENETIC (%) BACKGROUND PIXELS AVERAGE 470 (0.1%) 8157 (.00%) 407758 Sample cases (comparison with APACHE) Apache fails, the genetic program detects the plate Quasi-ideal results Other results 14

Other results The plate is detected, despite a lot of noise Other results No edges are detected in the plate region: failure Sommario dei risultati Conclusioni Riconoscimento di caratteri: Prestazioni analoghe ad un classificatore LVQ con una riduzione del carico computazionale di circa 10 volte Individuazione della targa: Miglioramento in termini di accuratezza con limitato decremento dell efficienza computazionale L efficienza computazionale dei classificatori evoluti con SmcGP limita l overhead introdotto dal modulo aggiuntivo Nei molti casi in cui un problema di elaborazione/analisi di segnali/immagini è riconducibile ad un problema di ottimizzazione, gli algoritmi evolutivi forniscono strumenti potenti ed efficaci per la ricerca di buone soluzioni ai problemi da risolvere. PROVARE PER CREDERE!!! 15

BIBLIOGRAFIA Poli R., Cagnoni S., Valli G., ``Genetic design of optimum linear and non-linear QRS detectors'', IEEE Trans. on Biomedical Engineering, 4(11):1137-41,1995. Poli R., Cagnoni S. ``Genetic programming with user-driven selection: experiments on the evolution of algorithms for image enhancement'', in Koza J.R., Deb K., Dorigo M., Fogel D.B., Garzon M., Iba H., and Riolo R.L. (editors), Genetic Programming 1997: Proceedings of the Second Annual Conference, July 13-16, 1997, Stanford University. San Francisco, CA: Morgan Kaufmann, pp. 69-77, 1997. Cagnoni S., Dobrzeniecki A.B., Poli R., Yanch J.C. ``Genetic-algorithm-based interactive segmentation of 3D medical images'', Image and Vision Computing Journal, 17(1):881-896, 1999. Cagnoni S., Bergenti F., Mordonini M., Adorni G., "Evolving binary classifiers through parallel computation of multiple fitness cases". IEEE Transactions on Systems, Man and Cybernetics Part B-Cybernetics, 35(3):548-555, 005. 16