Sei sulla pagina 1di 15

Aida Picone 1611878, Cs.

di Comunicazione,
tecnologie e culture digitali
ALBERI, ALGORITMI E RETI


1. PACCHETTO IP.

1.1 Storia di Internet.
Internet non altro che levoluzione di un sistema creato nel 1969. In quellanno un organismo del
Dipartimento della Difesa americano (DARPA) svilupp un semplice sistema per lo scambio di informazioni
di interesse militare tra scienziati e ricercatori situati in luoghi geografici differenti, allestendo una semplice
rete di quattro computers chiamata DARPANET. Lintenzione dei ricercatori del Dipartimento della Diesa
era quello di realizzare una rete di interconnessione che riuscisse sempre ad assolvere i propri compiti, anche
in situazioni in cui una qualsiasi porzione di essa diventasse inutilizzabile a causa di un qualunque evento
distruttivo. Infatti, la rete venne progettata in modo che i dati, anche se appartenenti alla stessa sessione
trasmissiva, potevano seguire cammini diversi per raggiungere la destinazione. Negli anni che seguirono il
sistema prese il nome di ARPANET e nel 1972 era cresciuto fino a comprendere 37 computer.
Nonostante il lavoro che lOrganizzazione per la Standardizzazione Internazionale stava portando avanti da
diversi anni per la progettazione di un protocollo standard di comunicazione per le reti di calcolatori, i
progettisti dell Internet Protocol, rispondendo alle richieste del mercato, cominciarono ad istallare il loro
software TCP/IP su computer di ogni tipo, permettendo finalmente la comunicazione fra macchine di diversi
costruttori.
Nel 1983 nasce MILnet, una rete ad uso esclusivamente militare, mentre ARPANET, dedicata alla ricerca
sperimentale e con la possibilit di colloquiare con MILnet attraverso IP, prende definitivamente il nome di
internet.
La struttura di internet si articola su tre livelli: il CORE, la struttura portante della rete, costituito da
collegamenti ad altissima velocit che interconnette i centri di supercalcolo; le RETI DI ACCESSO
connettono gli utenti finali alle reti regionali o al backbone; le RETI REGIONALI finanziate da enti regionali
o gestite da societ private che fungono da collettore allutenza per ciascuna area geografica, con nodi
connessi a 2 Mbit/s o 64 Kbit/s e collegamenti dedicati che le connettono al backbone principale.

1.2 TCP/IP.
Lavvento del protocollo TCP/IP segn definitivamente il decollo di Internet come rete delle reti. In
telecomunicazioni e informatica il Transmission Control Protocol (TCP), anche chiamato Transfer Control
Protocol, un protocollo di rete a pacchetto di livello di trasporto, appartenente alla suite di protocolli
Internet, che si occupa di controllo di trasmissione ovvero rendere affidabile la comunicazione dati in rete tra
mittente e destinatario. definito nella RFC 793 e su di esso si appoggiano gran parte delle applicazioni
della rete Internet.
presente solo sui terminali di rete (host) e non sui nodi interni di commutazione della rete di trasporto,
implementato come strato software di rete allinterno del rispettivo sistema operativo ed il sistema terminale
in trasmissione vi accede automaticamente dal browser attraverso luso di opportune chiamate di sistema
definite nelle API di sistema.
Il TCP pu essere classificato al livello trasporto (OSI level 4) del modello di riferimento OSI, e di solito
usato in combinazione con il protocollo di livello rete (OSI level 3) IP. La corrispondenza con il modello
OSI non perfetta, in quanto il TCP e lIP nascono prima del suddetto modello. La loro combinazione
indicata come TCP/IP e, alle volte, erroneamente considerata un unico protocollo. Da qui, la difficolt di

una classificazione univoca per un protocollo che comprende, a pieno titolo, due livelli dello stack OSI (o
pila ISO/OSI in italiano).

In linea con i dettami del livello di trasporto stabiliti dal modello ISO-OSI e con lintento di superare il
problema della mancanza di affidabilit e controllo della comunicazione sorto con linterconessione su vasta
scala di reti locali in ununica grande rete geografica, TCP stato progettato e realizzato per utilizzare i
servizi offerti dai protocolli di rete di livello inferiore (IP e protocolli di livello fisico e livello datalink) che
definiscono efficacemente il modo di trasferimento sul canale di comunicazione, ma che non offrono alcuna
garanzia di affidabilit sulla consegna in termini di ritardo, perdita ed errore dei pacchetti informativi
trasmessi, sul controllo di flusso tra terminali e sul controllo della congestione di rete, supplendo quindi ai
problemi di cui sopra e costruendo cos un canale di comunicazione affidabile tra due processi applicativi di
rete.
Il canale di comunicazione cos costruito costituito da un flusso bidirezionale di byte a seguito
dellinstaurazione di una connessione agli estremi tra i due terminali in comunicazione. Inoltre alcune
funzionalit di TCP sono vitali per il buon funzionamento complessivo di una rete IP. Sotto questo punto di
vista TCP pu essere considerato come un elemento di rete che si occupa di garantire una qualit di servizio
minima su una rete IP sotto che di tipo best-effort.

Il TCP nacque nel 1970 come frutto del lavoro di un gruppo di ricerca del dipartimento di difesa statunitense.
I suoi punti di forza sono lalta affidabilit e robustezza. La sua popolarit si deve anche grazie ad una sua
implementazione diffusa dalla Universit di Berkeley, rilasciata in California sotto forma di sorgenti (TCP
Berkeley). Molte tuttavia sono le implementazioni e sviluppi che si sono succedute nel tempo come
evoluzioni e miglioramenti (es. TCP Tahoe, TCP Reno, TCP New Reno).
TCP un protocollo orientato alla connessione, ovvero prima di poter trasmettere dati deve stabilire la
comunicazione, negoziando una connessione tra mittente e destinatario, che rimane attiva anche in assenza di
scambio di dati e viene esplicitamente chiusa quando non pi necessaria. Esso quindi possiede le funzionalit
per creare, mantenere e chiudere/abbattere una connessione.
Il servizio offerto da TCP il trasporto di un flusso di byte bidirezionale tra due applicazioni in esecuzione
su host differenti. Il protocollo permette alle due applicazioni di trasmettere contemporaneamente nelle due
direzioni, quindi il servizio pu essere considerato Full-duplex anche se non tutti i protocolli applicativi
basati su TCP utilizzano questa possibilit.
Il flusso di byte viene frazionato in blocchi per la trasmissione dallapplicazione a TCP (che normalmente
implementato allinterno del sistema operativo), per la trasmissione allinterno di segmenti TCP, per la
consegna allapplicazione che lo riceve, ma questa divisione in blocchi non necessariamente la stessa nei
diversi passaggi.
TCP garantisce che i dati trasmessi, se giungono a destinazione, lo facciano in ordine e una volta sola (at
most once). Pi formalmente, il protocollo fornisce ai livelli superiori un servizio equivalente ad una
connessione fisica diretta che trasporta un flusso di byte. Questo realizzato attraverso vari meccanismi di
acknowledgment e di ritrasmissione su timeout.
TCP offre funzionalit di controllo di errore sui pacchetti pervenuti grazie al campo checksum contenuto
nella sua PDU.

TCP possiede funzionalit di controllo di flusso tra terminali in comunicazione e controllo della congestione
sulla connessione, attraverso il meccanismo della finestra scorrevole. Questo permette di ottimizzare
lutilizzo della rete anche in caso di congestione, e di condividere equamente la capacit disponibile tra
diverse sessioni TCP attive su un collegamento.
TCP fornisce un servizio di multiplazione delle connessioni su un host, attraverso il meccanismo delle porte.

Le principali differenze tra TCP e UDP (User Datagram Protocol), laltro principale protocollo di trasporto
della suite di protocolli Internet, sono:

mentre TCP un protocollo orientato alla connessione, pertanto per stabilire, mantenere e chiudere
una connessione, necessario inviare pacchetti di servizio i quali aumentano loverhead di
comunicazione. Al contrario, UDP senza connessione ed invia solo i datagrammi richiesti dal
livello applicativo;
UDP non offre nessuna garanzia sullaffidabilit della comunicazione ovvero sulleffettivo arrivo dei
datagrammi, sul loro ordine in sequenza in arrivo, al contrario il TCP tramite i meccanismi di
acknowledgement e di ritrasmissione su timeout riesce a garantire la consegna dei dati, anche se al
costo di un maggiore overhead (raffrontabile visivamente confrontando la dimensione delle
intestazioni dei due protocolli);
loggetto della comunicazione di TCP il flusso di byte mentre quello di UDP il singolo
datagramma.
Lutilizzo del protocollo TCP rispetto a UDP , in generale, preferito quando necessario avere garanzie
sulla consegna dei dati o sullordine di arrivo dei vari segmenti (come per esempio nel caso di trasferimenti
di file). Al contrario UDP viene principalmente usato quando linterazione tra i due host idempotente o nel
caso si abbiano forti vincoli sulla velocit e leconomia di risorse della rete (es. instant messaging).
La PDU di TCP detta segmento. Ciascun segmento viene normalmente imbustato in un pacchetto IP, ed
costituito dallintestazione (header) TCP e da un carico utile (in inglese payload), ovvero dati di livello
applicativo. I dati contenuti nellintestazione costituiscono un canale di comunicazione tra le due entit TCP,
che viene utilizzato per realizzare le funzionalit dello strato di trasporto e non accessibile agli strati dei
livelli superiori.

1.3 OSI.
In telecomunicazioni e informatica lOpen Systems Interconnection (meglio conosciuto come modello
ISO/OSI) uno standard de iure per reti di calcolatori stabilito nel 1978 dallInternational Organization for
Standardization (ISO), il principale ente di standardizzazione internazionale, che stabilisce per larchitettura
logica di rete una struttura a strati composta da una pila di protocolli di comunicazione suddivisa in 7 livelli,
i quali insieme espletano in maniera logico-gerarchica tutte le funzionalit della rete.

Lorganizzazione sent la necessit[1] di produrre una serie standard per le reti di calcolatori ed avvi il
progetto OSI (Open Systems Interconnection), un modello standard di riferimento per linterconnessione di
sistemi di computer. Il documento che illustra tale attivit il Basic Reference Model di OSI, noto come

standard ISO 7498[2]. A livello implementativo lo standard de facto affermatosi per architetture di rete a
livelli il TCP/IP che riprende in parte il modello OSI.
Il modello ISO/OSI, concepito per reti di telecomunicazioni a commutazione di pacchetto, costituito da una
pila (o stack) di protocolli attraverso i quali viene ridotta la complessit implementativa di un sistema di
comunicazione per il networking. In particolare ISO/OSI costituito da strati (o livelli), i cosiddetti layer,
che definiscono e racchiudono in s a livello logico uno o pi aspetti fra loro correlati della comunicazione
fra due nodi di una rete. I layers sono in totale 7 e vanno dal livello fisico (quello del mezzo fisico, ossia del
cavo o delle onde radio) fino al livello delle applicazioni, attraverso cui si realizza la comunicazione di alto
livello [1].

Ogni layer individua un protocollo di comunicazione del livello medesimo. ISO/OSI realizza una
comunicazione per livelli, cio dati due nodi A e B, il livello n del nodo A pu scambiare informazioni col
livello n del nodo B, ma non con gli altri. Ogni livello in trasmissione realizza la comunicazione col livello
corrispondente sui nodi di transito o destinatari usando il SAP (service access point) del livello
immediatamente sottostante. Sicch ISO/OSI incapsula i messaggi di livello n in messaggi del livello n-1.
Cos se A deve inviare, ad esempio, una e-mail a B, lapplicazione (liv. 7) di A propagher il messaggio
usando il layer sottostante (liv. 6) che a sua volta user il SAP del layer inferiore, fino ad arrivare alla
comunicazione ovvero alla trasmissione sul canale o mezzo fisico trasmissivo.

In tal modo si realizza una comunicazione multilivello che consente, ad esempio, di implementare algoritmi
diversi per linstradamento in rete pur disponendo di protocolli di trasporto connessi e scegliere ed adattare
protocolli e relativi algoritmi alla particolare rete di telecomunicazioni da realizzare. Tutto ci conferisce
modularit al sistema con maggiore semplicit di progettazione e gestione della rete ovvero possibilit di
migliorare, sviluppare e dunque eventualmente sostituire i protocolli dei vari strati cio implementare e
reimplementare con dei protocolli ciascuna delle rispettive funzionalit logiche lasciando inalterate le
funzioni altrui.

Al fine di ottenere un miglioramento dellattuale modello pu risultare interessante la possibilit di trarre
vantaggio da uno scambio di informazioni nellambito della stessa pila protocollare, tra gli strati non
adiacenti.[3] Questa possibilit, che sta riscuotendo un notevole interesse negli ultimi anni[senza fonte],
prende il nome di Cross-Layer (CL), ed interessante soprattutto nelle comunicazioni radio per la natura
stessa variabile del mezzo trasmissivo. Lidea fondamentale del concetto Cross-layer di introdurre la
capacit, nei vari protocolli di comunicazione, di scambiarsi informazioni per adattarsi agli specifici stati del
collegamento della rete. A differenza del modello OSI classico, non si vogliono pi prendere solo delle
contromisure preventive o meccanismi di controllo successivi ad un determinato evento verificatosi nella
rete, bens si cerca di decidere in modo interattivo con essa sfruttando le informazioni comuni a tutti gli
strati.

1.4 Indirizzamento IP.
In telecomunicazioni e informatica Internet Protocol (IP) un protocollo di rete appartenente alla suite di
protocolli Internet TCP/IP su cui basato il funzionamento della rete Internet.


un protocollo di interconnessione di reti (Inter-Networking Protocol), classificato al livello di rete (3) del
modello ISO/OSI, nato per interconnettere reti eterogenee per tecnologia, prestazioni, gestione, pertanto
implementato sopra altri protocolli di livello collegamento, come Ethernet o ATM.
un protocollo a pacchetto senza connessione e di tipo best effort nel senso che fa il massimo di quello che
pu fare senza garantire alcuna forma di affidabilit della comunicazione in termini di controllo di errore,
controllo di flusso e controllo di congestione a cui quindi dovranno supplire i protocolli di trasporto di livello
superiore (livello 4) quale ad esempio TCP.
La versione correntemente usata del protocollo IP detta anche IPv4 per distinguerla dalla pi recente IPv6,
nata dall'esigenza di gestire meglio il crescente numero di computer (host) connessi ad Internet.
l principale compito di IP l'Indirizzamento e l'instradamento (commutazione) tra sottoreti eterogenee, che a
livello locale utilizzano invece un indirizzamento proprio, tipicamente basato sull'indirizzo fisico o indirizzo
MAC e protocolli di livello datalink (2) del modello ISO-OSI (es. Ethernet, Token ring, Token bus). Per far
ci necessario assegnare un nuovo piano di indirizzamento a cui tutte le sottoreti devono sottostare per
poter comunicare e interoperare tra loro: tale piano rappresentato proprio dal Protocollo IP. Questo
comporta infatti:
l'assegnazione a ciascun terminale che ne fa richiesta (cio si connette alla rete Internet) di un nuovo
diverso indirizzo, univocamente associato all'indirizzo MAC locale, detto Indirizzo IP (tramite
protocolli RARP, BOOTP o DHCP);
la definizione delle modalit o procedure tese a individuare il percorso di rete per interconnettere due
qualunque sottoreti durante una comunicazione tra host sorgente di una certa sottorete e host
destinatario di un'altra sottorete, cui l'indirizzo IP appartiene. La conoscenza di questo percorso di
rete comporta a sua volta l'assegnazione e la conoscenza dell'indirizzo IP a ciascun commutatore
(router) che collega la rete dell'host emittente con quella dell'host destinatario, cio quindi la
conoscenza della sequenza di tutti i router di tutte le sottoreti da attraversare.
In sostanza dunque IP rappresenta la "colla" che unisce tra loro tutte le varie sottoreti eterogenee, a livello di
indirizzamento\instradamento, permettendone il dialogo o scambio di informazioni tra loro cio l'interlavoro
(internetworking) o interoperabilit in fatto di trasmissione. Rimane invece compito delle singole sottoreti
occuparsi di instradare, tramite i protocolli locali di livello 2, verso il successivo commutatore se la rete
locale attraversata solamente una rete di transito lungo il percorso verso un'altra sottorete di destinazione
oppure instradare verso l'Indirizzo MAC locale dell'host destinatario, cui associato l'indirizzo IP
destinatario, se la sottorete la sottorete finale risolvendo l'indirizzo IP dell'host in indirizzo MAC tramite
protocollo ARP. Sotto questo punto di vista (che coincide con la nascita e lo sviluppo storico di Internet) si
parla comunemente di integrazione nell'architettura logico-protocollare delle sottoreti del protocollo IP.
In generale dunque l'instradamento in Internet pu essere diretto (o locale) (direct forwarding) se deve essere
attraversata una sola sottorete fisica cio l'host destinatario fa parte della stessa sottorete dell'host sorgente
oppure indiretto (indirect forwarding) se devono essere attraversate pi di una sottorete ovvero se l'host
destinatario non appartiene alla stessa sottorete dell'host sorgente. Per quanto detto precedentemente
quest'ultimo tipo di indirizzamento altro non che una successione di instradamenti diretti.
Anche se l'indirizzamento indiretto altro non che una successione di instradamenti diretti tramite i
protocolli locali di trasporto di livello 2, in generale operare un indirizzamento di livello 3 tramite i soli
indirizzi MAC, pur essendo questi univoci per ciascun terminale host, non sarebbe stato possibile perch essi
non danno vita ad un piano di indirizzamento gerarchico cio gli indirizzi MAC, il cui assegnamento

pseudo-casuale, non sono raggruppabili in sottoreti con lo stesso prefisso identitificativo come invece lo sono
gli indirizzi Host_IP. In altri termini esisterebbero notevoli problemi di scalabilit nell'implementare tabelle
di instradamento indicizzate non per identificativi di sottoreti (Net_ID), ma per ciascun indirizzo MAC
esistente.
All'interno di una rete IP, ad ogni interfaccia connessa alla rete fisica viene assegnato un indirizzo univoco.
L'indirizzo IP assegnato propriamente all'interfaccia (ad esempio una scheda di rete) e non all'host, perch
questa ad essere connessa alla rete. Un router, ad esempio, ha diverse interfacce e per ognuna occorre un
indirizzo IP.
Pacchetto IP
Nel pacchetto IP, cio la sua PDU detta anche datagramma, i campi pi importanti sono:
Version: Indica la versione del protocollo (IPv4 / IPv6);
Header Lenght: lunghezza dell'header;
Total Length: Lunghezza totale del pacchetto IP;
TOS: gestione priorit e QoS;
Protocol number: Questo campo indica quale protocollo di alto livello stato usato per creare le
informazioni immagazzinate nella porzione di dati del pacchetto;
Time-to-live: Tempo di vita del pacchetto. Il TTL un numero che viene decrementato ogni volta che il
pacchetto IP percorre un nodo di rete fino ad arrivare a zero. Se il TTL arriva a zero vuol dire che il
pacchetto non riuscito ad arrivare a destinazione ed stato scartato per evitare di appesantire il traffico
inutilmente; si utilizza per evitare possibili cicli infiniti di instradamento.
Identification: identifica in modo univoco tutti i frammenti di un pacchetto;
Fragment Offset: indica il numero di byte di dati presenti nel pacchetto ad esso precedente. Se il
frammento il primo o univoco uguale a 0;
Header Checksum: checksum in complemento a 1;
Source IP address: Indirizzo IP del mittente;
Destination IP address: Indirizzo IP del destinatario;
Padding: bit riempitivi (0) per riallearsi su multipli di 32 bit;
Data: dati da inviare (carico utile).

Host
Un host un calcolatore che utilizza una rete IP. Un host ha normalmente una interfaccia attiva, configurata
con un indirizzo IP (configurato manualmente oppure ricevuto tramite protocolli automatici come DHCP o
PPP). Questo indirizzo caratterizzato da una subnet mask, che permette di calcolare se un altro indirizzo IP
appartiene alla stessa sottorete oppure no. Inoltre lo strato IP configurato con l'indirizzo IP del gateway.

Instradamento
Estratto l'indirizzo IP dal pacchetto (datagramma IP), mettendo in AND l'indirizzo IP e la subnet-mask si
ottiene l'indirizzo di Net_Id che individua la sottorete di destinazione: se tale indirizzo coincide con quello
dell'interfaccia del router si ha instradamento diretto all'interno della stessa sottorete dopo risoluzione
IP/MAC tramite protocollo ARP, se invece la Net_ID calcolata non corrisponde a nessuna interfaccia del
router verso le rispettive sottoreti interconnesse, dopo l'indirizzamento ottenuto tramite consultazione della
tabella di routing, si ha instradamento indiretto ovvero il router utilizza l'instradamento diretto (locale) di

livello 2 tramite protocollo ARP per inviare il pacchetto verso il gateway o il successivo router (next hop) il
quale proceder per successivi salti di instradamento fino alla sottorete di destinazione sempre seguendo le
informazioni di instradamento contenute nelle tabelle di routing dei rispettivi router, a loro volta create e
aggiornate dinamicamente dai protocolli di routing.
Suddividere l'instradamento in due parti distinte, instradamento per sottorete (Net_Id) e instradamento finale
per host (Host_Id), fa parte dunque del piano gerarchico di instradamento secondo IP e ha fondamentalmente
ragioni pratico-implementative oltre che di efficienza: non sarebbe infatti possibile instradare pacchetti
unicamente secondo l'intero indirizzo IP (o anche l'indirizzo MAC) dell'host in quanto le tabelle di routing
avrebbero dimensioni ingestibili da parte dei processi di elaborazione sui router. A tale problema si aggiunge
inoltre il fatto che gli indirizzi IP Host_Id sono molto spesso assegnati in maniera dinamica.

Gateway o Router
Questi dispositivi possiedono pi interfacce e collegano tra loro sottoreti diverse, inoltrando pacchetti IP da
una all'altra. Per decidere su quale interfaccia inviare un pacchetto ricevuto, cercano l'indirizzo destinazione
del pacchetto in una tabella di routing, che nei casi non banali viene gestita dinamicamente tramite uno o pi
Protocolli di routing.

2. GRAFI AD ALBERO.
2.1 Definizione.
Si dice albero un grafo G connesso, non orientato e senza cicli. Per essere tale, il grafo deve rispettare
almeno una delle seguenti richieste:
Possedere un solo cammino per ogni coppia di vertici.
Essere aciclico massimale ossia, se gli si aggiunge un altro spigolo per unire due suoi nodi si forma
un ciclo.
Costituire un grafo connesso minimale ossia, se si rimuove un suo spigolo si perde la connessione.

Se G ha un numero finito di n vertici, gli enunciati precedenti sono equivalenti ai due che seguono:
G connesso e possiede n 1 spigoli.
G aciclico e possiede n 1 spigoli.

Si pu definire albero un grafo connesso tale che eliminando uno qualsiasi dei suoi spigoli si perde la
connessione. Un albero si pu quindi apprezzare come grafo connesso economico, in quanto mantiene la
connessione impiegando il minimo numero possibile di spigoli.

Si pu poi definire albero un grafo aciclico tale che aggiungendo uno spigolo tra due suoi nodi non
direttamente connessi si introduce necessariamente un ciclo. Un albero quindi si pu apprezzare come grafo
aciclico con il maggior numero possibile di connessioni.


Dato un grafo non orientato G = <V,E> si definisce albero di copertura di G un albero T = <V',> tale che V'
= V e un sottoinsieme di E. Se G non connesso tale albero non esiste.

Si definisce foresta un grafo non orientato aciclico. L'insieme delle foreste include propriamente l'insieme
degli alberi, in quanto le foreste connesse sono gli alberi e vi sono foreste non connesse (facilmente
individuabili). In una foresta, oltre a eventuali nodi isolati, vi sono sicuramente nodi di valenza 1 che
vengono chiamati nodi pendenti: infatti, preso un nodo q qualsiasi, se si individua un cammino che inizia in
q cercando di estenderlo progressivamente, ad un certo punto si incontra un nodo di valenza 1, perch in caso
contrario si costruirebbe un ciclo, contro l'aciclicit delle foreste. In un albero si trova quindi un nodo
pendente. Se si elimina un tale nodo e lo spigolo che incide in esso si ottiene ancora un albero, perch si
mantiene la sua connessione e la sua aciclicit. Procedendo con queste eliminazioni si deve arrivare a un
grafo nodo. Il grafo nodo costituito da un nodo e nessuno spigolo, un albero (ed anche una foresta).

2.2 Composizione.



Il punto che si trova al vertice (1) si chiama radice di un albero. Il punti successivi (2, 3, 4, 5, 6, 7, 8 e 9)
vengono chiamati nodi. I collegamenti che vi sono tra i vari nodi vengono chiamati rami e successivamente,
il livello pi basso dellalbero, quello su cui si accede direttamente al file (10, 11, 12, 13, 14, 15, 16 e 17) si
chiamano Foglia grafo.

2.3 Ricerca in ampiezza.
Nella teoria dei grafi, la ricerca in ampiezza (in inglese breadth-first search, BFS) un algoritmo di ricerca
per grafi che partendo da un vertice (o nodo) detto sorgente permette di cercare il cammino fino ad un altro
nodo scelto e connesso al nodo sorgente.
Algoritmo
BFS un metodo di ricerca non informato, ed ha il suo obiettivo quello di espandere il raggio d'azione al fine
di esaminare tutti i nodi del grafo sistematicamente, fino a trovare il nodo cercato. In altre parole, se il nodo
cercato non viene trovato, la ricerca procede in maniera esaustiva su tutti i nodi del grafo. Questo algoritmo
non di tipo euristico.
Il procedimento da seguire per metterlo in pratica sintetizzato come segue:
1. Mettere in coda il nodo sorgente.
2. Togliere dalla coda un nodo (nella prima iterazione il nodo sorgente) ed esaminarlo.
Se l'elemento cercato trovato in questo nodo viene restituito il risultato e la ricerca si interrompe.
Se l'elemento cercato non era in questo nodo mettere in coda tutti i successori non ancora visitati del
nodo in analisi.
3. Se la coda vuota, ogni nodo nel grafo stato visitato e l'elemento non stato trovato perch non presente
e quindi la ricerca si interrompe.
4. Se la coda non vuota si ripete il passo 2.
Se si volesse restituire l'albero breadth-first sarebbe necessario tenere nota di tutti i nodi visitati e del
predecessore tramite il quale si arrivati a loro. A tale scopo, a seconda dello stadio di elaborazione,
sarebbe utile marcare i nodi con delle etichette quali "visitato", "in corso di visita" e "non visitato".

2.4 Ricerca in profondit.
Nella teoria dei grafi, Ricerca in profondit, in inglese depth-first search (DFS), un algoritmo di ricerca su
alberi e grafi. A differenza di breadth-first search, ha la caratteristica di essere intrinsecamente ricorsivo. Il
nome deriva dal fatto che in un albero, ancora prima di avere visitato i nodi delle prime generazioni,
l'algoritmo pu ritrovarsi a visitare vertici lontani dalla radice, andando cos "in profondit". Non a caso, se
fatto girare su un grafo, l'algoritmo individua un albero che ne un sottografo (ovvero che ne contiene tutti i
vertici e tutti e soli gli archi che sono stati seguiti). Possiamo vedere l'algoritmo come una visita in ampiezza
in cui invece che una coda utilizziamo una pila (ovvero invece di aggiungere gli elementi nuovi in fondo li
aggiungiamo in cima). La strategia di ricerca esplora il grafo andando, in ogni istante dell'esecuzione
dell'algoritmo, il pi possibile in profondit.


2.5 Backtraking.
Il backtracking (in italiano, ritorno all'indietro) una tecnica per trovare soluzioni a problemi in cui devono
essere soddisfatti dei vincoli. Questa tecnica enumera tutte le possibili soluzioni e scarta quelle che non
soddisfano i vincoli.Una tecnica classica consiste nell'esplorazione di strutture ad albero e tenere traccia di
tutti i nodi e i rami visitati in precedenza, in modo da poter tornare indietro al pi vicino nodo che conteneva
un cammino ancora inesplorato nel caso che la ricerca nel ramo attuale non abbia successo. I nodi a
profondit uguale rappresentano i possibili valori di una variabile.Una applicazione del backtracking nei
programmi per giocare a scacchi, che generano tutte le mosse possibili per una profondit di N mosse a
partire da quella attuale e poi esaminano con il backtracking le varie alternative, selezionando alla fine quella
migliore.Il backtracking ha una complessit esponenziale, quindi poco efficiente nell'affrontare problemi
che non siano NP-completi. In generale, comunque, l'algoritmo integra euristiche che permettono di
diminuirne la complessit.
Questa tecnica alla base del linguaggio di programmazione Prolog.
I possibili tipi di backtracking sono molti, con funzionamento diverso, caratteristiche diverse e vantaggi
diversi. I pi conosciuti sono:
Backtracking cronologico (BT).
Backjumping (BJ).
Conflict-Directed backjumping (CBJ).
Forward checking with simple backtracking (FC).
Backmarking with simple backtracking (BM).
I primi quattro algoritmi vengono definiti algoritmi fondamentali, in quanto rappresentano diverse filosofie
di base e diversi metodi per mettere in pratica il backtracking; mentre l'ultimo invece un noto esempio di
algoritmo ibrido, cio un algoritmo che pu essere considerato una variazione degli algoritmi fondamentali,
ma che proprio per la sua differenza dagli algoritmi da cui deriva pu portare numerosi vantaggi.

2.6 Trees Visualizer.
Lesplorazione di modelli per la visualizzazione dei dati un campo in costante evoluzione sul quale
lavorano diversi ricercatori per trovare soluzioni interessanti a questo problema. In questo contesto si
inserisce lalgoritmo scoperto da Giulia Massini per la visualizzazione automatica dei grafi ad albero.
Lalgoritmo, a cui stato dato il nome di Trees Visualizer, in grado di disegnare grafi, anche molto
complessi, individuando sempre la visualizzazione pi opportuna per non creare incroci tra i rami. Nella
figura sottostante si pu vedere un esempio della capacit di visualizzazione del sistema.
Il grafo ad albero fornisce una rappresentazione di una popolazione composta di 1.120 soggetti arrestati per
traffico di droga nella citt di Londra. Ogni punto del grafo rappresenta un individuo, le linee mostrano le
relazioni esistenti fra tutti gli individui. Il processo di elaborazione che ha prodotto questo grafo stato
generato utilizzando i sistemi Auto-CM e MST. Analizzando un grafo di questo tipo il ricercatore pu
esplorare facilmente linsieme di relazioni che connettono gli individui, facendo emergere osservazioni non
facilmente evidenziabili con altri metodi.



Il Softwere
Anche in questo caso stato sviluppato un software che implementa lalgoritmo, che ha preso lo stesso
nome Trees Visualizer. Mostriamo di seguito la schermata iniziale del software.



La schermata successiva mostra lelaborazione sui 1.120 individui prima della loro ristrutturazione spaziale.
Una funzione molto utile allanalisi dei nodi costituita dalla possibilit di esplorare interamente il grafo
visualizzando le etichette di tutti i suoi componenti, sia quando appaiono come soggetti, sia quando appaiono
come variabili.



Ad esempio, se i vertici di un grafo rappresentano gli r record di un Database composto da n variabili, allora
possibile esplorare il grafo potendo evidenziare:
- il vertice relativo ad ogni singolo record;
- i vertici relativi a quei record che presentano una o pi variabili.
Nella videata che segue viene mostrato un grafo MST sui dati dei 27 record, che compongono il Database
Gang. Si pu notare che sono evidenziati in giallo i vertici relativi al record Art e al record George che
sono spuntati nella sezione records. Nella videata successiva lo stesso grafo Grafo MST mostra,
evidenziandoli in verde i vertici relativi ai record che presentano la caratteristica di appartenere alla banda
degli Sharks.




3. LE PAN: Personal Area Network.
In telecomunicazioni una rete personale, in lingua inglese Personal Area Network, in sigla PAN, una rete
informatica utilizzata per permettere la comunicazione tra diversi dispositivi (telefono, PC tascabile, ecc.)
vicini a un singolo utente. I singoli dispositivi possono anche non appartenere all'utente in questione. Il
raggio di azione di una PAN tipicamente di alcuni metri. La PAN pu essere utilizzata per collegare i vari
dispositivi tra di loro in modo da consentire scambio di informazioni o per consentire la connessione a reti a
pi alto livello come per esempio Internet.Una PAN pu essere realizzata con collegamenti via cavo come
per esempio USB o FireWire. Oppure si possono utilizzare soluzioni wireless come IrDA o Bluetooth. Le
PAN Bluetooth sono chiamate anche piconet e queste sono composte al massimo da otto dispositivi in
relazione master-slave (o fino a 255 dispositivi in modalit "parcheggio"). Il primo dispositivo Bluetooth il
master mentre i successivi diventano slave. Una rete piconet ha un raggio tipico di 10 metri ma si possono
collegare pi piconet utilizzando un dispositivo che appartenendo a entrambi le piconet fa da ponte, in questo
caso la rete che si viene a creare chiamata scatternet.






Bibliografia.
Appunti sul pacchetto IP e sulla storia di internet; Elementi di Informatica per le scienze sociali Angela
Scaringella.
Definizione di pacchetto IP, TPC/IP, OSI; Wikipedia, enciclopedia libera -
http://it.wikipedia.org/wiki/Internet_Protocol
Definizione di Grafo ad albero; Wikipedia, enciclopedia libera -
http://it.wikipedia.org/wiki/Albero_(grafo)
Appunti sulla ricerca dei grafi ad albero; Wikipedia, enciclopedia libera -
http://it.wikipedia.org/wiki/Ricerca_in_ampiezza
http://it.wikipedia.org/wiki/Ricerca_in_profondit%C3%A0
Appunti sullapplicazione dei grafi ad albero; Wikipedia, enciclopedia libera -
http://www.semeion.it/semeion2/index.php/it/ricerca-di-base/progetti-di-ricerca-di-base/139-
visualizzazione-dei-grafi-ad-albero-tree-visualizer
Appunti sulle PAN; Wikipedia, enciclopedia libera - http://it.wikipedia.org/wiki/Personal_Area_Network

Potrebbero piacerti anche