Воронкін О.С. Віртуальний лабораторний практикум «Електричний струм». Наукові записки Малої академії наук України. Серія «Педагогічні науки» : [зб. наук. праць; редкол. : С.О. Довгий (голова), О.Є. Стрижак, О.В. Лісовий, І.М. Савченко та ін.]. – К. : 2018. – Вип. 13. – С. 38–59.
Воронкін О.С. Віртуальний лабораторний практикум «Електричний струм». Наукові записки Малої академії наук України. Серія «Педагогічні науки» : [зб. наук. праць; редкол. : С.О. Довгий (голова), О.Є. Стрижак, О.В. Лісовий, І.М. Савченко та ін.]. – К. : 2018. – Вип. 13. – С. 38–59.
Prezentacija obuhvaća utjecaj antike na renesansnu arhitekturu, konstruktivna rješenja, analizu Tempietta - idealne građevine i analizu renesansne palače Farnese.
Ibsen, Henrik: Nora / Lutkina kuća (norveški modernizam, moderna psihološka drama (drama), elementi drame s tezom, komorne drame, moderne građanske tragedije ili drame, 1879. g.)
I 6 gradi di separazione della cultura. Da CLAPie al resto del mondo.21Style
Come i GraphDB possono aiutare a connettere le persone, le cose e la conoscenza. Il caso CLAPie e come in questo progetto i grafi sono stati utili ad ampliare gli ambiti della ricerca e dell'analisi dei dati.
Questa presentazione presenta ad un pubblico non tecnico cosa sono i grafi e come possono essere utili a connettere tutto il sapere.
Six degrees of separations in cultural heritage. From CLAPie to the rest of the world. in this "GraphDB for dummies", we discuss how GraphDBs are useful to connect people, things and knowledge.
Cos'è CLAPie ?
CLAPIe si propone di attingere dagli archivi degli atlanti linguistici che hanno indagato l’area alpina piemontese e dei molti musei etnografici presenti nella stessa area al fine di recuperare, armonizzare e valorizzare i risultati di campagne di ricerca etnolinguistiche spesso di difficile reperibilità, sia per i ricercatori sia per i profani (operatori museali e scolastici, turisti). L’obiettivo principale del progetto consiste nel mettere in relazione questi archivi e i risultati di alcune indagini di ambito accademico sui musei etnografici e sul patrimonio culturale delle Alpi occidentali, attraverso l’attivazione di una rete interdisciplinare, in grado di connettere i saperi etnoantropologici con quelli linguistici. In questo modo ci si propone di elaborare nuove modalità di lettura del territorio alpino, le quali potranno diventare, a loro volta, una risorsa importante per uno sviluppo locale sostenibile (uso di nuovi strumenti educativi, promozione finalizzata al turismo con ricadute socio-economiche). Lo strumento di cui ci si doterà per la lettura e l’interpretazione del territorio è concepito come un contenitore di dati multimediali (documenti audiovisivi e fotografici, etnotesti, facili da consultare ed eventualmente implementabili) e di percorsi tematici guidati.
Prezentacija obuhvaća utjecaj antike na renesansnu arhitekturu, konstruktivna rješenja, analizu Tempietta - idealne građevine i analizu renesansne palače Farnese.
Ibsen, Henrik: Nora / Lutkina kuća (norveški modernizam, moderna psihološka drama (drama), elementi drame s tezom, komorne drame, moderne građanske tragedije ili drame, 1879. g.)
I 6 gradi di separazione della cultura. Da CLAPie al resto del mondo.21Style
Come i GraphDB possono aiutare a connettere le persone, le cose e la conoscenza. Il caso CLAPie e come in questo progetto i grafi sono stati utili ad ampliare gli ambiti della ricerca e dell'analisi dei dati.
Questa presentazione presenta ad un pubblico non tecnico cosa sono i grafi e come possono essere utili a connettere tutto il sapere.
Six degrees of separations in cultural heritage. From CLAPie to the rest of the world. in this "GraphDB for dummies", we discuss how GraphDBs are useful to connect people, things and knowledge.
Cos'è CLAPie ?
CLAPIe si propone di attingere dagli archivi degli atlanti linguistici che hanno indagato l’area alpina piemontese e dei molti musei etnografici presenti nella stessa area al fine di recuperare, armonizzare e valorizzare i risultati di campagne di ricerca etnolinguistiche spesso di difficile reperibilità, sia per i ricercatori sia per i profani (operatori museali e scolastici, turisti). L’obiettivo principale del progetto consiste nel mettere in relazione questi archivi e i risultati di alcune indagini di ambito accademico sui musei etnografici e sul patrimonio culturale delle Alpi occidentali, attraverso l’attivazione di una rete interdisciplinare, in grado di connettere i saperi etnoantropologici con quelli linguistici. In questo modo ci si propone di elaborare nuove modalità di lettura del territorio alpino, le quali potranno diventare, a loro volta, una risorsa importante per uno sviluppo locale sostenibile (uso di nuovi strumenti educativi, promozione finalizzata al turismo con ricadute socio-economiche). Lo strumento di cui ci si doterà per la lettura e l’interpretazione del territorio è concepito come un contenitore di dati multimediali (documenti audiovisivi e fotografici, etnotesti, facili da consultare ed eventualmente implementabili) e di percorsi tematici guidati.
Facebook Open Graph: Tutto il web in un Grafo! - Daniele Ghidoli - Be-wizard ...Daniele Ghidoli
Facebook Open Graph: tutto il Web in un grafo.
Facebook sta ormai fagocitando l'intero web, includendo all'interno del suo grafo sociale persone, pagine e siti web. Impariamo a conoscere, implementare ed utilizzare l'Open Graph in tutti gli aspetti: dal Like Button alle Ghost Pages, dal Social Graph alla nuova Timeline.
http://www.bigthink.it
Presentazione sulla teoria dei grafi a cura dell'Istituto Tecnico Economico”G.Calò” Francavilla Fontana (BR), http://www.itccalo.it, Docenti coordinatori: Rosaria Trisolino, Cosimo G. Massaro. Dirigente Scolastico: prof.ssa Maria Antonietta Todisco.
Questo articolo affronta l’estrazione dei dati dai due maggiori Social Network attualmente presenti: Facebook e Twitter. Con l’avvento dei Social Network ogni giorno viene generata e memorizzata una quantità enorme di informazioni. I Social Network rappresentano quindi una fonte potenzialmente infinita di dati degli utenti, i quali possono essere sfruttati sia a scopi scientifici sia a scopi commerciali. I Social Network, al fine di permettere lo sviluppo di un ecosistema di applicazioni attorno alla propria piattaforma, mettono a disposizione delle interfacce per permettere l’accesso ai dati dei propri utenti (nel rispetto della loro privacy). Tuttavia, poiché essi fondano il loro stesso modello di business su tali dati, ne consegue che le modalità di accesso ai dati e la quantità di dati estraibili dai Social Network è molto ridotta. In questo articolo si affrontano dapprima le modalità di accesso legale ai dati di Facebook e Twitter, presentando degli esempi pratici, e successivamente si affronta una discussione sulle modalità alternative (solitamente associate al Web Scraping) di estrazione dei dati dai Social Network. Si evidenziano perciò le limitazioni quantitative e qualitative delle interfacce d’accesso ai dati dei Social Network così come le limitazioni tecniche che permettono o impediscono l’estrazione dei dati non autorizzata.
Cammini di costo minimo: problemi e algoritmiMarco Liverani
Appunti sui problemi di calcolo del cammino di costo minimo su un grafo e sugli algoritmi per la risoluzione efficiente del problema.
[http://www.mat.uniroma3.it/users/liverani/doc/cammini-costo-minimo.pdf]
Prof. Pier Luca Lanzi discusses using data-driven game design and machine learning techniques like player modeling and gameplay analysis tools to balance multiplayer first-person shooters. He proposes using the distribution of kills and scores among players as a proxy to evaluate balancing. His research also looks at using AI to automatically design game maps and levels to improve balancing, as well as generative adversarial networks to generate new Doom levels.
Slides for the 2016/2017 edition of the Data Mining and Text Mining Course at the Politecnico di Milano. The course is also part of the joint program with the University of Illinois at Chicago.
Slides for the 2016/2017 edition of the Data Mining and Text Mining Course at the Politecnico di Milano. The course is also part of the joint program with the University of Illinois at Chicago.
Slides for the 2016/2017 edition of the Data Mining and Text Mining Course at the Politecnico di Milano. The course is also part of the joint program with the University of Illinois at Chicago.
Slides for the 2016/2017 edition of the Data Mining and Text Mining Course at the Politecnico di Milano. The course is also part of the joint program with the University of Illinois at Chicago.
Slides for the 2016/2017 edition of the Data Mining and Text Mining Course at the Politecnico di Milano. The course is also part of the joint program with the University of Illinois at Chicago.
Slides for the 2016/2017 edition of the Data Mining and Text Mining Course at the Politecnico di Milano. The course is also part of the joint program with the University of Illinois at Chicago.
Slides for the 2016/2017 edition of the Data Mining and Text Mining Course at the Politecnico di Milano. The course is also part of the joint program with the University of Illinois at Chicago.
DMTM Lecture 13 Representative based clusteringPier Luca Lanzi
Slides for the 2016/2017 edition of the Data Mining and Text Mining Course at the Politecnico di Milano. The course is also part of the joint program with the University of Illinois at Chicago.
Slides for the 2016/2017 edition of the Data Mining and Text Mining Course at the Politecnico di Milano. The course is also part of the joint program with the University of Illinois at Chicago.
Slides for the 2016/2017 edition of the Data Mining and Text Mining Course at the Politecnico di Milano. The course is also part of the joint program with the University of Illinois at Chicago.
Slides for the 2016/2017 edition of the Data Mining and Text Mining Course at the Politecnico di Milano. The course is also part of the joint program with the University of Illinois at Chicago.
This document discusses Naive Bayes classifiers and k-nearest neighbors (kNN) algorithms. It begins with an overview of Naive Bayes, including how it makes strong independence assumptions between attributes. Several examples are provided to illustrate Naive Bayes classification. The document then covers kNN, explaining that it is an instance-based learning method that classifies new examples based on their similarity to training examples. Parameters like the number of neighbors k and distance metrics are discussed.
Slides for the 2016/2017 edition of the Data Mining and Text Mining Course at the Politecnico di Milano. The course is also part of the joint program with the University of Illinois at Chicago.
2. Riferimenti
•
•
2
Bertossi Alan A., Montresor Alberto. “Algoritmi e
strutture di dati” (seconda edizione), CittàStudi 2010
Stanley B. Lippman, Barbara E. Moo, Josee Lajoie
“C++ Primer”, 5th Edition Addison-Wesley
Prof. Pier Luca Lanzi
4. Problemi Tipici su Grafi
•
•
•
•
•
4
Visite
Visite in ampiezza (cammini minimi singola sorgente)
Visite in profondità (ordinamento topologico,
componenti fortemente connesse)
Cammini minimi
Da singola sorgente
Fra tutte le coppie di vertici
Alberi di connessione minimi
Problemi di flusso
....
Prof. Pier Luca Lanzi
5. Grafi Orientati
•
5
Un grafo orientato G è definito dalla coppia (V, E)
V è l’insieme finito dei vertici
E è l’insieme degli archi (relazione binaria in V)
B
C
A
F
D
E
V = {A, B, C, D, E, F}
E = { (A,B), (A,D),(B,C),(D,C),(E,C), (D,E),(D,A) }
Prof. Pier Luca Lanzi
6. Grafi Non Orientati
•
6
Un grafo non orientato G è definito dalla coppia (V, E)
V è l’insieme finito dei vertici
E è l’insieme degli archi (coppie ordinate di elementi di
V)
B
C
A
F
D
E
V = {A, B, C, D, E, F}
E = { (A,B), (A,D), (B,C), (C,D),(C,E),(D,E) }
Prof. Pier Luca Lanzi
7. Definizioni: Incidenza e Adiacenza
•
•
•
7
In un grafo orientato
un arco (u,v) si dice incidente da u in v
In un grafo non orientato
la relazione di adiacenza tra vertici è simmetrica
Un vertice v si dice adiacente a u
se e solo se (u, v) ∈ E
(1,2) è incidente da 1 a 2
(1,4) è incidente da 1 a 4
(4,1) è incidente da 4 a 1
2
3
1
6
4
5
Prof. Pier Luca Lanzi
2 è adiacente ad 1
3 è adiacente a 2, 4, 5
1 è adiacente a 4 e viceversa
2 non è adiacente a 3,4
6 non è adiacente ad alcun
vertice
8. Componenti Fortemente Connesse
•
•
8
Terminologia
Componenti connesse (connected components, CC)
Componenti fortemente connesse
(strongly connected components, SCC)
Motivazioni
Molti algoritmi che operano sui grafi iniziano
decomponendo il grafo nelle sue componenti
L'algoritmo viene poi eseguito su ognuna delle
componenti
I risultati vengono poi ricomposti assieme
Prof. Pier Luca Lanzi
9. Grafi Connessi e Componenti Connesse
•
9
In un grafo non orientato G
G è connesso ⇔ esiste un cammino da ogni vertice ad ogni altro
vertice
Un grafo G’= (V’, E’) è una componente connessa di G ⇔
è un sottografo di G fortemente connesso e massimale
Definizioni
2
3
G’ è un sottografo di
A
G (G’⊆ G) se e solo se
1
V’⊆V e E’⊆ E
G’ è massimale ⇔ non esiste un
sottografo G” di G che sia
4
5
connesso e “più grande” di
G’, ovvero tale per cui G’⊆ G”⊆ G
•
6
Prof. Pier Luca Lanzi
10. Rappresentazione Grafi
•
•
•
10
Poniamo
n = |V| numero di nodi
m = |E| numero di archi
Matrice di adiacenza
Spazio richiesto O(n2)
Verificare se il vertice u è adiacente a v richiede tempo
O(1)
Elencare tutti gli archi costa O(n2)
Liste di adiacenza
Spazio richiesto O(n+m)
Verificare se il vertice u è adiacente a v richiede tempo
O(n)
Elencare tutti gli archi costa O(n+m)
Prof. Pier Luca Lanzi
14. Lista di Adiacenza:
Grafi Orientati
14
G.adj(u) = { v | (u,v) ∈ E }
Spazio: a*n + b*m
2
3
1
6
4
5
Prof. Pier Luca Lanzi
15. Liste di Adiacenza:
Grafi Non Orientati
15
G.adj(u) = { v | [u,v] ∈ E or [v,u] ∈ E}
2
3
A
1
6
4
5
Prof. Pier Luca Lanzi
Spazio: a*n + 2*b*m
a
b
16. Grafi Pesati
•
•
•
16
In alcuni casi ogni arco ha un peso (costo, guadagno) associato
Il peso può essere determinato tramite una funzione di costo
p: V ×V → R, dove R è l’insieme dei numeri reali
Quando tra due vertici non esiste un arco, il peso è infinito
1
3
1
1
7
6
8
4
5
Prof. Pier Luca Lanzi
*
1
*
*
3
*
4
*
*
*
*
4
*
4
7
*
4
4
3
3
3
*
2
2
3
1
4
2
1
*
4
*
8
*
*
*
7
8
*
*
*
*
*
*
*
*
5
6
4
5
6
17. Grado di un Vertice
•
•
17
In un grafo non orientato, il grado di un vertice è il numero
di archi che partono da esso
In un grafo orientato, il grado entrante (uscente) di un
vertice è il numero di archi incidenti in (da) esso
2
3
2
A
1
2
3
4
in : 2
out: 1
1
5 2
3
60
Prof. Pier Luca Lanzi
2
in : 1
out: 1
in : 2
out: 1
3
4
in : 2
out: 2
5
6
in : 0
out: 0
in : 1
out: 1
18. Cammini
•
•
18
In un grafo orientato G=(V,E)
un cammino di lunghezza k è una sequenza di vertici u0, u1, ..., uk
tale che (ui, ui+1) ∈ E per 0 ≤ i ≤ k–1
In un grafo non orientato G=(V,E)
un cammino di lunghezza k è una sequenza di vertici u0, u1, ..., uk
tale che
[ui, ui+1] ∈ E per 0 ≤ i ≤ k–1
2
3
1
4
Esempio: 1, 2, 3, 5, 4 è una
catena nel grafo con lunghezza 4
Un cammino (catena) si dice
semplice se tutti i suoi vertici sono
distinti (compaiono una sola volta
nella sequenza)
5
Prof. Pier Luca Lanzi
19. Cicli
•
•
19
In un grafo orientato G=(V,E)
un ciclo di lunghezza k è un cammino u0, u1, ..., uk tale che
(ui, ui+1) ∈ E per 0 ≤ i ≤ k–1, u0 = uk, e k>2
In un grafo non orientato G=(V,E)
un circuito di lunghezza k è una catena u0, u1, ..., uk tale che
[ui, ui+1] ∈ E per 0 ≤ i ≤ k–1, u0 = uk, e k>2
2
3
1
Esempio: 1, 2, 3, 5, 4, 1 è un
circuito con lunghezza 5
Un ciclo (circuito) si dice semplice se
tutti i suoi vertici sono distinti
(tranne ovviamente l’ultimo)
4
5
Prof. Pier Luca Lanzi
20. Grafi Aciclici
20
Un grafo orientato aciclico è detto
DAG (Directed Acyclic Graph)
2
3
1
Questo grafo è
aciclico
6
2
4
3
5
1
6
2
3
1
Questo grafo non è
aciclico
4
4
6
5
Prof. Pier Luca Lanzi
5
21. Grafo Completo
•
21
Grafo che ha un arco tra ogni coppia di vertici.
Questo grafo è completo
2
3
Questo grafo non è completo
1
2
3
1
4
4
5
Prof. Pier Luca Lanzi
5
22. Alberi
•
•
•
22
Un albero libero è un grafo non orientato connesso, aciclico
Se qualche vertice è detto radice, otteniamo un albero radicato
Un insieme di alberi è detta foresta
2
2
3
3
1
1
6
4
5
Prof. Pier Luca Lanzi
6
4
5
23. Alberi di Copertura
•
23
In un grafo non orientato G=(V, E), un albero di copertura
T è un albero libero T = (V, E’) composto da tutti i nodi di
V e da un sottoinsieme degli archi (E’⊆ E), tale per cui
tutte le coppie di nodi del grafo sono connesse da una
sola catena nell’albero.
2
3
1
6
4
Prof. Pier Luca Lanzi
5
24. Attraversamento Grafi
•
24
Definizione
Dato un grafo G=(V, E) ed un vertice r di V (detto sorgente o
radice), visitare ogni vertice raggiungibile nel grafo dal vertice r
Ogni nodo deve essere visitato una volta sola
•
•
Visita in ampiezza (breadth-first search)
Visita i nodi “espandendo” la frontiera fra nodi scoperti/da scoprire
Esempi: Cammini più brevi da singola sorgente
Visita in profondità (depth-first search)
Visita i nodi andando il “più lontano possibile” nel grafo
Esempi: Componenti fortemente connesse, ordinamento
topologico
Prof. Pier Luca Lanzi
25. Algoritmo Generico di Visita
25
•
•
Prof. Pier Luca Lanzi
S è l'insieme
frontiera
Il funzionamento
di
insert() e remove()
non è specificato
26. Visita in Ampiezza:
Breadth First Search (BFS)
•
•
•
26
Obiettivo: visitare i nodi a distanze crescenti dalla sorgente
Visitare i nodi a distanza k prima di visitare i nodi a distanza k+1
Generare un albero BF (breadth-first)
Albero contenente tutti i vertici raggiungibili da r e tale che il
cammino da r ad un nodo nell'albero corrisponde al cammino più
breve nel grafo
Applicazione
Calcolare la distanza minima da s a tutti i vertici raggiungibili
Numero di archi attraversati per andare da r ad un vertice
Prof. Pier Luca Lanzi
27. Visita in Ampiezza:
Breadth First Search (BFS)
27
•
•
Prof. Pier Luca Lanzi
Insieme S gestito
tramite una coda
Visitato[v]
corrisponde alla
marcatura del nodo v
28. Applicazione della BFS:
Numero di Erdös
•
•
Paul Erdös (1913-1996)
Matematico
Più di 1500 articoli, con più di 500 coautori
Numero di Erdös
Erdös ha erdös = 0
I co-autori di Erdös hanno erdös = 1
Se X ha scritto una pubblicazione
scientifica con un co-autore con erdös =
k, ma non con un co-autore con erdös <
k, X ha
erdös=k +1
Chi non è raggiunto da questa
definizione ha erdös = +∞
Vediamo un’applicazione di BFS per
calcolare il numero di Erdös
•
Prof. Pier Luca Lanzi
28
40. Albero dei Cammini BFS
•
40
La visita BFS può essere utilizzata per ottenere il cammino più breve
fra due vertici (numero di archi)
Albero di copertura di G radicato in r
Memorizzato tramite vettore dei padri p
Figli di u - nodi v tali che (u,v) ∈ E
e v non è ancora visitato
Prof. Pier Luca Lanzi
41. Algoritmo Generico di Visita
•
41
Alcune definizioni
L'albero T contiene i vertici visitati
S ⊆ T contiene i vertici aperti:
vertici i cui archi uscenti non sono ancora stati percorsi
T-S ⊆ T contiene i vertici chiusi:
vertici i cui archi uscenti sono stati tutti percorsi
V-T contiene i vertici non visitati
Se u si trova lungo il cammino che va da r al nodo v, diciamo che
u è un antenato di v, v è un discendente di u
•
Alcune cose da notare:
I nodi vengono visitati al più una volta (marcatura)
Tutti i nodi raggiungibili da r vengono visitati
Ne segue che T contiene esattamente tutti i nodi raggiungibili da r
Prof. Pier Luca Lanzi
42. Visita in Profondità:
Depth First Search (DFS)
•
•
Visita in profondità
E' spesso una parte della soluzione di altri problemi
Utilizzata per coprire l'intero grafo, non solo i nodi
raggiungibili da una singola sorgente (diversamente
da BFS)
Risultato
Invece di un albero, una foresta DF (depth-first) Gπ=(V,
Eπ)
Contenente un insieme di alberi DF
•
42
Struttura di dati
Ricorsione al posto di una pila esplicita
Prof. Pier Luca Lanzi
43. Visita DFS
43
DFS(Graph G, Node u, boolean[] visitato)
Esamina il nodo u (se pre-visita)
foreach v in G.adj(u) do
Esamina l’arco (u,v)
if (not visitato(v))
visitato[v] = true;
DFS(G,v,visitato);
Esamina il nodo u (se post-visita)
Prof. Pier Luca Lanzi
44. Applicazioni DFS:
Componente Connesse
•
•
Problema
Verificare se un grafo non orientato è connesso
Identificare le componenti connesse di cui è composto
Soluzione
Un grafo è connesso se, al termine della DFS, tutti i nodi sono
stati marcati
Altrimenti, una singola passata non è sufficiente e la visita deve
ripartire da un nodo non marcato, scoprendo una nuova porzione
del grafo
Strutture dati
Vettore id degli identificatori di componente
id[u] è l’identificatore della componente connessa a cui appartiene
u
•
45
Prof. Pier Luca Lanzi
47. Alberi di Copertura DFS
•
•
48
La visita DFS genera l’albero (foresta) dei cammini DFS
Tutte le volte che viene incontrato un arco che connette un nodo
marcato ad uno non marcato, esso viene inserito nell’albero T
Gli archi non inclusi in T possono essere divisi
in tre categorie durante la visita:
se l’arco è esaminato passando da un nodo di T
ad un altro nodo che è suo antenato in T , è
detto arco all’indietro
se l’arco è esaminato passando da
un nodo di T ad un suo discendente
(che non sia figlio) in T è detto arco in avanti
altrimenti, è detto arco
di attraversamento
Prof. Pier Luca Lanzi
48. Schema DFS
•
•
49
Variabili globali
time: orologio
dt: discovery time
ft: finish time
Significato
dt[v]=0, v non ancora
visitato
dt[u]>dt[v] e ft[v]!=0
(u,v) e’ in avanti
Prof. Pier Luca Lanzi
63. Classificazione degli Archi
•
•
65
Cosa serve le classificazione?
E' possibile dimostrare alcune proprietà, che
poi possono essere sfruttate negli algoritmi
Esempio: DAG non hanno archi all'indietro (dimostrare)
Prof. Pier Luca Lanzi
64. Ordinamento Topologico
•
66
Dato un DAG G (direct acyclic graph), un ordinamento topologico su
G è un ordinamento lineare dei suoi vertici tale per cui:
Se G contiene l’arco (u,v), allora u compare prima di v
nell’ordinamento
Per transitività, ne consegue che se v è raggiungibile da u,
allora u compare prima di v nell'ordinamento
Nota: possono esserci più ordinamenti topologici
Prof. Pier Luca Lanzi
65. Ordinamento Topologico
•
•
67
Problema: Fornire un algoritmo che dato un grafo
orientato aciclico, restituisca un ordinamento topologico
Due Approcci
Diretto
Trovare ogni vertice che non ha alcun arco
incidente in ingresso
Stampare questo vertice e rimuoverlo,
insieme ai suoi archi
Basato su DFS
Ripetere la procedura finché tutti i vertici
risultano rimossi
Esercizio: scrivere lo pseudocodice
per
questo algoritmo
Qual è la complessità? (con matrici
di adiacenza, con liste di
adiacenza)
Prof. Pier Luca Lanzi
67. Ordinamento Topologico con DFS
•
•
Algoritmo
Si effettua una DFS
L’operazione di visita consiste
nell’aggiungere il vertice alla
testa di una lista“at finish time”
Restituire la lista di vertici
Output
Sequenza ordinata di vertici,
in ordine inverso di finish time
Prof. Pier Luca Lanzi
69
69. Grafi Fortemente Connessi e
Componenti Fortemente Connesse
•
71
In un grafo orientato G
G è fortemente connesso ⇔ esiste un cammino da ogni vertice ad
ogni altro vertice
Un grafo G’ = (V’, E’) è una componente fortemente connessa di
G ⇔ è un sottografo di G fortemente connesso e massimale
Definizioni
G’ è un sottografo di G (G’ ⊆ G) se
2
e solo se V’⊆V e E’ ⊆ E
3
G’ è massimale ⇔ non esiste
1
un sottografo G” di G che sia
6
fortemente connesso e
“più grande” di G’, ovvero tale
per cui G’ ⊆ G” ⊆ G.
4
•
5
Prof. Pier Luca Lanzi
70. Componenti Fortemente Connesse
•
•
72
Algoritmo (Kosaraju, 1978)
1. Effettua una DFS di G
2. Calcola il grafo trasposto GT
3. Effettua una DFS di GT esaminando i vertici in ordine
inverso di tempo di fine
4. Fornisci i vertici di ogni albero della foresta depth-first
prodotta al passo 3 come una diversa SCC
Grafo trasposto
Dato un grafo G = (V, E), il grafo trasposto GT = (V, ET
) è formato dagli stessi nodi, mentre gli archi hanno
direzioni invertite: i.e, ET ={(u,v) | (v,u) ∈ E}
Prof. Pier Luca Lanzi
73. Componenti Fortemente Connesse:
dimostrazione correttezza
•
•
75
Si può estendere il concetto di dt e ft al grafo delle componenti
Teorema
Siano C e C’ due componenti distinte nel grafo orientato G = (V,
E). Suppo- niamo che esista un arco (C, C’) ∈ Ec. Allora ft(C) >
ft(C’)
[9,10]
[11,12]
[1, 8]
2
3
1
6 [5,7]
[2, 7]
4
[3,4]
Prof. Pier Luca Lanzi
5