SlideShare a Scribd company logo
1 of 8
Utilizzo di algoritmi genetici in ambito SEO ( Search Engine
Optimization )
In questo articolo mostreremo come è stato usato l'approccio degli algoritmi genetici per
l'ottimizzazione della distribuzione dei link all'interno di siti web per massimizzare il rank medio
delle singole pagine web.

Iniziamo spiegando come si comporta un algoritmo di link analysis ranking (LAR), i quali sono
molto utilizzati dai motori di ricerca per effettuare l' ordinamento (o ranking) delle pagine web.
Esso inferisce importanza a una pagina web basandosi sulla struttura topologica del grafo, estratto
analizzando i collegamenti ipertestuali del sito in esame, percorrendolo ed analizzandone gli archi
uscenti e gli archi entranti, ovvero, link uscenti e link entranti delle pagine che compongono il
grafo.
Sulla base di queste informazioni viene associato un valore ad ogni pagina, che verrà poi usato per
l'ordinamento.

Il predecessore degli algoritmi di link analysis ranking è InDegree che calcola la popolarità di una
pagina prendendo in considerazione il numero di pagine che hanno un link ad essa. Algoritmi più
recenti e maggiormente raffinati sono:

       PageRank
   •
       Kleinberg (in seguito intitolato HITS)
   •
       Salsa
   •

PageRank segue un percorso casuale nel grafo del web, dove ogni pagina propaga il proprio peso alle
pagine verso cui ha un link, determinando un array di pesi nominati in seguito pesi di authority.
L'algoritmo completo per il calcolo del PageRank fa ricorso all'uso della teoria dei processi di
Markov.

Kleinberg propone uno schema di propagazione dei pesi a due livelli, determinando i valori di
authority e anche i valori di hub. Una pagina con alto valore di hub, sarà una pagina che contiene
collegamenti a pagine di qualità (ossia con alto valore di authority) e simmetricamente una pagina con
un alto valore di authority, sarà un pagina puntata da molti buoni hub.

Salsa è un ibrido fra i due algoritmi precedenti.

Per approssimare questi algoritmi prenderemo in considerazione la formula inizialmente sviluppata
dai fondatori di Google.

             Rank[A] = ( 1 - d ) + d (Rank[P1] / Link[P1] + ..... + Rank[Pn] / Link[Pn] )

       Rank[A] è il valore di Rank della pagina A che vogliamo calcolare
   •
       P[1]...P[n] sono le pagine che contengono almeno un link verso A
   •
       Rank[P1] ... Rank[Pn] sono i valori di Rank delle pagine P1 ... Pn
   •
       Link[T1] ... Link[Tn] sono il numero complessivo di link contenuti nella pagina che offre il
   •
       link
       d (damping factor) è un fattore deciso da Google che nella documentazione originale assume
   •
       valore 0,85. Può essere aggiustato da Google per decidere la percentuale di PageRank che
       deve transitare da una pagina all'altra e il valore di Rank minimo attribuito ad ogni pagina in
       archivio.
Gli algoritmi in questione sono ovviamente molto più complessi ed il nostro scopo non è quello di
replicarli fedelmente, ma di ottenere un modello matematico che riesca ad approssimarli per ottenere
un quot;Nostroquot; valore di Rank che ci permetta di stabilire la bontà della struttura topologica calcolata
dall'algoritmo genetico dopo che è stato applicato.

Facciamo adesso una panoramica sugli algoritmi genetici.

L'algoritmo genetico è un algoritmo di analisi dei dati e appartiene a una particolare classe di
algoritmi utilizzati in diversi campi, tra cui l'intelligenza artificiale. È un metodo euristico di ricerca
ed ottimizzazione, ispirato al principio della selezione naturale di Charles Darwin che regola
l'evoluzione biologica.

Principi di funzionamento
Un tipico algoritmo genetico parte da un certo numero di possibili soluzioni (individui) chiamate
popolazione e provvede a farle evolvere nel corso dell'esecuzione: a ciascuna iterazione, esso opera
una selezione di individui della popolazione corrente, impiegandoli per generare nuovi elementi della
popolazione stessa, che andranno a sostituire un pari numero d'individui già presenti, e a costituire in
tal modo una nuova popolazione per l'iterazione (o generazione) seguente. Tale successione di
generazioni evolve verso una soluzione ottimale del problema assegnato.

L' evoluzione viene ottenuta attraverso una parziale ricombinazione delle soluzioni, ogni individuo
trasmette parte del suo patrimonio genetico ai propri discendenti. L'introduzione di mutazioni casuali
nella popolazione di partenza, genera sporadicamente nuovi individui, con caratteristiche non
comprese tra quelle presenti nel corredo genetico della specie originaria.

Finita la fase di evoluzione, la popolazione generata ad ogni iterazione, viene analizzata e vengono
tenute solo le soluzioni che meglio risolvono il problema: gli individui con le qualità più adatte
all'ambiente in cui si trovano hanno maggiori possibilità di sopravvivere e riprodursi. Queste
soluzioni subiranno una nuova fase di evoluzione e così via.

Alla fine ,ci si aspetta di trovare una popolazione di soluzioni, che riescano a risolvere adeguatamente
il problema posto. Non vi è modo di decidere a priori se l'algoritmo sarà effettivamente in grado di
trovare una soluzione accettabile. Di norma gli algoritmi genetici vengono utilizzati per problemi di
ottimizzazione per i quali non si conoscono algoritmi di complessità lineare o polinomiale.

Dettaglio del funzionamento
La soluzione del problema viene codificata in una struttura dati, di solito una stringa, detta gene.

Inizialmente viene creato un certo numero di geni in maniera casuale e si definisce una funzione che
restituisca la quot;bontàquot; di un gene come soluzione del problema, detta funzione di fitness.

L'algoritmo consiste nell'applicazione di operazioni, che tendono a modificare la popolazione dei
geni, nel tentativo di migliorarli in modo da ottenere una soluzione sempre migliore.

L'evoluzione procede quindi in passi, per ognuno di questi viene per prima cosa eseguito un
ordinamento dei geni sulla base del risultato della funzione di fitness. Vengono poi eseguite le
operazioni su un numero di geni stabilito dai parametri dell'algoritmo, che in generale determinano
quanti geni devono subire crossover e mutazioni, e in quale misura.
L'algoritmo evolve quindi attraverso i seguenti punti:

       generazione, in maniera casuale di una popolazione iniziale;
   •
       creazione di una sequenza di nuove popolazioni, o generazioni. In ciascuna iterazione, gli
   •
       individui della popolazione corrente sono usati per creare la generazione successiva e, a
       questo scopo, si compiono degli ulteriori passi:
           •
                Ciascun membro della popolazione corrente è valutato calcolandone il rispettivo
           o
                valore di fitness (idoneità);
           o Si determina un opportuno ordinamento di tali individui sulla base dei valori di fitness;
           o Gli individui più promettenti sono selezionati come genitori;
           o A partire da tali individui si genera un pari numero di individui della generazione
                successiva, e ciò può avvenire secondo due modalità distinte, vale a dire effettuando
                cambiamenti casuali su un singolo genitore (mutazione) oppure combinando
                opportunamente le caratteristiche di una coppia di genitori (incrocio);
           o Gli individui così generati vanno a sostituire i genitori consentendo la formazione
                della generazione successiva;
       Infine, l'algoritmo s'interrompe quando uno dei criteri d'arresto è soddisfatto.
   •

In base a un coefficiente stabilito inizialmente, alcune parti dei geni risultati migliori vengono
scambiate, nell'ipotesi che questo possa migliorare il risultato della funzione di fitness nel successivo
quot;passo evolutivoquot;.

Single point crossover

Ci sono varie tecniche di crossover. Una delle più semplice è la quot;single point crossoverquot; che consiste
nel prendere due individui e tagliare le loro stringhe di codifica in un punto a caso. Si creano così due
teste e due code. A questo punto si scambiano le teste e le code, ottenendo due nuovi geni. Il
crossover non è applicato sempre, ma con una probabilità pc. Nel caso in cui non viene applicato i
figli sono semplicemente le copie dei genitori.

Sperimentalmente si può vedere che il miglioramento diventa apprezzabile solo dopo un certo numero
di passi. Questo a meno di casi fortunati, ovviamente.

Mutazione

La mutazione consiste nella modifica casuale di alcune parti dei geni con valore di fitness più basso,
in base a coefficienti definiti inizialmente. Queste modifiche puntano a migliorare il valore della
funzione per il gene in questione.

In realtà non è corretto pensare di mutare solo i cromosomi con fitness più bassa; al fine di garantire
una maggiore capacità esplorativa dell'algoritmo (e non finire in quot;buchequot; di ottimo locale) sono
ritenute utili anche le mutazioni di cromosomi con valore di fitness alto. In definitiva le mutazioni
servono soprattutto a esplorare lo spazio di ricerca, non hanno quindi scopo migliorativo.
L'applicazione

Un sito web è a tutti gli effetti un grafo. Ed è al grafo del sito in esame che applicheremo l' algoritmo
genetico.



La rappresentazione utilizzata è quella per matrice di adiacenza.

La matrice delle adiacenze costituisce una particolare struttura dati comunemente utilizzata nella
rappresentazione dei grafi. In particolare è ampiamente utilizzata nella stesura di algoritmi che
operano su grafi e in generale nella loro rappresentazione informatica.

Dato un qualsiasi grafo la sua matrice delle adiacenze è costituita da una matrice binaria quadrata che
ha come indici di righe e colonne i nomi dei vertici del grafo. Nel posto (i,j) della matrice si trova un
1 se e solo se esiste nel grafo un arco che va dal vertice i al vertice j, altrimenti si trova uno 0.

Se al posto degli 1 nella matrice si trovano dei numeri, questi sono da interpretare come il peso
attribuito a ciascun arco. Ad esempio se l'insieme dei vertici del grafo rappresenta una serie di punti
su una cartina geografica, il peso degli archi può essere interpretato come la distanza dei punti che
questi connettono. Nel nostro caso indicherà la quantità di link.

Nel caso della rappresentazione di grafi non orientati, la matrice è simmetrica rispetto alla diagonale
principale.

Una delle caratteristiche fondamentali di questa matrice è di permettere di ottenere il numero dei
cammini da un nodo i ad un nodo j che devono attraversare n nodi. Per ottenere tutto ciò è sufficiente
fare la potenza n-sima della matrice e vedere il numero che compare al posto i,j.

Come precedentemente spiegato un gene è una stringa binaria, quindi una sequenza di 0 ed 1. L'idea
che sta alla base di questo algoritmo è che anche una matrice può essere vista come una stringa
binaria e quindi un gene. Se vogliamo infatti accedere all'elemento nella posizione X, Y di una
matrice organizzata come stringa, basta applicare la seguente formula:

                               Value(x,y) = Matrix[ (x+matrixsize) * y]

Applicando quindi un algoritmo genetico al grafo del sito in esame è possibile ottenere una migliore
struttura topologica che migliora il rank delle singole pagine.

Sono stati studiati ed implementate altri processi di evoluzione oltre quello di crossover
precedentemente spiegato, appositamente pensati per la problematica SEO.

La funzione di fitness è abbastanza complessa e tra i parametri che prende in considerazione ci sono il
rank medio delle pagine obiettivo, il numero di link medio per pagina e numero di pagine nulle.

Le pagine obiettivo sono quelle pagine del sito che sono di nostro particolare interesse. Tipicamente
nella maggior parte dei casi si tratta delle pagine di foglia.

Per pagina nulla si intende una pagina con valore di rank pari a 0.15 ( si deduce facilmente dalla
formula di rank sopra citata), oppure dal valore stabilito dall'utente.
L'algoritmo è in grado di tenere conto anche dei vincoli editoriali e di evolversi in funzione di essi.

I risultati

A seguito i risultati dell' applicazione dell'algoritmo genetico sul sito: http://www.fratellileonelli.it
Potete vedere la rappresentazione 3D del grafo prima e dopo il processo. La dimensione delle sfere
verdi indica il valore di rank delle pagine, mentre gli archi sono rappresentati in viola.

                                                Prima l'applicazione




                                                Dopo l'applicazione




Si nota a colpo d'occhio la sostanziale differenza tra prima e dopo il trattamento. Le sfere ( Le singole
pagine web ) hanno un diametro più ampio, che significa maggiore rank.


                                         Prima dell' applicazione dell'algoritmo genetico
                                                         Url                                Rank
                             /                                                           20,869984
                             /come-raggiungerci/                                         1,923949
                             /foto/                                                      3,078781
                             /eventi/                                                    1,982173
                             /progettazione/                                             20,345295
                             /realizzazione/                                             20,464703
                             /manutenzione/                                              20,574158
                             /potatura/                                                  20,674488
                             /erbacee-perenni/                                           29,898375
                             /arbusti/                                                   26,296431
                             /foto/azienda-florovivaistica-leonelli-0001/                0,215424
                             /foto/azienda-florovivaistica-leonelli-0002/                0,215424
                             /foto/azienda-florovivaistica-leonelli-0003/                0,215424
                             /foto/azienda-florovivaistica-leonelli-0004/                0,215424
                             /foto/azienda-florovivaistica-leonelli-0005/                0,215424
                             /foto/azienda-florovivaistica-leonelli-0006/                0,215424
                             /foto/azienda-florovivaistica-leonelli-0007/                0,215424
                             /foto/azienda-florovivaistica-leonelli-0008/                0,215424
                             /foto/azienda-florovivaistica-leonelli-0009/                0,215424
                             /foto/azienda-florovivaistica-leonelli-0010/                0,215424
Prima dell' applicazione dell'algoritmo genetico
                                       Url                                 Rank
           /eventi/mostra-mercato/                                     0,318485
           /eventi/open-day/                                           0,318485
           /erbacee-perenni/agastache/rupestris/                       0,288162
           /erbacee-perenni/ajuga-reptans/atropurpurea/                0,288162
           /erbacee-perenni/alchemilla/mollis/                         0,288162
           /erbacee-perenni/allium/karataviense/                       0,288683
           /erbacee-perenni/allium/tuberosum/                          0,288683
           /erbacee-perenni/allium-karataviense/ivory-queen/           0,288162
           /erbacee-perenni/alyssum/montanum/                          0,289121
           /erbacee-perenni/alyssum/saxatile/                          0,289121
           /erbacee-perenni/alyssum/saxatile-compactum/                0,289121
           /erbacee-perenni/amsonia/tabernaemontana/                   0,288162
           /erbacee-perenni/anemone/honorine-jobert/                   0,290098
           /erbacee-perenni/anemone/konigin-charlotte/                 0,290098
           /erbacee-perenni/anemone/prinz-heinrich/                    0,290098
           /erbacee-perenni/anemone/richards-ahrends/                  0,290098
           /erbacee-perenni/anemone/rosenschale/                       0,290098
           /erbacee-perenni/anemone/whirlwind/                         0,290098
           /erbacee-perenni/aquilegia/vulgaris/                        0,288162
           /erbacee-perenni/aquilegia-cerualea/red-hobbit/             0,288162
           /erbacee-perenni/aquilegia-cerulea/rose-queen/              0,288162
           /erbacee-perenni/aquilegia-flabellata-pumila/ministar/      0,288162
           /erbacee-perenni/aquilegia-hybride/biedermeier/             0,288162
           /erbacee-perenni/arabis-caucasica/snowball/                 0,288162
           /erbacee-perenni/arenaria-montana/alba/                     0,288162
           /erbacee-perenni/artemisia/powis-castle/                    0,288683
           /erbacee-perenni/artemisia/stelleriana/                     0,288683
           /erbacee-perenni/asclepias/tuberosa/                        0,288162
           /erbacee-perenni/aster/snow-flurry/                         0,288162
           /erbacee-perenni/aster-dumosus/kippenberger/                0,288683
           /erbacee-perenni/aster-dumosus/schneekissen/                0,288683
           /erbacee-perenni/aster-laterifolius/lady-black/             0,288162
           /erbacee-perenni/astilboides/tabularis/                     0,288162
           /erbacee-perenni/aubretia/blue-cascade/                     0,288162
           /erbacee-perenni/begonia/envasiana-bianca/                  0,288162
           /erbacee-perenni/belamcanda/chinensis/                      0,288162
           /erbacee-perenni/brunnera/macrophilla/                      0,288162
           /erbacee-perenni/callirhoe/involucrata/                     0,288162
           /erbacee-perenni/campanula/loddon-anna/                     0,289121
           /erbacee-perenni/campanula/porscharskyana-lisduggan/ 0,289121
           /erbacee-perenni/campanula/poscharskyana-stella/            0,289121
           /erbacee-perenni/campanula-persicifolia/telham-beauty/ 0,288162
           /erbacee-perenni/campanula-poscharskyana/eh.-frost/         0,288162
           /erbacee-perenni/campanula-punctata/rubriflora/             0,288162
           /erbacee-perenni/centaurea/pulcherrima/                     0,288162
           /erbacee-perenni/centranthus/ruber/                         0,288162
           /erbacee-perenni/ceratostigma/plumbaginoides/               0,288162
           /erbacee-perenni/chrisantemum-coccineus/robin-red/          0,288162
           /erbacee-perenni/chrysantemum/weirichii/                    0,288162
           /erbacee-perenni/cimicifuga/racemosa/                       0,288162
           /erbacee-perenni/convallaria-japonica/nana/                 0,288162
           /erbacee-perenni/coreopsis/grandiflora-aureo-marginata/ 0,289121
           /erbacee-perenni/coreopsis/verticillata-grandiflora/        0,289121
                        Dopo l' applicazione dell'algoritmo genetico
                             Url                                 Rank      Variazione in %
/                                                             13,694373 -34,382446
/come-raggiungerci/                                           1,051139 -45,365528
/foto/                                                        1,464144 -52,444015
/eventi/                                                      1,14884     -42,041415
/progettazione/                                               13,828813 -32,029433
/realizzazione/                                               13,718434 -32,965392
/manutenzione/                                                13,976818 -32,066148
/potatura/                                                    14,024247 -32,166412
/erbacee-perenni/                                             22,935853 -23,287291
/arbusti/                                                     16,967085 -35,477614
/foto/azienda-florovivaistica-leonelli-0007/                  1,110144 415,329628
/foto/azienda-florovivaistica-leonelli-0001/                  0,291642 35,380483
/foto/azienda-florovivaistica-leonelli-0002/                  0,268323 24,555806
Dopo l' applicazione dell'algoritmo genetico
                                                  Url                                Rank     Variazione in %
                      /foto/azienda-florovivaistica-leonelli-0003/                0,281249   30,555904
                      /foto/azienda-florovivaistica-leonelli-0004/                0,335848   55,90069
                      /foto/azienda-florovivaistica-leonelli-0005/                0,353533   64,110223
                      /foto/azienda-florovivaistica-leonelli-0006/                0,317864   47,552509
                      /foto/azienda-florovivaistica-leonelli-0008/                0,298621   38,620123
                      /foto/azienda-florovivaistica-leonelli-0009/                0,322093   49,515791
                      /foto/azienda-florovivaistica-leonelli-0010/                0,518017   140,463603
                      /foto/azienda-florovivaistica-leonelli-0011/                0,416419   93,30211
                      /eventi/mostra-mercato/                                     1,077961   238,465601
                      /eventi/open-day/                                           0,400233   25,667764
                      /erbacee-perenni/agastache/rupestris/                       0,380497   32,042654
                      /erbacee-perenni/ajuga-reptans/atropurpurea/                0,353591   22,705328
                      /erbacee-perenni/alchemilla/mollis/                         0,439853   52,64078
                      /erbacee-perenni/allium/karataviense/                       0,538787   86,636158
                      /erbacee-perenni/allium/tuberosum/                          0,363862   26,042161
                      /erbacee-perenni/allium-karataviense/ivory-queen/           0,31456    9,160755
                      /erbacee-perenni/alyssum/montanum/                          0,456966   58,053371
                      /erbacee-perenni/alyssum/saxatile/                          1,010271   249,42859
                      /erbacee-perenni/alyssum/saxatile-compactum/                1,260897   336,114057
                      /erbacee-perenni/amsonia/tabernaemontana/                   0,542984   88,429871
                      /erbacee-perenni/anemone/honorine-jobert/                   0,390125   34,4802
                      /erbacee-perenni/anemone/konigin-charlotte/                 0,351422   21,13903
                      /erbacee-perenni/anemone/prinz-heinrich/                    1,071951   269,5129
                      /erbacee-perenni/anemone/richards-ahrends/                  0,435242   50,032475
                      /erbacee-perenni/anemone/rosenschale/                       0,391896   35,090808
                      /erbacee-perenni/anemone/whirlwind/                         0,33464    15,354023
                      /erbacee-perenni/aquilegia/vulgaris/                        1,104393   283,25364
                      /erbacee-perenni/aquilegia-cerualea/red-hobbit/             1,041284   261,353236
                      /erbacee-perenni/aquilegia-cerulea/rose-queen/              0,346796   20,347341
                      /erbacee-perenni/aquilegia-flabellata-pumila/ministar/      0,391123   35,729918
                      /erbacee-perenni/aquilegia-hybride/biedermeier/             0,45022    56,238254
                      /erbacee-perenni/arabis-caucasica/snowball/                 0,390517   35,519662
                      /erbacee-perenni/arenaria-montana/alba/                     0,437306   51,756659
                      /erbacee-perenni/artemisia/powis-castle/                    0,340346   17,896019
                      /erbacee-perenni/artemisia/stelleriana/                     1,002906   247,407458
                      /erbacee-perenni/asclepias/tuberosa/                        0,404723   40,449666
                      /erbacee-perenni/aster/snow-flurry/                         0,496032   72,136291
                      /erbacee-perenni/aster-dumosus/kippenberger/                0,348915   20,864332
                      /erbacee-perenni/aster-dumosus/schneekissen/                0,345664   19,738409
                      /erbacee-perenni/aster-laterifolius/lady-black/             0,359595   24,788962
                      /erbacee-perenni/astilboides/tabularis/                     0,404522   40,379976
                      /erbacee-perenni/aubretia/blue-cascade/                     0,348454   20,92274
                      /erbacee-perenni/begonia/envasiana-bianca/                  0,405793   40,820759
                      /erbacee-perenni/belamcanda/chinensis/                      0,331347   14,986294
                      /erbacee-perenni/brunnera/macrophilla/                      0,447869   55,422554
                      /erbacee-perenni/callirhoe/involucrata/                     0,550039   90,87803
                      /erbacee-perenni/campanula/loddon-anna/                     0,423717   46,553667
                      /erbacee-perenni/campanula/porscharskyana-lisduggan/ 0,441346          52,651122
                      /erbacee-perenni/campanula/poscharskyana-stella/            0,351554   21,59415
                      /erbacee-perenni/campanula-persicifolia/telham-beauty/ 0,476057        65,204238
                      /erbacee-perenni/campanula-poscharskyana/eh.-frost/         0,420136   45,798436
                      /erbacee-perenni/campanula-punctata/rubriflora/             0,441126   53,082548
                      /erbacee-perenni/centaurea/pulcherrima/                     0,440109   52,729489
                      /erbacee-perenni/centranthus/ruber/                         0,385745   33,863636
                      /erbacee-perenni/ceratostigma/plumbaginoides/               1,198788   316,011179
                      /erbacee-perenni/chrisantemum-coccineus/robin-red/          0,387029   34,309344
                      /erbacee-perenni/chrysantemum/weirichii/                    1,040353   261,030125
                      /erbacee-perenni/cimicifuga/racemosa/                       0,364126   26,361224
                      /erbacee-perenni/convallaria-japonica/nana/                 0,482505   67,441941
                      /erbacee-perenni/coreopsis/grandiflora-aureo-marginata/ 0,477275       65,077949
                      /erbacee-perenni/coreopsis/verticillata-grandiflora/        1,244313   330,377832


È importante notare come l'algoritmo abbia cercato di distribuire in maniera più omogenea il rank
complessivo del sito.
Nella tabella con i risultati finali sono evidenziati in rosso i valori più significativi.
Le pagine che sono presenti nel menù come è facile immaginare sono quelle con maggiore rank, sia
prima che dopo. Tuttavia il loro rank è stato abbassato in favore delle pagine obiettivo.

Ovviamente questo comportamento può essere pilotato in base alle esigenze. In questo particolare
caso per il cliente era importante aumentare il rank delle pagine che contengono la descrizione della
pianta, di conseguenza, l' algoritmo si è evoluto in questa direzione.

A seguito potete vedere come sono stati posizionati i link aggiuntivi calcolati dal processo:




Sebastiano Galazzo

18 novembre 2008



sebastiano.galazzo@gmail.com

More Related Content

Viewers also liked

Viewers also liked (7)

contabilidad
contabilidadcontabilidad
contabilidad
 
Hfpresentation07
Hfpresentation07Hfpresentation07
Hfpresentation07
 
Power point
Power pointPower point
Power point
 
Franz ferdinand powerpoint
Franz ferdinand powerpointFranz ferdinand powerpoint
Franz ferdinand powerpoint
 
Punts i línies
Punts i líniesPunts i línies
Punts i línies
 
LA POBLACIÓ
LA POBLACIÓLA POBLACIÓ
LA POBLACIÓ
 
Monuments Around the World Light up for Paris
Monuments Around the World Light up for ParisMonuments Around the World Light up for Paris
Monuments Around the World Light up for Paris
 

Similar to Utilizzo Di Algoritmi Genetici In Ambito Seo

COUGAR: Clustering Of Unknown malware using Genetic Algorithm Routines
COUGAR: Clustering Of Unknown malware using Genetic Algorithm RoutinesCOUGAR: Clustering Of Unknown malware using Genetic Algorithm Routines
COUGAR: Clustering Of Unknown malware using Genetic Algorithm RoutinesDavidePanarella
 
Page ranking - Portare ordine sul web
Page ranking - Portare ordine sul webPage ranking - Portare ordine sul web
Page ranking - Portare ordine sul webAntonio Tandoi
 
Sintesi automatica di una metrica di similarità tra stringhe tramite tecniche...
Sintesi automatica di una metrica di similarità tra stringhe tramite tecniche...Sintesi automatica di una metrica di similarità tra stringhe tramite tecniche...
Sintesi automatica di una metrica di similarità tra stringhe tramite tecniche...mfurlanetto
 
Extended Summary of “Exploring the Evolution of GANs through Quality Diversity”
Extended Summary of “Exploring the Evolution of GANs through Quality Diversity”Extended Summary of “Exploring the Evolution of GANs through Quality Diversity”
Extended Summary of “Exploring the Evolution of GANs through Quality Diversity”StefanoChen1
 
Assignment Advance Quantitative Methods Casolat
Assignment Advance Quantitative Methods   CasolatAssignment Advance Quantitative Methods   Casolat
Assignment Advance Quantitative Methods Casolatlanuz
 
Data mining 00-corso2017
Data mining 00-corso2017Data mining 00-corso2017
Data mining 00-corso2017Studiabo
 

Similar to Utilizzo Di Algoritmi Genetici In Ambito Seo (8)

COUGAR: Clustering Of Unknown malware using Genetic Algorithm Routines
COUGAR: Clustering Of Unknown malware using Genetic Algorithm RoutinesCOUGAR: Clustering Of Unknown malware using Genetic Algorithm Routines
COUGAR: Clustering Of Unknown malware using Genetic Algorithm Routines
 
Page ranking - Portare ordine sul web
Page ranking - Portare ordine sul webPage ranking - Portare ordine sul web
Page ranking - Portare ordine sul web
 
Sintesi automatica di una metrica di similarità tra stringhe tramite tecniche...
Sintesi automatica di una metrica di similarità tra stringhe tramite tecniche...Sintesi automatica di una metrica di similarità tra stringhe tramite tecniche...
Sintesi automatica di una metrica di similarità tra stringhe tramite tecniche...
 
Extended Summary of “Exploring the Evolution of GANs through Quality Diversity”
Extended Summary of “Exploring the Evolution of GANs through Quality Diversity”Extended Summary of “Exploring the Evolution of GANs through Quality Diversity”
Extended Summary of “Exploring the Evolution of GANs through Quality Diversity”
 
Lezione js pdatabasecrudterzaparte
Lezione js pdatabasecrudterzaparteLezione js pdatabasecrudterzaparte
Lezione js pdatabasecrudterzaparte
 
Assignment Advance Quantitative Methods Casolat
Assignment Advance Quantitative Methods   CasolatAssignment Advance Quantitative Methods   Casolat
Assignment Advance Quantitative Methods Casolat
 
Data mining 00-corso2017
Data mining 00-corso2017Data mining 00-corso2017
Data mining 00-corso2017
 
Sentiment candida 27_may
Sentiment candida 27_maySentiment candida 27_may
Sentiment candida 27_may
 

Recently uploaded

Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Associazione Digital Days
 
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Associazione Digital Days
 
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Associazione Digital Days
 
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...Associazione Digital Days
 
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...Associazione Digital Days
 
ScrapeGraphAI: a new way to scrape context with AI
ScrapeGraphAI: a new way to scrape context with AIScrapeGraphAI: a new way to scrape context with AI
ScrapeGraphAI: a new way to scrape context with AIinfogdgmi
 
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...Associazione Digital Days
 
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Associazione Digital Days
 
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Associazione Digital Days
 

Recently uploaded (9)

Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
 
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
 
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
 
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
 
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
 
ScrapeGraphAI: a new way to scrape context with AI
ScrapeGraphAI: a new way to scrape context with AIScrapeGraphAI: a new way to scrape context with AI
ScrapeGraphAI: a new way to scrape context with AI
 
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
 
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
 
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
 

Utilizzo Di Algoritmi Genetici In Ambito Seo

  • 1. Utilizzo di algoritmi genetici in ambito SEO ( Search Engine Optimization ) In questo articolo mostreremo come è stato usato l'approccio degli algoritmi genetici per l'ottimizzazione della distribuzione dei link all'interno di siti web per massimizzare il rank medio delle singole pagine web. Iniziamo spiegando come si comporta un algoritmo di link analysis ranking (LAR), i quali sono molto utilizzati dai motori di ricerca per effettuare l' ordinamento (o ranking) delle pagine web. Esso inferisce importanza a una pagina web basandosi sulla struttura topologica del grafo, estratto analizzando i collegamenti ipertestuali del sito in esame, percorrendolo ed analizzandone gli archi uscenti e gli archi entranti, ovvero, link uscenti e link entranti delle pagine che compongono il grafo. Sulla base di queste informazioni viene associato un valore ad ogni pagina, che verrà poi usato per l'ordinamento. Il predecessore degli algoritmi di link analysis ranking è InDegree che calcola la popolarità di una pagina prendendo in considerazione il numero di pagine che hanno un link ad essa. Algoritmi più recenti e maggiormente raffinati sono: PageRank • Kleinberg (in seguito intitolato HITS) • Salsa • PageRank segue un percorso casuale nel grafo del web, dove ogni pagina propaga il proprio peso alle pagine verso cui ha un link, determinando un array di pesi nominati in seguito pesi di authority. L'algoritmo completo per il calcolo del PageRank fa ricorso all'uso della teoria dei processi di Markov. Kleinberg propone uno schema di propagazione dei pesi a due livelli, determinando i valori di authority e anche i valori di hub. Una pagina con alto valore di hub, sarà una pagina che contiene collegamenti a pagine di qualità (ossia con alto valore di authority) e simmetricamente una pagina con un alto valore di authority, sarà un pagina puntata da molti buoni hub. Salsa è un ibrido fra i due algoritmi precedenti. Per approssimare questi algoritmi prenderemo in considerazione la formula inizialmente sviluppata dai fondatori di Google. Rank[A] = ( 1 - d ) + d (Rank[P1] / Link[P1] + ..... + Rank[Pn] / Link[Pn] ) Rank[A] è il valore di Rank della pagina A che vogliamo calcolare • P[1]...P[n] sono le pagine che contengono almeno un link verso A • Rank[P1] ... Rank[Pn] sono i valori di Rank delle pagine P1 ... Pn • Link[T1] ... Link[Tn] sono il numero complessivo di link contenuti nella pagina che offre il • link d (damping factor) è un fattore deciso da Google che nella documentazione originale assume • valore 0,85. Può essere aggiustato da Google per decidere la percentuale di PageRank che deve transitare da una pagina all'altra e il valore di Rank minimo attribuito ad ogni pagina in archivio.
  • 2. Gli algoritmi in questione sono ovviamente molto più complessi ed il nostro scopo non è quello di replicarli fedelmente, ma di ottenere un modello matematico che riesca ad approssimarli per ottenere un quot;Nostroquot; valore di Rank che ci permetta di stabilire la bontà della struttura topologica calcolata dall'algoritmo genetico dopo che è stato applicato. Facciamo adesso una panoramica sugli algoritmi genetici. L'algoritmo genetico è un algoritmo di analisi dei dati e appartiene a una particolare classe di algoritmi utilizzati in diversi campi, tra cui l'intelligenza artificiale. È un metodo euristico di ricerca ed ottimizzazione, ispirato al principio della selezione naturale di Charles Darwin che regola l'evoluzione biologica. Principi di funzionamento Un tipico algoritmo genetico parte da un certo numero di possibili soluzioni (individui) chiamate popolazione e provvede a farle evolvere nel corso dell'esecuzione: a ciascuna iterazione, esso opera una selezione di individui della popolazione corrente, impiegandoli per generare nuovi elementi della popolazione stessa, che andranno a sostituire un pari numero d'individui già presenti, e a costituire in tal modo una nuova popolazione per l'iterazione (o generazione) seguente. Tale successione di generazioni evolve verso una soluzione ottimale del problema assegnato. L' evoluzione viene ottenuta attraverso una parziale ricombinazione delle soluzioni, ogni individuo trasmette parte del suo patrimonio genetico ai propri discendenti. L'introduzione di mutazioni casuali nella popolazione di partenza, genera sporadicamente nuovi individui, con caratteristiche non comprese tra quelle presenti nel corredo genetico della specie originaria. Finita la fase di evoluzione, la popolazione generata ad ogni iterazione, viene analizzata e vengono tenute solo le soluzioni che meglio risolvono il problema: gli individui con le qualità più adatte all'ambiente in cui si trovano hanno maggiori possibilità di sopravvivere e riprodursi. Queste soluzioni subiranno una nuova fase di evoluzione e così via. Alla fine ,ci si aspetta di trovare una popolazione di soluzioni, che riescano a risolvere adeguatamente il problema posto. Non vi è modo di decidere a priori se l'algoritmo sarà effettivamente in grado di trovare una soluzione accettabile. Di norma gli algoritmi genetici vengono utilizzati per problemi di ottimizzazione per i quali non si conoscono algoritmi di complessità lineare o polinomiale. Dettaglio del funzionamento La soluzione del problema viene codificata in una struttura dati, di solito una stringa, detta gene. Inizialmente viene creato un certo numero di geni in maniera casuale e si definisce una funzione che restituisca la quot;bontàquot; di un gene come soluzione del problema, detta funzione di fitness. L'algoritmo consiste nell'applicazione di operazioni, che tendono a modificare la popolazione dei geni, nel tentativo di migliorarli in modo da ottenere una soluzione sempre migliore. L'evoluzione procede quindi in passi, per ognuno di questi viene per prima cosa eseguito un ordinamento dei geni sulla base del risultato della funzione di fitness. Vengono poi eseguite le operazioni su un numero di geni stabilito dai parametri dell'algoritmo, che in generale determinano quanti geni devono subire crossover e mutazioni, e in quale misura.
  • 3. L'algoritmo evolve quindi attraverso i seguenti punti: generazione, in maniera casuale di una popolazione iniziale; • creazione di una sequenza di nuove popolazioni, o generazioni. In ciascuna iterazione, gli • individui della popolazione corrente sono usati per creare la generazione successiva e, a questo scopo, si compiono degli ulteriori passi: • Ciascun membro della popolazione corrente è valutato calcolandone il rispettivo o valore di fitness (idoneità); o Si determina un opportuno ordinamento di tali individui sulla base dei valori di fitness; o Gli individui più promettenti sono selezionati come genitori; o A partire da tali individui si genera un pari numero di individui della generazione successiva, e ciò può avvenire secondo due modalità distinte, vale a dire effettuando cambiamenti casuali su un singolo genitore (mutazione) oppure combinando opportunamente le caratteristiche di una coppia di genitori (incrocio); o Gli individui così generati vanno a sostituire i genitori consentendo la formazione della generazione successiva; Infine, l'algoritmo s'interrompe quando uno dei criteri d'arresto è soddisfatto. • In base a un coefficiente stabilito inizialmente, alcune parti dei geni risultati migliori vengono scambiate, nell'ipotesi che questo possa migliorare il risultato della funzione di fitness nel successivo quot;passo evolutivoquot;. Single point crossover Ci sono varie tecniche di crossover. Una delle più semplice è la quot;single point crossoverquot; che consiste nel prendere due individui e tagliare le loro stringhe di codifica in un punto a caso. Si creano così due teste e due code. A questo punto si scambiano le teste e le code, ottenendo due nuovi geni. Il crossover non è applicato sempre, ma con una probabilità pc. Nel caso in cui non viene applicato i figli sono semplicemente le copie dei genitori. Sperimentalmente si può vedere che il miglioramento diventa apprezzabile solo dopo un certo numero di passi. Questo a meno di casi fortunati, ovviamente. Mutazione La mutazione consiste nella modifica casuale di alcune parti dei geni con valore di fitness più basso, in base a coefficienti definiti inizialmente. Queste modifiche puntano a migliorare il valore della funzione per il gene in questione. In realtà non è corretto pensare di mutare solo i cromosomi con fitness più bassa; al fine di garantire una maggiore capacità esplorativa dell'algoritmo (e non finire in quot;buchequot; di ottimo locale) sono ritenute utili anche le mutazioni di cromosomi con valore di fitness alto. In definitiva le mutazioni servono soprattutto a esplorare lo spazio di ricerca, non hanno quindi scopo migliorativo.
  • 4. L'applicazione Un sito web è a tutti gli effetti un grafo. Ed è al grafo del sito in esame che applicheremo l' algoritmo genetico. La rappresentazione utilizzata è quella per matrice di adiacenza. La matrice delle adiacenze costituisce una particolare struttura dati comunemente utilizzata nella rappresentazione dei grafi. In particolare è ampiamente utilizzata nella stesura di algoritmi che operano su grafi e in generale nella loro rappresentazione informatica. Dato un qualsiasi grafo la sua matrice delle adiacenze è costituita da una matrice binaria quadrata che ha come indici di righe e colonne i nomi dei vertici del grafo. Nel posto (i,j) della matrice si trova un 1 se e solo se esiste nel grafo un arco che va dal vertice i al vertice j, altrimenti si trova uno 0. Se al posto degli 1 nella matrice si trovano dei numeri, questi sono da interpretare come il peso attribuito a ciascun arco. Ad esempio se l'insieme dei vertici del grafo rappresenta una serie di punti su una cartina geografica, il peso degli archi può essere interpretato come la distanza dei punti che questi connettono. Nel nostro caso indicherà la quantità di link. Nel caso della rappresentazione di grafi non orientati, la matrice è simmetrica rispetto alla diagonale principale. Una delle caratteristiche fondamentali di questa matrice è di permettere di ottenere il numero dei cammini da un nodo i ad un nodo j che devono attraversare n nodi. Per ottenere tutto ciò è sufficiente fare la potenza n-sima della matrice e vedere il numero che compare al posto i,j. Come precedentemente spiegato un gene è una stringa binaria, quindi una sequenza di 0 ed 1. L'idea che sta alla base di questo algoritmo è che anche una matrice può essere vista come una stringa binaria e quindi un gene. Se vogliamo infatti accedere all'elemento nella posizione X, Y di una matrice organizzata come stringa, basta applicare la seguente formula: Value(x,y) = Matrix[ (x+matrixsize) * y] Applicando quindi un algoritmo genetico al grafo del sito in esame è possibile ottenere una migliore struttura topologica che migliora il rank delle singole pagine. Sono stati studiati ed implementate altri processi di evoluzione oltre quello di crossover precedentemente spiegato, appositamente pensati per la problematica SEO. La funzione di fitness è abbastanza complessa e tra i parametri che prende in considerazione ci sono il rank medio delle pagine obiettivo, il numero di link medio per pagina e numero di pagine nulle. Le pagine obiettivo sono quelle pagine del sito che sono di nostro particolare interesse. Tipicamente nella maggior parte dei casi si tratta delle pagine di foglia. Per pagina nulla si intende una pagina con valore di rank pari a 0.15 ( si deduce facilmente dalla formula di rank sopra citata), oppure dal valore stabilito dall'utente.
  • 5. L'algoritmo è in grado di tenere conto anche dei vincoli editoriali e di evolversi in funzione di essi. I risultati A seguito i risultati dell' applicazione dell'algoritmo genetico sul sito: http://www.fratellileonelli.it Potete vedere la rappresentazione 3D del grafo prima e dopo il processo. La dimensione delle sfere verdi indica il valore di rank delle pagine, mentre gli archi sono rappresentati in viola. Prima l'applicazione Dopo l'applicazione Si nota a colpo d'occhio la sostanziale differenza tra prima e dopo il trattamento. Le sfere ( Le singole pagine web ) hanno un diametro più ampio, che significa maggiore rank. Prima dell' applicazione dell'algoritmo genetico Url Rank / 20,869984 /come-raggiungerci/ 1,923949 /foto/ 3,078781 /eventi/ 1,982173 /progettazione/ 20,345295 /realizzazione/ 20,464703 /manutenzione/ 20,574158 /potatura/ 20,674488 /erbacee-perenni/ 29,898375 /arbusti/ 26,296431 /foto/azienda-florovivaistica-leonelli-0001/ 0,215424 /foto/azienda-florovivaistica-leonelli-0002/ 0,215424 /foto/azienda-florovivaistica-leonelli-0003/ 0,215424 /foto/azienda-florovivaistica-leonelli-0004/ 0,215424 /foto/azienda-florovivaistica-leonelli-0005/ 0,215424 /foto/azienda-florovivaistica-leonelli-0006/ 0,215424 /foto/azienda-florovivaistica-leonelli-0007/ 0,215424 /foto/azienda-florovivaistica-leonelli-0008/ 0,215424 /foto/azienda-florovivaistica-leonelli-0009/ 0,215424 /foto/azienda-florovivaistica-leonelli-0010/ 0,215424
  • 6. Prima dell' applicazione dell'algoritmo genetico Url Rank /eventi/mostra-mercato/ 0,318485 /eventi/open-day/ 0,318485 /erbacee-perenni/agastache/rupestris/ 0,288162 /erbacee-perenni/ajuga-reptans/atropurpurea/ 0,288162 /erbacee-perenni/alchemilla/mollis/ 0,288162 /erbacee-perenni/allium/karataviense/ 0,288683 /erbacee-perenni/allium/tuberosum/ 0,288683 /erbacee-perenni/allium-karataviense/ivory-queen/ 0,288162 /erbacee-perenni/alyssum/montanum/ 0,289121 /erbacee-perenni/alyssum/saxatile/ 0,289121 /erbacee-perenni/alyssum/saxatile-compactum/ 0,289121 /erbacee-perenni/amsonia/tabernaemontana/ 0,288162 /erbacee-perenni/anemone/honorine-jobert/ 0,290098 /erbacee-perenni/anemone/konigin-charlotte/ 0,290098 /erbacee-perenni/anemone/prinz-heinrich/ 0,290098 /erbacee-perenni/anemone/richards-ahrends/ 0,290098 /erbacee-perenni/anemone/rosenschale/ 0,290098 /erbacee-perenni/anemone/whirlwind/ 0,290098 /erbacee-perenni/aquilegia/vulgaris/ 0,288162 /erbacee-perenni/aquilegia-cerualea/red-hobbit/ 0,288162 /erbacee-perenni/aquilegia-cerulea/rose-queen/ 0,288162 /erbacee-perenni/aquilegia-flabellata-pumila/ministar/ 0,288162 /erbacee-perenni/aquilegia-hybride/biedermeier/ 0,288162 /erbacee-perenni/arabis-caucasica/snowball/ 0,288162 /erbacee-perenni/arenaria-montana/alba/ 0,288162 /erbacee-perenni/artemisia/powis-castle/ 0,288683 /erbacee-perenni/artemisia/stelleriana/ 0,288683 /erbacee-perenni/asclepias/tuberosa/ 0,288162 /erbacee-perenni/aster/snow-flurry/ 0,288162 /erbacee-perenni/aster-dumosus/kippenberger/ 0,288683 /erbacee-perenni/aster-dumosus/schneekissen/ 0,288683 /erbacee-perenni/aster-laterifolius/lady-black/ 0,288162 /erbacee-perenni/astilboides/tabularis/ 0,288162 /erbacee-perenni/aubretia/blue-cascade/ 0,288162 /erbacee-perenni/begonia/envasiana-bianca/ 0,288162 /erbacee-perenni/belamcanda/chinensis/ 0,288162 /erbacee-perenni/brunnera/macrophilla/ 0,288162 /erbacee-perenni/callirhoe/involucrata/ 0,288162 /erbacee-perenni/campanula/loddon-anna/ 0,289121 /erbacee-perenni/campanula/porscharskyana-lisduggan/ 0,289121 /erbacee-perenni/campanula/poscharskyana-stella/ 0,289121 /erbacee-perenni/campanula-persicifolia/telham-beauty/ 0,288162 /erbacee-perenni/campanula-poscharskyana/eh.-frost/ 0,288162 /erbacee-perenni/campanula-punctata/rubriflora/ 0,288162 /erbacee-perenni/centaurea/pulcherrima/ 0,288162 /erbacee-perenni/centranthus/ruber/ 0,288162 /erbacee-perenni/ceratostigma/plumbaginoides/ 0,288162 /erbacee-perenni/chrisantemum-coccineus/robin-red/ 0,288162 /erbacee-perenni/chrysantemum/weirichii/ 0,288162 /erbacee-perenni/cimicifuga/racemosa/ 0,288162 /erbacee-perenni/convallaria-japonica/nana/ 0,288162 /erbacee-perenni/coreopsis/grandiflora-aureo-marginata/ 0,289121 /erbacee-perenni/coreopsis/verticillata-grandiflora/ 0,289121 Dopo l' applicazione dell'algoritmo genetico Url Rank Variazione in % / 13,694373 -34,382446 /come-raggiungerci/ 1,051139 -45,365528 /foto/ 1,464144 -52,444015 /eventi/ 1,14884 -42,041415 /progettazione/ 13,828813 -32,029433 /realizzazione/ 13,718434 -32,965392 /manutenzione/ 13,976818 -32,066148 /potatura/ 14,024247 -32,166412 /erbacee-perenni/ 22,935853 -23,287291 /arbusti/ 16,967085 -35,477614 /foto/azienda-florovivaistica-leonelli-0007/ 1,110144 415,329628 /foto/azienda-florovivaistica-leonelli-0001/ 0,291642 35,380483 /foto/azienda-florovivaistica-leonelli-0002/ 0,268323 24,555806
  • 7. Dopo l' applicazione dell'algoritmo genetico Url Rank Variazione in % /foto/azienda-florovivaistica-leonelli-0003/ 0,281249 30,555904 /foto/azienda-florovivaistica-leonelli-0004/ 0,335848 55,90069 /foto/azienda-florovivaistica-leonelli-0005/ 0,353533 64,110223 /foto/azienda-florovivaistica-leonelli-0006/ 0,317864 47,552509 /foto/azienda-florovivaistica-leonelli-0008/ 0,298621 38,620123 /foto/azienda-florovivaistica-leonelli-0009/ 0,322093 49,515791 /foto/azienda-florovivaistica-leonelli-0010/ 0,518017 140,463603 /foto/azienda-florovivaistica-leonelli-0011/ 0,416419 93,30211 /eventi/mostra-mercato/ 1,077961 238,465601 /eventi/open-day/ 0,400233 25,667764 /erbacee-perenni/agastache/rupestris/ 0,380497 32,042654 /erbacee-perenni/ajuga-reptans/atropurpurea/ 0,353591 22,705328 /erbacee-perenni/alchemilla/mollis/ 0,439853 52,64078 /erbacee-perenni/allium/karataviense/ 0,538787 86,636158 /erbacee-perenni/allium/tuberosum/ 0,363862 26,042161 /erbacee-perenni/allium-karataviense/ivory-queen/ 0,31456 9,160755 /erbacee-perenni/alyssum/montanum/ 0,456966 58,053371 /erbacee-perenni/alyssum/saxatile/ 1,010271 249,42859 /erbacee-perenni/alyssum/saxatile-compactum/ 1,260897 336,114057 /erbacee-perenni/amsonia/tabernaemontana/ 0,542984 88,429871 /erbacee-perenni/anemone/honorine-jobert/ 0,390125 34,4802 /erbacee-perenni/anemone/konigin-charlotte/ 0,351422 21,13903 /erbacee-perenni/anemone/prinz-heinrich/ 1,071951 269,5129 /erbacee-perenni/anemone/richards-ahrends/ 0,435242 50,032475 /erbacee-perenni/anemone/rosenschale/ 0,391896 35,090808 /erbacee-perenni/anemone/whirlwind/ 0,33464 15,354023 /erbacee-perenni/aquilegia/vulgaris/ 1,104393 283,25364 /erbacee-perenni/aquilegia-cerualea/red-hobbit/ 1,041284 261,353236 /erbacee-perenni/aquilegia-cerulea/rose-queen/ 0,346796 20,347341 /erbacee-perenni/aquilegia-flabellata-pumila/ministar/ 0,391123 35,729918 /erbacee-perenni/aquilegia-hybride/biedermeier/ 0,45022 56,238254 /erbacee-perenni/arabis-caucasica/snowball/ 0,390517 35,519662 /erbacee-perenni/arenaria-montana/alba/ 0,437306 51,756659 /erbacee-perenni/artemisia/powis-castle/ 0,340346 17,896019 /erbacee-perenni/artemisia/stelleriana/ 1,002906 247,407458 /erbacee-perenni/asclepias/tuberosa/ 0,404723 40,449666 /erbacee-perenni/aster/snow-flurry/ 0,496032 72,136291 /erbacee-perenni/aster-dumosus/kippenberger/ 0,348915 20,864332 /erbacee-perenni/aster-dumosus/schneekissen/ 0,345664 19,738409 /erbacee-perenni/aster-laterifolius/lady-black/ 0,359595 24,788962 /erbacee-perenni/astilboides/tabularis/ 0,404522 40,379976 /erbacee-perenni/aubretia/blue-cascade/ 0,348454 20,92274 /erbacee-perenni/begonia/envasiana-bianca/ 0,405793 40,820759 /erbacee-perenni/belamcanda/chinensis/ 0,331347 14,986294 /erbacee-perenni/brunnera/macrophilla/ 0,447869 55,422554 /erbacee-perenni/callirhoe/involucrata/ 0,550039 90,87803 /erbacee-perenni/campanula/loddon-anna/ 0,423717 46,553667 /erbacee-perenni/campanula/porscharskyana-lisduggan/ 0,441346 52,651122 /erbacee-perenni/campanula/poscharskyana-stella/ 0,351554 21,59415 /erbacee-perenni/campanula-persicifolia/telham-beauty/ 0,476057 65,204238 /erbacee-perenni/campanula-poscharskyana/eh.-frost/ 0,420136 45,798436 /erbacee-perenni/campanula-punctata/rubriflora/ 0,441126 53,082548 /erbacee-perenni/centaurea/pulcherrima/ 0,440109 52,729489 /erbacee-perenni/centranthus/ruber/ 0,385745 33,863636 /erbacee-perenni/ceratostigma/plumbaginoides/ 1,198788 316,011179 /erbacee-perenni/chrisantemum-coccineus/robin-red/ 0,387029 34,309344 /erbacee-perenni/chrysantemum/weirichii/ 1,040353 261,030125 /erbacee-perenni/cimicifuga/racemosa/ 0,364126 26,361224 /erbacee-perenni/convallaria-japonica/nana/ 0,482505 67,441941 /erbacee-perenni/coreopsis/grandiflora-aureo-marginata/ 0,477275 65,077949 /erbacee-perenni/coreopsis/verticillata-grandiflora/ 1,244313 330,377832 È importante notare come l'algoritmo abbia cercato di distribuire in maniera più omogenea il rank complessivo del sito. Nella tabella con i risultati finali sono evidenziati in rosso i valori più significativi.
  • 8. Le pagine che sono presenti nel menù come è facile immaginare sono quelle con maggiore rank, sia prima che dopo. Tuttavia il loro rank è stato abbassato in favore delle pagine obiettivo. Ovviamente questo comportamento può essere pilotato in base alle esigenze. In questo particolare caso per il cliente era importante aumentare il rank delle pagine che contengono la descrizione della pianta, di conseguenza, l' algoritmo si è evoluto in questa direzione. A seguito potete vedere come sono stati posizionati i link aggiuntivi calcolati dal processo: Sebastiano Galazzo 18 novembre 2008 sebastiano.galazzo@gmail.com