• Non ci sono risultati.

IMPIEGO DI ALGORITMI GENETICI PER LA SINTESI DI SUPERFICI SELETTIVE IN

N/A
N/A
Protected

Academic year: 2021

Condividi "IMPIEGO DI ALGORITMI GENETICI PER LA SINTESI DI SUPERFICI SELETTIVE IN "

Copied!
22
0
0

Testo completo

(1)

Capitolo 2

IMPIEGO DI ALGORITMI GENETICI PER LA SINTESI DI SUPERFICI SELETTIVE IN

FREQUENZA

2.1 ALGORITMI EVOLUZIONARI

La maggior parte dei metodi di predizione numerica dei campi elettromagnetici si basa su tecniche e problemi di analisi; proprio per questo il problema che ci si trova ad affrontare è del seguente tipo: assegnata una configurazione geometrica (antenna o dispositivo similare), occorre determinare la configurazione di campo che esso produce.

Nella realtà, però, spesso è necessario affrontare un altro tipo di problema, esattamente speculare al precedente, un problema di sintesi: trovare la configurazione geometrica del dispositivo o dell’antenna che permette di realizzare la particolare configurazione di campo elettromagnetico. Anche l’oggetto di questo lavoro di tesi ricade nel secondo tipo di problematica, visto che si desidera sintetizzare nonché ottimizzare delle superfici selettive in frequenza.

49

(2)

Ragionando in termini di diagramma a blocchi, possiamo allora schematizzare il nostro problema come mostrato in figura 2.1.

PARAMETRI SOLVER

(?)

SOLUZIONE (Antenna, filtro …)

Fig. 2.1 – Schematizzazione di un problema di sintesi

La nostra incognita è dunque quel solver (inteso nel senso letterale del termine, ovvero come oggetto che ci permetta di ottenere una soluzione al problema affrontato) che, data la particolare configurazione iniziale (parametri), ci consenta di ottenere la soluzione desiderata.

Il matematico John Holland ha proposto [7], negli anni ‘80, un algoritmo, detto genetico in quanto basato sulla teoria evoluzionistica di Darwin, che permette di trovare il solver-incognita. Il concetto darwiniano di evoluzione prevede che, considerati due genitori di una qualunque specie aventi caratteristiche genetiche

“buone” (forti o dominanti), la probabilità che anche i figli mantengano tali caratteristiche è maggiore di quella che si avrebbe se i genitori non avessero simili qualità. Holland ha cercato di trasferire tale principio ai numeri: generata inizialmente una serie casuale di numeri (generalmente binari), si può pilotare in maniera opportuna

”l’accoppiamento” di tali numeri al fine di ottenere una soluzione ottima. Come vedremo fra breve, il problema diventa quindi quello di trovare una funzione, cosiddetta di fitness, che mostri l’indice di bontà di un numero ottenuto per generazione casuale prima e per accoppiamento di numeri con caratteristiche genetiche forti poi.

50

(3)

Il solver non è altro, quindi, che la funzione di fitness la quale, nella pratica, fornisce lo scostamento tra il valore ideale (quello da raggiungere, noto) e quello ottenuto dai numeri casuali creati ed evolutisi.

Come già affermato, gli Algoritmi Genetici (GA – Genetic Algorithm) sono dei metodi stocastici di ricerca volti all’ottimizzazione di apparati e strutture. In particolare, a noi interessano problemi di ottimizzazione elettromagnetica che richiedono spesso un gran numero di parametri discreti e/o continui e che di solito consistono nella ricerca di un massimo o minimo globale della funzione caratteristica del problema.

Generalmente i GA sono classificati come “ottimizzatori globali”: la fondamentale caratteristica che li distingue da quelli locali è che essi forniscono un massimo assoluto della funzione-soluzione del problema. Le tecniche locali producono invece risultati fortemente dipendenti dalle condizioni iniziali e al contorno e sono molto legate alla natura del dominio di soluzioni in termini di continuità e differenziabilità, tanto che spesso non sono applicabili nella pratica.

Le tecniche globali, invece, non solo sono indipendenti dalla natura dello spazio di soluzione, ma funzionano meglio quando questo contiene delle discontinuità ed ha molti massimi locali o parametri vincolanti. Un’altra caratteristica peculiare dei GA è che essi non operano direttamente la sintesi e l’ottimizzazione delle incognite del problema, ma, più spesso, agiscono su una loro rappresentazione parametrica nota come cromosoma. Inoltre, i GA ottimizzano l’intera popolazione in un unico processo

(parallelismo intrinseco) e non compiono l’ottimizzazione di parametri presi singolarmente [8].

51

(4)

Tuttavia, è necessario evidenziare che le tecniche globali non sono particolarmente veloci nella convergenza al punto di massimo/minimo assoluto (anche se, in campo elettromagnetico, è importante giungere ad una soluzione molto vicina a quella ottima piuttosto che ottenerne una subottima in tempi rapidi).

Occorre poi notare come in ogni processo di ottimizzazione sia necessario implementare due operatori fondamentali: un tool di analisi e l’algoritmo di ricerca vero e proprio; essi interagiscono di continuo e, per ogni set di parametri proposto dal GA, il solver elettromagnetico risolve l’equazione che governa il sistema, determinando le prestazioni dei parametri generati.

Cercheremo allora di mostrare in questo capitolo come sia possibile implementare un Algoritmo Genetico e come esso sia strettamente legato all’oggetto di questo lavoro, ossia alla progettazioni di superfici selettive in frequenza.

2.2 FUNZIONAMENTO DELL’ALGORITMO GENETICO

Ogni Algoritmo Genetico deve poter disporre di un set di dati iniziali che caratterizzano la struttura da ottimizzare: ogni possibile combinazione di dati costituisce un individuo; ogni individuo viene generalmente rappresentato da un cromosoma che è a sua volta costituito dall’insieme dei geni detto genotipo. Ogni gene rappresenta un parametro (dato) della struttura da ottimizzare, quindi un argomento della funzione, in genere multidimensionale, che caratterizza il sistema. I valori assunti dai geni sono spesso rappresentati tramite codice binario.

52

(5)

Durante l’ottimizzazione viene scelto un insieme di soluzioni, cioè di individui, e quindi fatto evolvere verso una soluzione ottimale, sotto l’azione di pressione selettiva operata da una funzione oggetto (la funzione di fitness definita in precedenza), il cui scopo è quello di quantificare il grado di bontà della singola soluzione.

In natura ogni individuo ha sue caratteristiche e proprietà specifiche, manifestate esternamente, che ne costituiscono il cosiddetto fenotipo; è proprio il fenotipo a dettare le possibilità e i limiti delle interazioni dell’individuo con l’ambiente in cui vive. Ma così come il fenotipo è determinato sostanzialmente dall’invisibile patrimonio genetico (genotipo), costituito da una particolare sequenza di geni, allo stesso modo ogni caratteristica di una possibile soluzione viene codificata in una stringa e mappata, quindi, nel dominio di decisione della variabile.

L’insieme di tutti i geni caratterizzerà un cromosoma che codifica una soluzione; l’insieme dei cromosomi, a loro volta riuniti in una popolazione, mapperà il dominio delle soluzioni possibili.

Ricapitolando, una prima nomenclatura essenziale riguardante i GA è la seguente:

Si dirà “popolazione” un set di individui.

Si diranno “genitori” i membri della popolazione corrente.

Si diranno “figli” i membri della generazione successiva.

Si dirà “cromosoma” la forma di codifica del vettore delle soluzioni possibili costituito dai geni.

53

(6)

Si dirà “fitness” quel numero positivo, associato a ogni individuo, che ne misura la bontà rispetto alla funzione oggetto.

Si dirà “oggetto” la misura di come vengono “elaborati” gli individui.

Per capire come lavora un GA facciamo riferimento al seguente diagramma a blocchi:

ST S TA AR RT T

CACGEGASENSUNEUAERALRALEAZE ZI DDEIOONELLLNELAE A

P

POOPPOOLLAAZZIIOONNEE IINNIIZZIIAALLEE

CACALLCCOOLLOO DDEELLLLAA FFIITTNNEESSSS PPEERR OOGGNNII

I

INNDDIIVVIIDDUUOO

RIRIPPRROODDUUZZIIOONNEE

((CCRROOSSSS--OOVVEERR)) SSEELLEEZZIIOONNEE DDEEII M

MIIGGLLIIOORRII I

INNDDIIVVIIDDUUII MUMUTTAAZZIIOONNEE

NONO

CACALLCCOOLLOO F

FIITTNNEESSSS NUNUOOVVII ININDDIIVVIIDDUUII

SSOOSSTTIITTUUZZIIOONNEE D

DEEGGLLII IINNDDIIVVIIDDUUII P

PEEGGGGIIOORRII

CCRRIITTEERRIIOO DDII TETERRMMIINNAAZZIIOONNEE

V

VEERRFFIICCAATTOO??

EN E ND D

SISI

Fig. 2.2 – Funzionamento schematico di un GA

Come si può notare, il GA si sviluppa in più fasi: una prima fase di inizializzazione, una successiva di riproduzione e una finale di generazione di repliche.

La prima consiste nel creare una popolazione iniziale (set di soluzioni) mediante un numero predeterminato di cromosomi (stringhe di parametri codificati,

54

(7)

scelti a caso). Ad ogni individuo (rappresentato da un cromosoma) che appartiene alla popolazione corrente viene poi associato un valore di fitness valutato in base alla funzione oggetto.

La riproduzione consente di produrre una nuova generazione: due individui della generazione corrente vengono selezionati come genitori; quindi subiscono l’operazione di cross-over (ovvero scambio di geni) e mutazione per produrre figli della nuova generazione; tali operazioni vengono ripetute finché ci sono elementi sufficienti per sostituire la generazione corrente con la nuova. Il GA è detto generazionale se la nuova popolazione ha lo stesso numero di elementi della precedente, altrimenti è detto stady-state; è possibile che elementi della vecchia generazione si sovrappongano e coesistano con quelli della nuova.

La terza fase consiste nella sostituzione, intera o parziale, della vecchia generazione con la nuova e con il calcolo dei nuovi valori di fitness che sono successivamente assegnati ai nuovi individui appena creati.

Se viene raggiunto il criterio di terminazione, l’algoritmo ha fine, altrimenti itera sui nuovi cromosomi creati.

Concentriamoci allora su come avviene la generazione della popolazione iniziale e su come si svolge il processo evolutivo, ovvero su quali sono le operazioni che il GA compie nel passaggio da una generazione ad una successiva.

2.2.1 Generazione della popolazione stocastica iniziale

Il programma crea la popolazione iniziale sfruttando un generatore di numeri casuali. A tal proposito la subroutine “crea” inserisce, in una matrice di dimensioni

55

(8)

prefissate da input, dei valori binari, a seconda del valore assunto da una variabile casuale uniformemente distribuita tra 0 e 100 che viene fornita dal generatore. Se questa variabile è maggiore di 50, verrà posto un 1 nella mappa, diversamente uno 0, ripetendo il procedimento per ogni elemento della matrice.

I vettori costituenti le colonne della matrice rappresenteranno le codifiche binarie dei cromosomi, la cui struttura verrà descritta in dettaglio nel paragrafo 2.4.

Il programma consente inoltre di sfruttare come popolazione iniziale un seme, ovvero una mappa cromosomica precedentemente salvata su file, allo scopo di

continuare il processo evolutivo di una soluzione precedentemente determinata e particolarmente promettente.

2.2.2 Decodifica del codice binario

Ciascun cromosoma rappresenta la codifica binaria dell’informazione genetica. Il corrispondente valore in base 10 può essere ricavato con una qualsiasi regola di conversione tra base binaria e base decimale.

Come si vedrà nel paragrafo 2.4, ciascun cromosoma è suddiviso in campi (cioè in geni), ognuno dei quali rappresenta una variabile della struttura da sintetizzare.

Il valore numerico assunto dai geni viene detto allele.

La funzione “extract” avrà quindi come parametri di ingresso l’indice del cromosoma su cui operare n_crom, la lunghezza del campo da decodificare l_campo, le posizioni del primo (m) e dell’ultimo (n) bit del campo e, ovviamente, la mappa cromosomica (map). La funzione estrattrice utilizzata è la seguente:

56

(9)

( _ 1)

1 , _

1

( _ , _ , , , )

2 1

2 2

2 1

l campo m

n

j n crom m n

j n

extract n crom l campo m n map map

= +

j

=

= − ⋅

− ∑ (2.1)

2.2.3 Operatore “Selezione”

Il processo di sostituzione della popolazione viene guidato da alcune strategie di selezione che usano i valori della fitness, ovvero della misura della “bontà”

di un individuo, per valutare quanto questo fornisca risultati vicini alla soluzione ottima.

In generale, però, la selezione non deve basarsi unicamente sulla scelta del miglior elemento della popolazione corrente, poiché questo potrebbe effettivamente esser ben lontano dalla soluzione ottima al problema. Il compito dell’operatore selezione sarà allora quello di scegliere nella maniera più opportuna i cromosomi con caratteristiche tali da diventare dei “buoni genitori” [9].

Un esempio di selezione è la cosiddetta “Decimazione di Popolazione”: gli individui vengono ordinati secondo il loro valore di fitness, da quello con fitness minore/maggiore a quello con fitness maggiore/minore; si sceglie un punto di cut-off e tutti gli individui con fitness maggiore/minore vengono eliminati, mentre i sopravvissuti danno origine alla nuova generazione mediante crossover. I vantaggi di un simile criterio consistono nella sua semplicità e in una maggiore velocità di convergenza ma, operando in questo modo, si rischia di perdere parte del patrimonio genetico:

cromosomi con fitness non sufficientemente buona vengono eliminati pur possedendo delle caratteristiche (geni) che potrebbero apportare dei miglioramenti al processo evolutivo in una fase successiva del processo.

57

(10)

Un’altro tipo di selezione è la cosiddetta “Selezione per Torneo”: in tal caso, una sottopopolazione di N elementi viene scelta casualmente all’interno della generazione corrente; gli individui appartenenti a tale sottopopolazione competono tra di loro in base alla propria fitness: l’elemento con fitness più alta (o bassa, a seconda del problema) passa alla generazione successiva, mentre gli altri vengono riposizionati nella popolazione corrente; il tutto si ripete fino a raggiungere il numero di cromosomi necessari per creare la generazione successiva. Lo svantaggio maggiore di questo tipo di selezione consiste nei tempi di convergenza, sicuramente più lunghi di quelli necessari ad una selezione con decimazione.

Si preferisce allora utilizzare la cosiddetta “Selezione Proporzionata” o

“Roulette-wheel Selection” (così come fatto nel programma implementato): gli individui sono scelti in base alla loro probabilità di essere selezionati data da:

1

( )

( )

sel n i

i i

f genitore P

f genitore

=

=

, (2.2)

dove f è la fitness riferita al genitore i-esimo.

Più la P

sel

è alta, maggiore è la probabilità che individui con bassa fitness (ciò è vero se siamo alla ricerca di un minimo assoluto, viceversa la fitness dovrà esser la più alta possibile) partecipino alle generazioni future; nonostante ciò, individui con fitness non sufficiente sopravvivono alla selezione. Agendo in questo modo non si corre il rischio di perdere patrimonio genetico che potrebbe mostrare tutta la sua potenza evolutiva nel futuro e si assicura un’ottima velocità di convergenza all’algoritmo.

58

(11)

Nella figura successiva (Fig. 2.3), viene mostrato un semplice esempio di selezione proporzionata: ad ogni individuo viene assegnato uno spazio sulla ruota della roulette, proporzionale alla sua fitness; la ruota viene fatta girare e alla fine il puntatore mostrato indicherà un individuo specifico: maggiore è la sua fitness, più alta sarà la probabilità che esso venga selezionato.

Roulette-wheel

# 1

# 2

# 3

# 5 # 4

# 7 # 6

# 8

# 9

# 10

Fig. 2.3 – Esempio di selezione proporzionata

2.2.4 Operatore “Cross-over”

Come già affermato, nel corso del processo evolutivo, individui con fenotipo tale da consentire il superamento della selezione naturale, scambiano parte del loro patrimonio genetico: è questa l’operazione di cross-over. Gli individui della generazione successiva conserveranno quindi le caratteristiche dei genitori e, potenzialmente, saranno migliori di questi. Le informazioni genetiche relative agli individui scartati verranno perse irreversibilmente.

59

(12)

Esistono due tipi di cross-over, quello single-point e quello multi-point. Il primo, utilizzato con probabilità dell’ordine del 60%-90%, come consigliato in letteratura [12] al fine di velocizzare la convergenza (nel nostro caso è sempre pari a 80%), viene realizzato nella seguente maniera: alla subroutine che compie tale operazione, viene passata la mappa cromosomica; vengono in seguito scelti casualmente due cromosomi. Si decide quindi con probabilità P

cross

se eseguire o meno il cross-over.

In caso affermativo, si sceglie casualmente un punto nei due cromosomi e viene effettuato lo scambio delle porzioni di cromosoma. L’uscita della funzione è la mappa modificata.

Nella figura seguente viene mostrata l’operazione di crossover single-point (Fig. 2.4)

CROSSOVER SINGLE-POINT

Fig. 2.4 – Cross-over single-point

60

(13)

Nel secondo caso (crossover multi-point), lo scambio riguarda più porzioni di cromosoma, così come illustrato nella figura 2.5.

a ) b ) c )

a ) b ) c )

a )a ) b )b ) c )c )

Fig. 2.5 – Cross-over multi-point

2.2.5 Operatore “Mutazione”

L’operatore di mutazione consente l’esplorazione di spazi di soluzione che non sono rappresentati nell’assetto genetico della popolazione corrente: consente quindi di “sconfinare” al di là della soluzione individuata dal genoma della popolazione attuale.

L’implementazione di tale operatore è molto semplice: se si usa una codifica binaria, gli zeri saranno cambiati in uno e viceversa (Fig. 2.6), attraverso l’applicazione dell’operatore NOT; la probabilità con cui può intervenire la mutazione è data dal valore della variabile P

mut

.

61

(14)

Fig. 2.6 – Operatore Mutazione

La mutazione viene in genere indicata come un operatore evolutivo secondario rispetto alla selezione ed al cross-over. Tuttavia è in gran parte dovuta ad essa la notevole capacità, propria degli Algoritmi Genetici, di determinare soluzioni per problemi complessi prossime a quella ottima. In letteratura, come visto, si consigliano valori di probabilità di intervento del cross-over nell’ordine del 60-90 % (almeno per quanto riguarda l’ottimizzazione di problemi elettromagnetici), mentre per la probabilità di mutazione le percentuali sono notevolmente inferiori, tipicamente pari all’10-20 %.

L’evoluzione viene quindi affidata principalmente al cross-over per ottenere maggiori proprietà di convergenza dell’algoritmo. Se però il dominio delle soluzioni possibili è molto vasto, l’apporto della mutazione può risultare produttivo.

Come già rimarcato, esiste il concreto rischio che il GA determini un minimo locale, anziché uno globale, perdendo patrimonio genetico potenzialmente utile.

Nell’algoritmo genetico preesistente, si trova una subroutine in grado di variare dinamicamente la probabilità di mutazione, essendo questa l’operatore genetico che può reintrodurre nella mappa dei cromosomi caratteristiche genetiche andate perdute.

Partendo dalla considerazione che l’intervento della mutazione può essere utile quando l’evoluzione tende a fermarsi (cioè quando il valore di fitness tende a rimanere costante al crescere del numero delle generazioni), mentre deve intervenire raramente durante il corso dell’evoluzione (che deve essere svolta principalmente

62

(15)

dall’operatore cross-over), si è introdotta una probabilità di mutazione variabile in maniera lineare tra due soglie, scelte da input così come accade per il valore dell’incremento.

Si tratta in effetti di un semplice sistema in retroazione: se la fitness resta invariata tra due generazioni consecutive, si incrementa leggermente il valore di e questo procedimento si ripete fino a quando non si raggiunge la soglia superiore.

Quando poi si registra il miglioramento, la probabilità di mutazione torna al suo valore inferiore.

P

mut

Dall’esperienza maturata durante le simulazioni è comunque consigliabile impostare valori massimi pari al 20%, in accordo con la maggior parte dei riferimenti bibliografici, e valori ancora più piccoli per gli incrementi ( 0.1% -0.5%).

La figura successiva (Fig 2.7) mostra in maniera schematica ed esaustiva come avviene lo sviluppo delle generazioni e l’evoluzione delle stesse per effetto degli operatori selezione, cross-over e mutazione appena descritti:

Fig. 2.7 – Stadi di evoluzione

63

(16)

2.2.6 Verifica dell’avvenuto miglioramento e uscita dall’algoritmo

Durante il processo evolutivo, a causa dell’applicazione degli operatori, può accadere che la mappa cromosomica peggiori.

Il peggioramento non è necessariamente un avvenimento negativo, perché, come già detto a proposito dell’operatore cross-over, in una ottimizzazione multi- oggetto, soluzioni globalmente non valide possono apportare con il loro patrimonio genetico miglioramenti alla popolazione, celando al loro interno valori ottimi di singoli parametri.

Al termine di ogni generazione viene quindi confrontato il miglior cromosoma con quello relativo alla generazione precedente e se si riscontra un peggioramento, quest’ultimo andrà a sostituire il peggiore della generazione corrente.

Di questa tecnica, nota come elitismo semplice, si parlerà più diffusamente nel terzo capitolo.

E’ opportuno notare che l’Algoritmo Genetico non necessariamente fornirà una soluzione ottima o prossima a questa: poichè spesso la soluzione ottenuta è sub- ottima, sarà compito del progettista decidere quando arrestare l’evoluzione della popolazione selezionata. Nel caso specifico sono previste tre possibili “vie d’uscite”

dall’algoritmo:

se il valore di fitness è sceso al di sotto di una soglia predeterminata da input;

se si è superato un certo numero massimo preimpostato di generazioni;

mediante intervento diretto del progettista tramite il file ’stopexe’ che blocca l’esecuzione dopo aver calcolato i valori parziali e salvato ogni

64

(17)

informazione utile nei file ’rinfobe’ e ‘restart’, oltre ovviamente ai dati parziali nei relativi file.

2.3 FUNZIONE DI FITNESS

In qualsiasi problema di ottimizzazione, per determinare su quali grandezze debba agire una funzione obiettivo ben posta, è necessario avere una chiara visione del sistema che si vuole ottimizzare visto che la funzione di fitness è l’unica connessione tra il problema reale e il GA. Le grandezze scelte dovranno allora rappresentare nel modo più fedele possibile il sistema e dovranno essere indicatrici in maniera completa (e possibilmente semplice) delle proprietà dello stesso che devono essere ottimizzate.

L’algoritmo Genetico consente di scegliere tra due possibili funzioni che svolgono il calcolo della fitness: una determina l’errore quadratico medio tra un valore di riferimento costante e un array di punti campione, mentre l’altra calcola semplicemente l’errore medio. Delle due, la prima è quella che sicuramente ha manifestato proprietà migliori in termini di convergenza dell’algoritmo e, di conseguenza, è stata utilizzata in tutte le simulazioni e prove pratiche svolte. Entrambe le funzioni hanno come parametri di ingresso l’array, il riferimento e il numero di campioni che si può scegliere da input. Il valore calcolato dalle funzioni sarà la fitness del cromosoma che, ovviamente, deve essere minimizzata per ottenere buoni risultati.

Per quanto riguarda i problemi in esame, che analizzeremo più dettagliatamente nel seguito, si è scelto di imporre una condizione sul coefficiente di riflessione del campo elettrico ( Γ ): tutto ciò è stato fatto in base alla metodologia

E

adottata dal simulatore elettromagnetico che, come evidenziato nel paragrafo 1.8,

65

(18)

essendo basato sul Metodo dei Momenti, determina proprio i valori complessi di Γ per il calcolo dei valori dei campi.

E

I campioni che vengono inviati alle funzioni che calcolano la fitness sono quindi le parti reali e immaginarie dei coefficienti di riflessione relativi alle polarizzazioni TE e TM (in alternativa è possibile scegliere la sola polarizzazione TE da input), opportunamente bufferizzati su degli array per limitare gli accessi alla memoria di massa.

Imponendo poi, secondo il problema trattato, il particolare valore del coefficiente di riflessione, si agisce nella seguente maniera: i riferimenti relativi ai buffer delle parti reali dei coefficienti di riflessione vengono imposti uguali ad 1 o a 0, ancora secondo il particolare problema; lo stesso dicasi per quelli relativi alle parti immaginarie. Il tutto viene ripetuto per entrambe le polarizzazioni. I valori di fitness relativi alle polarizzazione TE e TM vengono quindi mediati tra loro, per determinare la fitness complessiva del cromosoma.

E’ da notare che in una prima implementazione del GA, i campioni provenivano unicamente da una scansione in frequenza dell’andamento dei campi.

Durante le simulazioni, alcune soluzioni, oltre a presentare buone prestazioni al variare della frequenza, hanno anche manifestato interessanti proprietà di stabilità al variare dell’angolo di incidenza; questa caratteristica, peraltro non nuova per strutture dielettriche multistrato, da una analisi più approfondita è risultata dipendere dalla struttura nel suo complesso.

Si è allora deciso di valorizzare quanto più possibile questo aspetto, introducendo una scansione angolare (consentita dal simulatore FSS2) insieme a quella in frequenza.

66

(19)

Con procedimento del tutto simile a quello già esposto in precedenza, vengono ricavati i valori di fitness relativi alla scansione angolare per entrambe le polarizzazioni, e mediati tra loro. Si opera poi una media ponderata tra le fitness della scansione angolare e quella relativa alla scansione in frequenza.

I pesi sono impostabili attraverso il file di ingresso dell’Algoritmo Genetico così come il valore dell’angolo di incidenza finale della scansione angolare e i limiti di banda.

2.4 STRUTTURA DEL CROMOSOMA

A questo punto, viene naturale chiedersi come sia possibile legare le superfici selettive in frequenza all’Algoritmo Genetico. Assecondando il filo logico seguito finora, è necessario, innanzitutto, definire quei parametri che descrivono in maniera semplice e completa il sistema che vogliamo sintetizzare e ottimizzare, ovvero una superficie selettiva in frequenza posta in una struttura dielettrica multistrato. Tali termini sono allora da ricercare nelle dimensioni della cella elementare della FSS nelle due direzioni spaziali, che d’ora in avanti indicheremo con T

x

e T

y

, nello spessore (thickness) e nella costante ε

r

degli strati di dielettrico e nella eventuale simmetria che la subcella può presentare rispetto ad un particolare asse. Ognuno di questi parametri rappresenterà un gene di ogni cromosoma-individuo delle popolazioni in esame.

Poichè, per quanto affermato in precedenza, i cromosomi non sono altro che i vettori colonna della mappa cromosomica generata casualmente prima e ottenuta per evoluzione poi, nel GA originario è stata assunta la suddivisione mostrata nella figura 2.8 per ciascuno di essi:

67

(20)

Tx

Ty Thickn.1

Thickn.2

Thickn.n ε1

ε2

εn

Mask

13 Bits13 Bits13 Bits4Bits13 Bits4Bits13 Bits4Bits256, 64, 36 Bits

FSS

Tx

Ty Thickn.1

Thickn.2

Thickn.n ε1

ε2

εn

Mask

13 Bits13 Bits13 Bits4Bits13 Bits4Bits13 Bits4Bits256, 64, 36 Bits

FSS FSS

Struttura multistrato

T

x

T

y

Mappa dei cromosomi: le

colonne sono numeri

Fig. 2.8 – Struttura e mappa dei cromosomi

I primi due geni, lunghi 13 bit ciascuno, codificano le dimensioni della cella elementare. Di seguito sono posti i campi relativi agli spessori dei dielettrici (13 bit), e alle costanti dielettriche (4 bit). Il numero di bit utilizzato per la costante dielettrica potrebbe apparire esiguo se confrontato con quello dello spessore del dielettrico o delle dimensioni della cella: mediante 13 bit sono rappresentabili 2

13

= 8192 numeri decimali, mentre i numeri esprimibili con 4 bit sono solo 2

4

= 16 . In effetti, l’Algoritmo Genetico non è deputato all’ottimizzazione della costante dielettrica in termini assolutamente casuali e questo per prevenire che la soluzione proposta presenti un valore di ε

r

non riscontrabile in materiali presenti in commercio. In questo modo il gene conterrà solo un indice che deve essere inteso come entry di un database appositamente creato di materiali dielettrici effettivamente reperibili: all’inizio della

68

(21)

simulazione, infatti, il programma legge dal database i valori di costante dielettrica di ogni materiale (espresse come numeri complessi ε ε =

r

+ j ε

i

) e li trasferisce ad un array; l’intero estratto dal campo ε

j

rappresenterà la posizione nell’array della costante dielettrica del materiale che occupa la posizione j-esima nella struttura multistrato.

Per un particolare problema che ci si è trovati ad affrontare, come vedremo nel seguito (Schermi Radar-Assorbenti, paragrafo 4.2), è stato necessario fare in modo che l’algoritmo tenesse conto anche di materiali con una certa permeabilità magnetica

µ

r.

Nulla cambia rispetto al caso, appena esaminato, di materiali con costante dielettrica: sfruttando l’indice di 4 bit di questi ultimi, si è semplicemente modificato il database che il programma legge per caricare in memoria i materiali da utilizzare. Come vedremo nel seguito, le modifiche più rilevanti riguardo questo problema sono state quelle introdotte nel solver elettromagnetico che ha il compito di effettuare i calcoli.

Nel GA preesistente è stato poi scelto di disporre i dati relativi a ciascuno strato di dielettrico (spessore ed ε

r

, appunto) affiancati poiché tale soluzione permette di estrarre le informazioni con semplici loop annidati (quello esterno serve a scorrere la mappa genetica cromosoma per cromosoma, mentre quello interno scorre il singolo cromosoma): data la ripetizione periodica lungo il cromosoma dei geni relativi ai materiali, noto il periodo (17 bit), basterà incrementare un contatore per estrarre in successione le informazioni. E’ possibile inoltre scegliere da un file di ingresso il numero di strati posti al di sopra e al di sotto dello schermo FSS.

Oltre a ciò, è stata imposta una limitazione superiore al numero di dielettrici utilizzabili (il numero massimo è 8 ma tale limitazione è peraltro eliminabile intervenendo sul simulatore FSS2), poiché per valori troppo elevati le dimensioni della

69

(22)

70

matrice da invertire diventano ragguardevoli e, di conseguenza, diventano anche inaccettabilmente lunghe le simulazioni.

Infine, come si può notare dalla figura precedente, l’ultimo campo, di

lunghezza variabile, riguarda la forma della cella elementare. Dal file di ingresso è

possibile scegliere la simmetria della maschera: secondo dati sperimentali, una cella

simmetrica comporterà una risposta omogenea dello schermo FSS al variare della

polarizzazione. Questo concetto si è rivelato valido nel corso delle simulazioni; tuttavia

l’Algoritmo Genetico prevede anche la possibilità di determinare conformazioni

asimmetriche dello schermo totalmente casuali, che talvolta manifestano interessanti

proprietà. Anche in questo caso è possibile individuare la capacità degli Algoritmi

Genetici di trovare soluzioni globalmente ottime.

Riferimenti

Documenti correlati

[r]

L’accesso alle piattaforme informatiche INDIRE di supporto al PON Scuola è possibile o attraverso il sistema di identificazione digitale del Titolare, o

Le procedure di selezione sono demandate interamente ad una Commissione esaminatrice, nominata dal Consiglio di Amministrazione, dopo la scadenza del termine per la presentazione

Ai fini della valutazione delle domande verrà costituita dal Dirigente Scolastico un’apposita commissione costituita dal Dirigente Scolastico medesimo, dal DSGA e da

Individuare il tipo genetico paterno più idoneo per la produzione di un suino medio pesante nato, allevato macellato e trasformato in Piemonte e destinato alla produzione di

Nel corso dello sviluppo degli algoritmi genetici sono stati ideati diversi espe- dienti, es. codifiche non binarie, modalità alternative di crossover, tecniche di

Obiettivo specifico 10.2 – Miglioramento delle competenze chiave degli allievi – Azione 10.2.5 – Azioni volte allo sviluppo delle competenze trasversali con particolare attenzione

Comparando i punteggi medi attribuiti alle domande finanziabili per ciascun criterio al relativo punteggio massimo perseguibile, risultano discriminanti i due criteri C1