grafos – conceitos básicos (parte...
TRANSCRIPT
ALGORITMOS E ESTRUTURAS DE DADOS II
GRAFOS – Conceitos Básicos (Parte 1)
Gustavo Batista
Profa.ElaineParrosMachadodeSousaalterações:Cris-naDutradeAguiarCiferri
Materialbaseadoemaulasdosprofessores:GustavoBa5sta,RobsonCordeiro,MoacirPon5Jr.eMariaCris5naOliveira.
MOTIVAÇÃO...¢ Comomodelarproblemasqueenvolvamconjuntosdeobjetoserelacionamentosentreparesdeobjetosestabelecidosporconexões?
¢ Exemplo–GoogleMaps� comoirdacidadeAparacidadeB?� quaisoscaminhospossíveis?� qualocaminhomaiscurto?� qualocaminhodemenorcusto?
MOTIVAÇÃO...¢ Grafos
� estruturasabstratasquemodelamobjetosearelação(conexão)entreeles
¢ TeoriadosGrafos� áreadematemá5cacombinatóriavoltadaàresoluçãodeproblemasemcomputação
MOTIVAÇÃO...¢ Muitasaplicaçõesemcomputaçãoprecisamconsiderarconjuntodeconexõesentreparesdeobjetos.
¢ Exemplos� Existeumcaminhoparairdeumobjetoaoutroseguindoasconexões?
� Qualéomenorcaminhoentredoisobjetos?� Quantosoutrosobjetospodemseralcançadosapar5rdeumdeterminadoobjeto?
� …
MOTIVAÇÃO...¢ Exemplosdeproblemasprá5cosquepodemsermodeladoscomgrafos:� Web
¢ ajudarmáquinasdebuscaalocalizarinformaçãorelevante.¢ documentosconectadosporlinks.
� Mapas¢ descobriroroteiromaiscurtoparavisitarasprincipaiscidadesdeumaregiãoturís5ca.
¢ cidadesconectadasporestradas.
� RedesSociais¢ descobrirpesquisadorescomomaiornúmerodecolaboradoresdeoutrospaíses
¢ pesquisadoresconectadosporprojetosdepesquisa.
MOTIVAÇÃO...¢ Maisexemplosdeproblemasprá5cosquepodemsermodeladoscomgrafos:� modelagemdecircuitoseletrônicos� redesdetransporte� redesdeenergia� redesdecomputadores� …
EXEMPLOS
EXEMPLOS
EXEMPLOS
OQUEÉUMGRAFO?¢ GrafoGdefinidocomoumpar(V,A):
� V:conjuntodenóschamadosvér8ces(ounós).� A:conjuntodeparesdevér5ceschamadosarestas(ouarcos).
¢ Exemplo:� Redesocialdeamizade
¢ cadavér5ceéumapessoa.¢ existeumaarestaentreduaspessoasseesomenteseessaspessoassãoamigas.
Marcos José
João
Maria
Pedro
GRAFOSOBREAMIZADE¢ Seeusouseuamigo,issosignificaquevocêémeuamigo?
� Searesta(x,y)sempreimplicaem(y,x)=>grafonão-direcionado
� Casocontrário=>grafodirecionado(oudígrafo).
¢ Eusouamigodemimmesmo?� Aresta(x,x)=>laçoouself-loop.
¢ Eupossoserseuamigodiversasvezes?
� relaçãomodeladacomarestasmúl8plasouparalelas.
Marcos José
João
Maria
Pedro
DEFINIÇÃO–GRAFODIRECIONADO(Dígrafo)¢ Umgrafodirecionado(grafoorientadooudígrafo)Géumpar(V,A),
emque:� Véumconjuntofinitodevér5ces� Aéumconjuntodearestas
¢ relaçãobináriaordenadaemV
¢ Umaaresta(u,v)saidovér5ceu(origem)echeganovér5cev(des5no)
¢ Podemexis5rarestasdeumvér5ceparaelemesmo=>self-loops.¢ Podemexis5rarestascommesmaorigememesmodes5no=>arestas
múl8plas.
u v
¢ G=(V,A)� V=� A=
¢ G=(V,A)� V=� A=
GRAFOSDIRECIONADOS(DÍGRAFOS)
1
4
2
5
3
6
1 2
¢ G=(V,A)� V={1,2,3,4,5,6}e� A={(1,2),(1,4),(2,5),(4,2),(5,4),(3,5),(3,6),(3,6)}
¢ G=(V,A)� V=(1,2)e� A={(1,2),(2,2)}
GRAFOSDIRECIONADOS(DÍGRAFOS)
1
4
2
5
3
6
1 2
v1 é adjacente a v2 ?
v1 e v2 são vizinhos ?
v2 é adjacente a v1 ?
GRAFOSDIRECIONADOSVÉRTICESADJACENTES¢ Emumgrafodirecionado,seexisteumaaresta(u,v)
� ovér5cevéadjacenteaovér5ceu� aarestasaidovér5ceu(origem)� aarestacheganovér5cev(des5no)� aexistênciade(u,v)nãoimplicanaexistênciade(v,u),ousejao
vér5ceunãoéadjacenteaovér5cev� osvér5cesuevsãovizinhos
v1 v2
v1 é adjacente a v2 ? NÃO
v1 e v2 são vizinhos ? SIM
v2 é adjacente a v1 ? SIM
GRAFOSDIRECIONADOSVÉRTICESADJACENTES¢ Emumgrafodirecionado,seexisteumaaresta(u,v)
� ovér5cevéadjacenteaovér5ceu� aarestasaidovér5ceu(origem)� aarestacheganovér5cev(des5no)� aexistênciade(u,v)nãoimplicanaexistênciade(v,u),ousejao
vér5ceunãoéadjacenteaovér5cev� osvér5cesuevsãovizinhos
v1 v2
DEFINIÇÃO–GRAFONÃODIRECIONADO¢ UmgrafonãodirecionadoGéumpar(V,A),emqueoconjuntodearestasAécons5tuídodeparesdevér5cesnãoordenados� (u,v)e(v,u)sãoconsideradoscomoumaúnicaaresta� arelaçãodeadjacênciaésimétrica� self-loopsnãosãopermi5dos
1 2
4 3
¢ G = (V,A) � V = � A =
DEFINIÇÃO–GRAFONÃODIRECIONADO¢ UmgrafonãodirecionadoGéumpar(V,A),emqueoconjuntodearestasAécons5tuídodeparesdevér5cesnãoordenados� (u,v)e(v,u)sãoconsideradoscomoumaúnicaaresta� arelaçãodeadjacênciaésimétrica� self-loopsnãosãopermi5dos
1 2
4 3
¢ G = (V,A) � V = {1, 2, 3, 4} � A = {(1,2),(1,4),(2,4)}
grafo simples: não possui laços ou
arestas múltiplas
GRAFOSNÃODIRECIONADOS¢ G=(V,A)
� V=� A=
¢ G=(V,A)� V=� A=
1
4
2
5
3
4
2
1
3
GRAFOSNÃODIRECIONADOS¢ G=(V,A)
� V={1,2,3,4,5}e� A={(1,2),(1,4),(2,5),(4,2),(5,4),(3,5)}
¢ G=(V,A)� V={1,2,3,4}e� A={(1,2),(1,3),(1,4),(2,3),(2,4)}
1
4
2
5
3
4
2
1
3
v3 é adjacente a v4 ?
v5 é adjacente a v4 ?
v4 é adjacente a v3 ?
GRAFOSNÃODIRECIONADOSVÉRTICESADJACENTES¢ Doisvér5cesuevdeumgrafonãodirecionadosãoadjacentes(ouvizinhos)quandoelesforemosextremosdeumamesmaaresta(u,v).
v3 é adjacente a v4 ? SIM
v5 é adjacente a v4 ? NÃO
v4 é adjacente a v3 ? SIM
GRAFOSNÃODIRECIONADOSVÉRTICESADJACENTES¢ Doisvér5cesuevdeumgrafonãodirecionadosãoadjacentes(ouvizinhos)quandoelesforemosextremosdeumamesmaaresta(u,v).
A aresta (v3,v4) é dita incidente a v3 e a v4
GRAFOSOBREAMIZADE¢ Oquantovocêémeuamigo?
� Grafoponderado=>asarestaspossuemumpeso(valornumérico)associado.
� Grafonãoponderado=>todasasarestaspossuemummesmopeso.
Marcos José
João
Maria
Pedro
Marcos José
João
Maria
Pedro
104
28 1
5
4arestas: triplas (u, v, valor)
arestas: duplas (u, v)
GRAFOSOBREAMIZADE¢ Quempossuimais(oumenos)amigos?
� Quan5dadederelacionamentos(conexões)� Graudovér5ce=>númerodevér5cesadjacentesaele.� Pessoamaispopulartemovér5cedemaiorgrau� “Ermitões”sãovér5cesdegrauzero.
Marcos José
João
Maria
Pedro
vértice isolado: vértice de grau 0 vértice final: vértice de grau 1 vértice par: vértice com grau par vértice ímpar: vértice com grau ímpar
DEFINIÇÃO–GRAUDOVÉRTICE¢ Ograudeumvér5ceemgrafosdirecionadosédadopor:
númerodearestasquesaemdele(graudesaídaouout-degree)númerodearestasquechegamnele(graudeentradaouin-degree).
� Ex:vér5ce5tem:¢ graudeentrada=¢ graudesaída=¢ grau= 1
4
2
5
3
6
DEFINIÇÃO–GRAUDOVÉRTICE¢ Ograudeumvér5ceemgrafosdirecionadosédadopor:
númerodearestasquesaemdele(graudesaídaouout-degree)númerodearestasquechegamnele(graudeentradaouin-degree).
� Ex:vér5ce5tem:¢ graudeentrada=2¢ graudesaída=2¢ grau=4 1
4
2
5
3
6
DEFINIÇÃO–GRAUDOVÉRTICE¢ Ograudeumvér5ceemgrafosnãodirecionadosédadopelonúmerodearestasqueincidemnele.� umvér5cedegrauzeroéditoisoladoounãoconectado.
� Ex.¢ graudovér5ce1:¢ graudovér5ce3:
1 2
4 3
5
6
DEFINIÇÃO–GRAUDOVÉRTICE¢ Ograudeumvér5ceemgrafosnãodirecionadosédadopelonúmerodearestasqueincidemnele.� umvér5cedegrauzeroéditoisoladoounãoconectado.
� Ex.¢ graudovér5ce1:2¢ graudovér5ce3:0(isolado)
1 2
4 3
5
6
GRAFOSOBREAMIZADE¢ Euestouligadoaumacelebridadeporumacadeiadeamigos?� existeumcaminhoentremimeumacelebridade?� caminho=>sequênciadearestasqueconectamdoisvér5ces.
Marcos José
João
Maria
Pedro
Eu Amigo 1 Amigo 2 James Hetfield Amigo 3
DEFINIÇÕES-CAMINHO¢ Umcaminhodecomprimentokdeumvér5cexaumvér5ceyemumgrafoG=(V,A)éumasequênciadevér5ces(v0,v1,v2,...,vk)talque:� x=v0� y=vk� e(vi-1,vi)∈Aparai=1,2,...,k.
¢ Ocomprimentodeumcaminhoéonúmerodearestasnele,istoé,ocaminhocontém:� osvér5cesv0,v1,v2,...,vk� asarestas(v0,v1),(v1,v2),...,(vk-1,vk).
caminho de k vértices: formado por k-1 arestas
DEFINIÇÕES–CAMINHO¢ Seexis5rumcaminhocdexayentãoyéalcançávelapar5rdexviac.
¢ Caminhosimples=>todososvér5cesdocaminhosãodis5ntos.
¢ CaminhoHamiltoniano=>caminhoquepassaportodososvér5cesdeumgrafoexatamenteumavez
¢ Ex.: caminho(1,2,5,4)=>simples,comcomprimento3caminho(1,4,1,2)=>nãoésimples,comcomprimento3
1
4
2
5
3
6
GRAFOSOBREAMIZADE¢ Quãopróximaéaminhaligaçãocomessacelebridade?� Diversoscaminhosqueligamdoisvér5ces.� Caminhomaiscurto(menorcaminho)
� aquelecommenorsomadepesosdasarestas(ponderado)� oucommenornúmerodearestas(nãoponderado).
� Caminhomaislongo� aquelecommaiorsomadepesosdasarestas(ponderado)� oucommaiornúmerodearestas(nãoponderado).
Marcos José
João
Maria
Pedro
Amigo 4
Eu Amigo 1 Amigo 2 James
Hetfield Amigo 3
¢ Quantotempodemoraparaqueeuouçaumafofocaquecontei?
� Ciclo=>caminhonoqualoprimeiroeoúl5movér5cessãoiguais.
� Ciclosimples=>cicloemquenenhumvér5ceserepete(excetoprimeiroeúl5mo).
� Grafocíclico=>possuipelomenosumciclo.� Grafoacíclico=>grafosemciclos.
GRAFOSOBREAMIZADE
Marcos José
João
Maria
Pedro
DEFINIÇÕES-CICLO¢ Emumgrafodirecionado:
� Umcaminho(v0,v1,...,vk)formaumciclosev0=vkeocaminhocontémpelomenosumaaresta.¢ ex:(1,2,5,4,1)
� Ocicloésimplesseosvér5cesv1,v2,...,vksãodis5ntos.
� Oself-loopéumciclodetamanho1.¢ Ex:(5,5)
1
4
2
5
DEFINIÇÕES-CICLO
¢ Emumgrafodirecionado:� Doiscaminhos(v0,v1,...,vk)e(v’0,v’1,...,v’k)formamo
mesmocicloseexis5ruminteirojtalquev’i=v(i+j)modk
parai=0,1,...,k-1.
� Ex.:caminhosqueformamomesmociclo:¢ (2,5,4,2)
¢ (5,4,2,5)
¢ (4,2,5,4).
1
4
2
5
3
6
DEFINIÇÕES-CICLO¢ Emumgrafonãodirecionado:
� Umcaminho(v0,v1,...,vk)formaumciclosev0=vkeocaminhocontémpelomenostrêsarestas.¢ ex:(1,2,4,1)
� Ocicloésimplesseosvér5cesv1,v2,...,vksãodis5ntos.
1 2
4 3
5
6
(a) é cíclico ?
(c) é cíclico ?
(b) é cíclico ?
EXEMPLOS
(b) (c) (a)
(d)
(d) é cíclico ?
(a) é cíclico ? SIM
(c) é cíclico ? SIM
(b) é cíclico ? SIM
EXEMPLOS
(b) (c) (a)
(d)
(d) é cíclico ? NÃO
BIBLIOGRAFIA¢ N.Ziviani.ProjetodeAlgoritmos,Thomson,2a.Edição,2004.
¢ Y.Langsam,M.J.AugensteinandA.M.Tenenbaum.DataStructuresUsingCandC++,Pren5ceHall,2aEdição,1996.
¢ T.H.Cormen.C.E.LeisersonandR.L.Rivest,Introduc5ontoAlgorithms,MITPress,2ndEdi5on,2001.