Você está na página 1de 49

Grafo

Um grafo com 6 vrtices e 7 arestas.


Em matemtica e cincia da computao, grafo o objeto bsico de estudo da teoria dos
grafos. Tipicamente, um grafo representado como um conjunto de pontos (vrtices)
ligados por retas (as arestas). Dependendo da aplicao, as arestas podem ser
direcionadas, e so representadas por "setas".
Os grafos so muito teis na representao de problemas da vida real, em vrios campos
profissionais. Por exemplo, pode-se representar um mapa de estradas atravs dos grafos
e usar algoritmos especficos para determinar ocaminho mais curto entre dois pontos, ou
o caminho mais econmico. Assim, os grafos podem possuir tambmpesos (ou custo),
quer nas arestas quer nos vrtices, e o custo total em estudo ser calculado a partir
destes pesos.
Grafos podem ser utilizados tambm em redes PERT no mbito do planejamento de
projetos. Neste caso, a cada aresta est associado o custo de execuo, e as tarefas
precedentes de uma outra sero suas afluentes.
Outro exemplo o caso das redes de computadores, sendo cada terminal representado
por um vrtice, o cabo de rede pelas arestas e o custo associado a latncia, por exemplo,
ou o nmero de mquinas que a comunicao atravessa entre os ns. nestes princpios
que assenta todo o protocolo IP que torna possvel a Internet ser uma realidade.
Grafos tm sido utilizados para representar o formalismo das redes complexas, onde o
nmero de ns e de conexes entre esses ns muito alto e complexamente
estabelecido.
Introduo
Uma possvel definio para grafos: "O grafo propriamente dito uma representao
grfica das relaes existentes entre elementos de dados. Ele pode ser descrito num
espao euclidiano de n dimenses como sendo um conjunto V de vrtices e um conjunto
A de curvas contnuas (arestas)". Podemos avaliar um grafo atravs de seu tipo,
propriedades e aplicaes[1].

Busca em grafo
Vrios problemas representados por um grafo podem ser resolvidos efetuando uma busca
nesse grafo. A busca em grafo consiste em explorar um grafo, de forma que obtenha um
processo sistemtico de como caminhar por seus vrtices e arestas. s vezes preciso
visitar todos os vrtices de um grafos, as vezes o problema pode ser resolvido visitando
somente um subconjunto dos vrtices.
Se o grafo for uma rvore, esta questo se torna simples, podem utilizar as visitas em prordem, ou ordem de nvel.
Algoritmos de percurso
Existem dois mtodos de percurso em grafos: percurso em profundidade (depth-first
search DFS) e o percurso em largura (breadth first search BFS).
A ideia bsica do DFS buscar "mais a fundo" no grafo quando possvel. Assim, a partir
de um vrtice v, as arestas ainda no exploradas o so e, ao final, a busca retrocede.
A idia do BFS bastante simples: os vrtices do grafo so visitados nvel a nvel, ou
seja, todos os vrtices a uma distncia k do vrtice inicial so visitados antes de qualquer
vrtice a uma distncia k +1 do inicial.
Referncias

http://www.icmc.sc.usp.br/manuals/sce183/gfbus.html

Cormen. Thomas (2000); Leiserson, Charles.; Rivest, Ronald. Introduction to


Algorithmics, McGraw-Hill.

Algoritmos em Grafos - Paulo Feofiloff

Teoria dos grafos

Grafo com 4 vrtices e 6 arestas. um grafo completo, conexo e planar.


A teoria dos grafos um ramo da matemtica que estuda as relaes entre os objetos
de um determinado conjunto. Para tal so empregadas estruturas chamadas de grafos,
G(V,A), onde V um conjunto no vazio de objetos denominados vrtices e A um
conjunto de pares no ordenados de V, chamado arestas.
Dependendo da aplicao, arestas podem ou no ter direo, pode ser permitido ou no
arestas ligarem um vrtice a ele prprio e vrtices e/ou arestas podem ter um peso
(numrico) associado. Se as arestas tm uma direo associada (indicada por uma seta
na representao grfica) temos um grafo direcionado, grafo orientado ou digrafo. Um
grafo com um nico vrtice e sem arestas conhecido como o grafo trivial ou "o ponto".
Estruturas que podem ser representadas por grafos esto em toda parte e muitos
problemas de interesse prtico podem ser formulados como questes sobre certos grafos.
Por exemplo, a estrutura de links da Wikipedia pode ser representada por um dgrafo: os
vrtices so os artigos da Wikipedia e existe uma aresta do artigo A para o artigo B se e
somente se A contm um link para B. Dgrafos so tambm usados para
representar mquinas de estado finito. O desenvolvimento de algoritmos para manipular
grafos um importante tema da cincia da computao.

Histrico
O artigo de Leonhard Euler, publicado em 1736, sobre o problema das sete pontes de
Knigsberg, considerado o primeiro resultado da teoria dos grafos. [1] tambm
considerado um dos primeiros resultados topolgicos na geometria; isto , no
dependente de quaisquer medidas. Isso ilustra a profunda conexo entre a teoria dos
grafos etopologia.

Definies de grafos e digrafos


Na literatura, as definies bsicas da teoria dos grafos variam bastante. Aqui esto as
convenes usadas nesta enciclopdia.
Um grafo direcionado (tambm chamado digrafo ou quiver) consiste de

um conjunto V de vrtices,

um conjunto E de arestas e

mapas s, t : E V, onde s(e) a fonte e t(e) o alvo da aresta direcionada e.

Um grafo no direcionado (ou simplesmente grafo) dado por

um conjunto V de vrtices,

um conjunto E de arestas e

uma funo w : E P(V) que associa a cada aresta um subconjunto de dois ou de


um elemento de V, interpretado como os pontos terminais da aresta.

Em um grafo ou digrafo com pesos, uma funo adicional E R associa um valor a


cada aresta, o que pode ser considerado seu "custo"; tais grafos surgem em problemas
de rota tima tais como o problema do caixeiro viajante.

Representao grfica (layout do grafo)


Os grafos so geralmente representados graficamente da seguinte maneira: desenhado
um crculo para cada vrtice, e para cada aresta desenhado um arco conectando suas
extremidades. Se o grafo for direcionado, seu sentido indicado na aresta por uma seta.
Note que essa representao grfica (o layout) no deve ser confundida com o grafo em
si (a estrutura abstrata, no-grfica). Vrios diferentes layouts podem corresponder ao
mesmo grafo.[2] O que importa quais vrtices esto conectados entre si por quantas
arestas.

Glossrio dos conceitos bsicos de teoria dos grafos

Um grafo com 6 vrtices e 7 arestas


O grafo de exemplo exibido direita um grafo simples com o conjunto de vrtices V =
{1, 2, 3, 4, 5, 6} e um conjunto de arestas E = { {1,2}, {1,5}, {2,3}, {2,5}, {3,4}, {4,5}, {4,6} }
(com o mapeamento w sendo a identidade).
Uma aresta conecta dois vrtices; esses dois vrtices so ditos como incidentes
aresta. A valncia (ou grau) de um vrtice o nmero de arestas incidentes a ele, com
loops contados duas vezes. No grafo de exemplo os vrtices 1 e 3 possuem uma valncia
de 2, os vrtices 2, 4 e 5 tm a valncia de 3 e o vrtice 6 tem a valncia de 1. Se E

finito, ento a valncia total dos vrtices o dobro do nmero de arestas. Em um dgrafo,
distingue-se o grau de sada (o nmero de arestas saindo de um vrtice) e o grau de
entrada (o nmero de arestas entrando em um vrtice). O grau de um vrtice igual
soma dos graus de sada e de entrada.
Dois vrtices so considerados adjacentes se uma aresta existe entre eles. No grafo
acima, os vrtices 1 e 2 so adjacentes, mas os vrtices 2 e 4 no so. O conjunto
de vizinhos de um vrtice consiste de todos os vrtices adjacentes a ele. No grafoexemplo, o vrtice 1 possui 2 vizinhos: vrtice 2 e vrtice 5. Para um grafo simples, o
nmero de vizinhos de um vrtice igual sua valncia.
Na computao, um grafo finito direcionado ou no-direcionado (com,
digamos, n vrtices) geralmente representado por sua matriz de adjacncia:
uma matriz n-por-n cujo valor na linha i e coluna j fornece o nmero de arestas do i-simo
ao j-simo vrtices.
Se for possvel estabelecer um caminho de qualquer vrtice para qualquer outro vrtice
de um grafo, diz-se que o grafo conexo. Se for sempre possvel estabelecer um
caminho de qualquer vrtice para qualquer outro vrtice mesmo depois de remover k-1
vrtices, ento diz-se que o grafo est k-conexo. Note que um grafo est k-conexo se, e
somente se, contm k caminhos independentes entre qualquer par de vrtices. O grafo de
exemplo acima conexo (e portanto 1-conexo), mas no 2-conexo.
Em um grafo genrico G, o corte associado a um conjunto X de vrtices o conjunto de
todas as arestas que tm uma ponta em X e outra em V(G) - X, onde V(G) o conjunto de
todos os vrtices pertencentes ao grafo G.

Grafo simples um grafo no direcionado, sem laos e que existe no mximo


uma aresta entre quaisquer dois vrtices (sem arestas paralelas). No grafo de
exemplo, (1, 2, 5, 1, 2, 3) um caminho com comprimento 5, e (5, 2, 1) um caminho
simples de comprimento 2.

Grafo completo o grafo simples em que, para cada vrtice do grafo, existe uma
aresta conectando este vrtice a cada um dos demais. Ou seja, todos os vrtices do
grafo possuem mesmo grau. O grafo completo de n vrtices frequentemente
denotado por Kn. Ele tem n(n-1)/2 arestas (correspondendo a todas as possveis
escolhas de pares de vrtices).

Grafo nulo o grafo cujo conjunto de vrtices vazio.

Grafo vazio o grafo cujo conjunto de arestas vazio.

Grafo trivial o grafo que possui apenas um vertice e nenhuma aresta.

Grafo regular um grafo em que todos os vrtices tem o mesmo grau.

Multigrafo um grafo que permite mltiplas arestas ligando os mesmos vrtices


(arestas paralelas).

Lao (loop) num grafo ou num digrafo uma aresta e em E cujas terminaes
esto no mesmo vrtice.

Pseudografo um grafo que contm arestas paralelas e laos.

Ciclo (ou circuito) um caminho que comea e acaba com o mesmo vrtice. Ciclos
de comprimento 1 so laos. No grafo de exemplo, (1, 2, 3, 4, 5, 2, 1) um ciclo de
comprimento 6. Um ciclo simples um ciclo que tem um comprimento pelo menos de
3 e no qual o vrtice inicial s aparece mais uma vez, como vrtice final, e os outros
vrtices aparecem s uma vez. No grafo acima, (1, 5, 2, 1) um ciclo simples. Um
grafo chama-se acclico se no contm ciclos simples.

Ponto de articulao ou Vrtice de corte um vrtice cuja remoo desliga um


grafo. Uma ponte uma aresta cuja remoo desliga um grafo. Um componente
biconectado um conjunto mximo de arestas tal que qualquer par de arestas do
conjunto fazem parte de um ciclo simples comum. O contorno de um grafo o
comprimento do ciclo simples mais curto no grafo. O contorno de um grafo acclico ,
por definio, infinito.

rvore um grafo simples acclico e conexo. s vezes, um vrtice da rvore


distinto e chamado de raiz. rvores so comumente usadas como estruturas de
dados em informtica (veja estrutura de dados em rvore).

Floresta um conjunto de rvores; equivalentemente a uma floresta, em algum


grafo acclico.

Subgrafo de um grafo G um grafo cujo conjunto dos vrtices um subconjunto


do conjunto de vrtices G, cujo conjunto de arestas um subconjunto do conjunto de
arestas de G, e cuja funo w uma restrio da funo de G

Subgrafo gerador aquele obtido pela remoo de uma ou mais arestas de um


outro grafo, dizemos ento que este novo grafo obtido gerador do primeiro,

Subgrafo induzido obtido pela remoo de vrtices e consequente das arestas


relacionadas com ele de um outro grafo, dizemos que este novo grafo um grafo
induzido do original.

Grafo parcial de um grafo G um subgrafo com o mesmo conjunto de vrtices


que G. Uma rvore parcial um grafo parcial que rvore. Todo grafo tem pelo
menos uma rvore parcial.

Clique em um grafo um subgrafo que tambm um grafo completo. No grafo do


exemplo acima, os vrtices 1, 2 e 5 formam um clique.

Conjunto independente em um grafo um conjunto de vrtices no adjacentes


entre si. No exemplo acima, os vrtices 1, 3 e 6 formam um conjunto independente e
3, 5 e 6 so outro conjunto independente.

Grafo planar aquele que pode ser representado em um plano sem qualquer
interseco entre arestas. O grafo do exemplo planar; o grafo completo
de n vertices, para n> 4, no planar.

Caminho uma sequncia de vrtices tal que de cada um dos vrtices existe uma
aresta para o vrtice seguinte. Um caminho chamado simples se nenhum dos
vrtices no caminho se repete. O comprimento do caminho o nmero de arestas
que o caminho usa, contando-se arestas mltiplas mltiplas vezes. O custo de um
caminho num grafo balanceado a soma dos custos das arestas atravessadas. Dois
caminhos so independentes se no tiverem nenhum vrtice em comum, excepto o
primeiro e o ltimo.

Caminho euleriano em um grafo o caminho que usa cada aresta exatamente


uma vez. Se tal caminho existir, o grafo chamado traversvel. Um ciclo euleriano
um ciclo que usa cada aresta exatamente uma vez.

Caminho

hamiltoniano em

um

grafo

caminho

que

visita

cada vertice exatamente uma vez. Um ciclo hamiltoniano um ciclo que visita cada
vrtice uma s vez. O grafo do exemplo contm um caminho hamiltoniano. Enquanto
determinar se um dado grafo contm um caminho ou ciclo euleriano trivial, o mesmo
problema para caminhos e ciclos hamiltonianos extremamente rduo.

Lema do aperto de mos diz que se os convidados de uma festa apertarem as


mos quando se encontrarem pela primeira vez, o nmero de convidados que
apertam a mo um nmero mpar de vezes par. Tambm em grafos no
direcionados a soma dos graus de todos os vrtices igual ao dobro do nmero de
arestas.

Grafo bipartido o grafo cujos vrtices podem ser divididos em dois conjuntos,

nos quais no h arestas entre vrtices de um mesmo conjunto. Para um grafo ser
bipartido ele no pode conter circuitos de comprimento mpar.
1. Se um grafo G bipartido, todo o circuito de G possui comprimento

par.

Sejam V1 e V2 os dois conjuntos em que, de acordo com a definio


de grafo bipartido, se particiona V(G). Toda a aresta de G conecta um vrtice
em V1 com outro em V2. Assim sendo, se X for um vrtice de V1, para voltar
a esse vrtice ter de se ir a V2 e voltar a V1 um nmero indeterminado de
vezes, e de cada vez sero percorridas duas arestas, uma de um vrtice em
V1 para um vrtice em V2 e outra de um vrtice em V2 para um vrtice em V1.
Logo, o nmero de arestas a percorrer ser par, ou seja, o comprimento do
circuito par.

2. Se todo o circuito de um grafo G possui comprimento par, ento o

grafo bipartido.

Seja G um grafo em que todo o circuito tem comprimento par, e seja


X um vrtice de G. Denotemos por V1 o conjunto formado por X e por todos os
vrtices cuja distncia a X par. Seja V2 = V(G)\V1 (isto , o conjunto formado
pelos vrtices de G que no pertencem a V1). Pretende mostrar-se que no
existe qualquer aresta que conecte vrtices de V1 ou vrtices de V2.
Suponhamos a existncia de tal aresta, isto , suponhamos a existncia de
dois vrtices em V1 (ou V2), digamos Xi e Xj, conectados por uma aresta. Ora
existe j um caminho de comprimento par entre Xi e Xj, j que existem
caminhos, ambos de comprimento par (ou mpar, no caso de Xi e Xj
pertencerem a V2), entre Xi e X e entre X e Xj. Se a esse caminho juntarmos a
aresta {Xi;Xj} obtemos um circuito de comprimento mpar o que contraria a
hiptese de apenas existirem circuitos de comprimento par.

Grafo bipartido completo o grafo bipartido, cujo qualquer vrtice do primeiro


conjunto adjacente a todos vrtices do segundo conjunto

Grafo k-partido ou grafo de k-colorao um grafo cujos vrtices podem ser

particionados em k conjuntos disjuntos, nos quais no h arestas entre vrtices de um


mesmo conjunto. Um grafo 2-partido o mesmo que grafo bipartido.
Emparelhamento de grafos consiste em partir o grafo em conjuntos de vrtices a

qual no compartilham nenhuma aresta entre eles.


Teorema das quatro cores baseado no problema das cores necessrias para se

colorir um mapa sem que os pases vizinhos compartilhem da mesma cor.


Transformando o mapa em um grafo pode-se provar que pode-se representar
qualquer mapa (um grafo planar) com apenas 4 cores (4 parties).
Percurso rvores:

Percorrimento sistemtico em todos os vrtices e arestas do grafo. Grafo


pode ser dirigido ou no.

O percurso em rvores o processo de visitar cada n da rvore


exatamente uma vez.

O percurso pode ser interpretado como colocar todos os ns em uma linha,


no existe uma ordem para ser seguida.

Existem n percursos diferentes, quase todos caticos.

Os bsicos so percurso em profundidade e percurso em largura

Fila: busca em largura

Pilha: busca em profundidade


Busca em extenso ou largura: (Breadth-First Search ou BFS).

A propriedade especial est no fato de a rvore no possuir ciclos: dados dois vrtices
quaisquer, existe exatamente 1 caminho entre eles. Um percurso em extenso visitar
cada n comeando do menor nvel e move-se para os nveis mais altos nvel aps nvel,
visitando cada n da esquerda para a direita. Sua implementao direta quando uma fila
utilizada. Depois que um n visitado, seus filhos, se houver algum, so colocados no
final da fila e o n no incio da fila visitado. Assim, os ns do nvel n+1 sero visitados
somente depois de ter visitados todos os ns do nvel n. Computa a menor distncia para
todos os vrtices alcanaveis. O sub-grafo contendo os caminhos percorridos chamado
de breadth-first tree.

Busca em profundidade (Depth-first search ou DFS).

Um algoritmo de busca em profundidade realiza uma busca no-informada que progride


atravs da expanso do primeiro n filho da rvore de busca, e se aprofunda cada vez
mais, at que o alvo da busca seja encontrado ou at que ele se depare com um n que
no possui filhos (n folha). Ento a busca retrocede (backtrack) e comea no prximo n.
Numa implementao no-recursiva, todos os ns expandidos recentemente so
adicionados a uma pilha, para realizar a explorao. A complexidade espacial de um
algoritmo de busca em profundidade muito menor que a de um algoritmo de busca em
largura. A complexidade temporal de ambos algoritmos so proporcionais ao nmero de
vrtices somados ao nmero de arestas dos grafos aos quais eles atravessam. Quando
ocorrem buscas em grafos muito grandes, que no podem ser armazenadas
completamente na memria, a busca em profundidade no termina, em casos onde o
comprimento de um caminho numa rvore de busca infinito. O simples artifcio de
lembrar quais ns j foram visitados no funciona, porque pode no haver memria
suficiente. Isso pode ser resolvido estabelecendo-se um limite de aumento na
profundidade da rvore.
Problemas que envolvem grafos

Colorao de grafos: o Teorema das quatro cores

Conjuntos de Grafos

Conjunto independente

Clique
Problemas de roteamento:

Sete pontes de Knigsberg

rvore de extenso mnima

Problema do caminho mnimo

Problema da inspeo de rotas (tambm conhecido como o "Problema do


carteiro chins")

Problema do caixeiro viajante


Fluxos de rede:

Teorema do mnimo corte-mximo fluxo

conjectura da reconstruo

Problemas de Isomorfismo (casamento de grafos)

Rotulao cannica?

Isomorfismo de subgrafos e monomorfismos.

Mximo subgrafo comum

Algoritmos importantes

algoritmo de Dijkstra

algoritmo de Kruskal

algoritmo do vizinho mais prximo

algoritmo de Prim.

Generalizaes
Num hipergrafo uma aresta pode conectar mais que dois vrtices.
Um grafo no-direcionado pode ser visto como um complexo simplicial consistindo
de smplices de uma dimenso (as arestas) e smplices de dimenso zero (os vrtices).
Ou seja, complexos so generalizaes de grafos que permitem smplices de maiores
dimenses.
Grafo orientado
Origem: Wikipdia, a enciclopdia livre.

Um grafo orientado (direcionado).


Um grafo orientado,[1] grafo dirigido,[2] grafo direcionado[3] ou digrafo um
par

(algumas vezes

)(edge) de:[4][5][6]

Um conjunto V, cujos elementos so chamados vrtices ou nodos,

um conjunto A de pares ordenados de vrtices, chamados arcos, arestas


direcionadas, ou setas (e s vezes simplesmente arestas com o conjunto
correspondente chamado E ao invs de A).

Ele difere de um grafo no-direcionado comum, em que o ltimo definido em termos de


pares no ordenados de vrtices, que so normalmente chamados arestas.
Por exemplo, ser possvel ir de um n A para um n B, mas no o contrrio atravs desse
arco.
s vezes, um digrafo chamado de um digrafo simples para distingu-lo de
um multigrafo direcionado (ou multidigrafo ou ainda quiver), em que os arcos
constituem um multiconjunto, ao invs de um conjunto, de pares ordenados de vrtices.
Alm disso, em um digrafo simples laos no so permitidos. Por outro lado, alguns textos
permitem laos, arcos mltiplos, ou ambos em um digrafo.

Terminologia bsica
Um arco
considerado ser direcionado de para ; chamado
de cabea e chamado de cauda do arco; dito ser um sucessor direto de , e
dito ser um predecessor direto de . Se um caminho composto por um ou mais arcos
sucessivos leva de para , ento dito ser um successor de , e dito ser
umpredecessor de . O arco

chamado de arco

invertido.

Um grafo direcionado G chamado de simtrico se, para cada arco, que pertence G, o
arco invertido correspondente tambm pertence G. Um grafo dirigido simtrico sem
laos equivalente a um grafo no orientado com os pares de arcos invertidos substitudo
por arestas, assim o nmero de arestas igual ao nmero de arcos pela metade.
A orientao de um grafo grafo no-direcionado simples obtida atravs da atribuio de
um sentido para cada lado. Qualquer grafo direcionado construdo desta forma
chamado de um grafo orientado. A distino entre um grafo direcionado simples e um
grafo orientado que se e so vrtices, um grafo direcionado simples permite
tanto
quanto
[5]
orientado.

como arestas, enquanto apenas uma permitida em um grafo

Um digrafo ponderado um digrafo com pesos atribudos a seus arcos, semelhana


de um grafo ponderado.
A matriz de adjacncia de um digrafo (com laos e arcos mltiplos) uma matriz inteira
com linhas e colunas correspondendo aos nodos do digrafo, onde uma entrada nodiagonal
o nmero de arcos do n i para o n j, e a entrada diagonal
o nmero

de laos no n i. A matriz de adjacncia de um digrafo nica at as permutaes de


linhas e colunas.
Outra representao de matriz para um dgrafo sua matriz de incidncia.
Veja glossrio para mais definies.
Graus de sada e graus de entrada

Um digrafo com vrtices rotulados (sada ou entrada)


Para um nodo, o nmero de pontos de extremidade adjacente cabea de um n
chamado de grau de entrada do nodo e o nmero de pontos de extremidade da cauda
o seu grau de sada.
O grau de entrada denotado
com

e o grau de sada como

. Um vrtice

chamado de fonte, uma vez que a origem de cada uma das suas

arestas incidentes. Da mesma forma, um vrtice com


desumidouro (ou poo).

chamado

A frmula da soma dos graus afirma que, para um grafo direcionado

Se para cada nodo, v V,

, o grafo chamado de digrafo

balanceado.
Conectividade de digrafos
Um digrafo G chamado de fracamente conectado (ou apenas conectado[4]p. 19) se
o grafo subjacente no-direcionado obtido atravs da substituio de todas as
arestas de G por arestas no direcionadas um grafo conexo. Um digrafo
fortemente conectado ou forte se ele contm um caminho orientado de u a v e um
caminho orientado de v a upara cada par de vrtices u,v. Os componentes fortes so
os subgrafos mximo fortemente conectados.
Classes de digrafos

Um grafo direcionado acclico simples


Um digrafo acclico um grafo direcionado sem ciclos direcionados.
Uma rvore enraizada naturalmente se define como um digrafo acclico, se todas as
arestas da rvore subjacentes so dirigidas para longe da raiz.

um torneio com 4 vertices


Um torneio um grafo orientado obtido ao se escolher uma direo para cada aresta
em um grafo completo no-direcionado.
Na teoria dos grupos de Lie, um quiver Q um grafo direcionado servindo como o
domnio do e, portanto, caracterizando a forma de, umarepresentao V definida
como um functor, mais especificamente um objeto da categoria
functor FinVctKF(Q) onde F(Q) a categoria livre em Qconstituda por caminhos
em Q e FinVctK a categoria de espaos vetoriais de dimenso finita sobre um
campo K. Representaes de um quiver rtulam seus vrtices com espaos vetoriais
e suas arestas (e, portanto, caminhos) de modo compatvel com transformaes
lineares entre eles, e transformam atravs das transformaes naturais.

Mquina de estados finitos


Uma mquina de estados finitos (FSM - do ingls Finite State Machine) ou autmato
finito um modelo matemtico usado para representar programas de
computadores oucircuitos lgicos. O conceito concebido como uma mquina abstrata
que deve estar em um de seus finitos estados. A mquina est em apenas um estado por
vez, este estado chamado de estado atual. Um estado armazena informaes sobre o
passado, isto , ele reflete as mudanas desde a entrada num estado, no incio do

sistema, at o momento presente. Uma transio indica uma mudana de estado e


descrita por uma condio que precisa ser realizada para que a transio ocorra. Uma
ao a descrio de uma atividade que deve ser realizada num determinado momento.
Mquinas de estado finito podem modelar um grande nmero de problemas, entre os
quais a automao de design eletrnico, projeto de protocolo de comunicao, anlise e
outras aplicaes de engenharia. Na biologia e na pesquisa da inteligncia artificial,
mquinas de estado ou hierarquias de mquinas de estado so, por vezes, utilizadas para
descrever sistemas neurolgicos e em lingustica para descrever as gramticas
das linguagens naturais.

Conceitos e Vocabulrio
Um estado descreve um n de comportamento do sistema em que est espera de uma
condio para executar uma transio. Normalmente, um estado introduzido quando o
sistema no reage da mesma forma para uma mesma condio. No exemplo de um
sistema de rdio de carro, quando se est ouvindo uma estao de rdio, o estmulo
"prximo" significa ir para a prxima estao. Mas quando o sistema est no estado de
CD, o estmulo "prximo" significa ir para a prxima faixa. O mesmo estmulo desencadeia
aes diferentes, dependendo do estado atual. Em algumas representaes de estado
finito mquina, tambm possvel associar aes a um estado:

Ao de entrada: o que realizado ao entrar no estado,

Ao de sada: o que executado ao sair do estado.

A transio um conjunto de aes a serem executadas quando uma condio for


cumprida ou quando um evento recebido. Mquinas de estado so utilizadas para
descrever circuitos sequenciais. Diferentemente de um contador que em geral conta
eventos enquanto a mquina de estado costuma ser usada para controlar o evento.
A mquina est em apenas um estado por vez, este estado chamado de estado atual.
Um estado armazena informaes sobre o passado, isto , ele reflete as mudanas desde
a entrada num estado, no incio do sistema, at o momento presente. Uma transio
indica uma mudana de estado e descrita por uma condio que precisa ser realizada
para que a transio ocorra. Uma ao a descrio de uma atividade que deve ser
realizada num determinado momento.

Representao

Fig. 1 Exemplo de mquina de estados SDL

Fig. 2 Exemplo de uma mquina de estados finitos simples


Diagrama de estados

Mquinas de estados finitos podem ser representadas por meio de um diagrama de


estados (ou diagrama de transio de estados). Diversas tabelas de transio de estados
so usadas, a mais famosa a mostrada abaixo. A combinao do estado atual (ex: B)
com uma condio (ex: Y) determina o prximo estado (ex: C). Atravs do uso das tabelas
podemos representar uma de mquina finita de estados que contenha informaes
completas sobre as aes.
Tabela de transio de estados
Estado Atual
Condio

Estado A

Estado B

Estado C

Condio X

...

...

...

Condio Y

...

Estado C

...

Condio Z

...

...

...

Mquinas de estados UML


A UML tem uma notao para descrever mquinas de estado. Mquinas de estado UML
superam as limitaes das FSMs tradicionais, mantendo os seus principais benefcios.
Mquinas de estados UML introduzem os novos conceitos de estados aninhados
hierarquicamente e regies ortogonais, enquanto estende a noo de aes. Mquinas de
estado UML tm as caractersticas de ambas as mquinas de Mealy e Moore. Elas
suportam aes que dependem tanto do estado do sistema quanto da condio, como em
mquinas de Mealy, assim como aes de entrada e sada que esto associadas com os
estados em vez de transies, como em mquinas de Moore.
[editar]Mquinas de estados SDL
A SDL um padro da Unio Internacional de Telecomunicaes e uma das melhores
linguagens para descrever mquinas de estado, pois inclui smbolos grficos para
descrever as aes na transio:

enviar um evento

receber um evento

iniciar um temporizador

cancelar um temporizador

iniciar uma nova mquina de estado simultnea

deciso

SDL incorpora tipos bsicos de dados chamado Abstract Data Types, uma linguagem de
ao, e uma semntica de execuo, a fim de tornar a mquina de estados finitos
executvel. Um exemplo visto na figura 1.
[editar]Outros diagramas de estado
Existem vrias outras maneiras de se representar uma FSM, assim como mostrado na
figura 2.
Um exemplo o HDL:
Em HDL (Hardware Description Language) ou LDH(Lingugem de Descrio de Hardware)
possvel criar mquinas de estado simples e de descrio intuitiva. feito o uso de
estados nomeados para os quais no h valores binrios definidos. Em VHDLexistem as
palavras-chave como TYPE por exemplo, que define o tipo enumerado em VHDL. O
projetista lista em nomes simblicos (diferentes das palavras-chave) todos os possveis
valores que um sinal, varivel ou porto que declarado como sendo deste tipo pode
assumir. O valor binrio determinado pelo compilador, deixando o trabalho do projetista
mais simples.
Uso
Alm de seu uso na modelagem de sistemas reativos aqui apresentados, autmatos de
estados finitos so significativos em diversas reas, incluindo engenharia eltrica,
lingustica, cincia da computao, filosofia, biologia, matemtica e lgica. Mquinas de
estados finitos so uma classe de autmatos estudada na teoria dos autmatos e teoria
da computao. Em cincia da computao, mquinas de estados finitos so amplamente
utilizados na modelagem do comportamento do aplicativo, design de sistemas digitais de
hardware, engenharia de software, compiladores, protocolos de rede, e o estudo da
computao e linguagens.
[editar]Classificao
Existem dois grupos: Aceitadores/Reconhecedores e Transdutores.

[editar]Aceitadores e reconhecedores

Fig. 3 FSM aceitador: analisando a palavra "nice"


Aceitadores e reconhecedores produzem uma sada binria, dizendo sim ou no para
responder se a entrada aceita pela mquina ou no. Todos os estados do FSM esto a
dizer se quer aceitar ou no quer aceitar. No momento em que todas as entradas so
processadas, se o estado atual um estado de aceitao, a entrada aceita, caso
contrrio rejeitada. Como regra a entrada so smbolos (caracteres); aes no so
usadas. O exemplo da figura 3 mostra uma mquina de estados finitos que aceita a
palavra "nice". Neste FSM o nico estado de aceitao o nmero 7.
A mquina tambm pode ser descrita como a definio de uma linguagem, que conteria
todas as palavras aceitas pela mquina e nenhuma das que so rejeitadas; dizemos
ento que a linguagem aceita pela mquina. Por definio, linguagens aceitas por FSMs
so as linguagens regulares, isto , uma linguagem regular se existe alguma FSM que a
aceita.
[editar]Estado Inicial
O estado inicial geralmente mostrado desenhando uma seta "apontando para ele a
partir de qualquer lugar" (Sipser (2006) p. 34).
Estados de aceitao (ou Estados Finais)

Fig. 4: Representao de uma FSM. Este exemplo mostra uma FSM que determina se um
nmero binrio tem um nmero par ou mpar de 0's, onde S 1 um estado de aceitao.
Estados de aceitao so aqueles em que a mquina relata que a seqncia de entrada,
como processadas at agora, membro da linguagem que ela aceita. geralmente
representado por um crculo duplo. Um exemplo de um estado de aceitao aparece na
figura 4: um autmato finito determinstico (AFD) que detecta se a seqncia de
entrada binria contm um nmero par de 0's. S1 (que tambm o estado inicial) indica o
estado no qual um nmero par de 0's foi dado na entrada. S 1 , portanto, um estado de
aceitao. Esta mquina vai terminar em um estado de aceitao se a seqncia binria
contm um nmero par de 0's (incluindo qualquer seqncia binria que no contenham
0's). Exemplos de cadeias aceitas por este AFD so: epsilon (a cadeia vazia), 1, 11, 11 ...,
00, 010, 1010, 10110, etc.
Transdutores
Transdutores geram uma sada baseada em uma entrada e/ou um estado utilizando
aes. Eles so utilizados para aplicaes de controle.
A sada produzida por um contador ou uma mquina de estado pode vir diretamente das
sadas do flip-flop, ou alguns circuitos lgicos. As duas variaes so chamadas de
modelo Mealy de circuitos sequencial e modelo Moore.
No modelo Mealy, os sinais de sada tambm so controlados por sinais de entrada
adicionais, enquanto o modelo Moore no possui nenhum controle externos para os sinais
de sada gerados.A sada do modelo Moore funo apenas do estado atual do flip-flop.
As sadas de um circuito de tipo Moore sero completamente sncronas em relao ao
clock do circuito, enquanto sadas produzidas por um circuito de tipo Mealy podem mudar
assincronamente.
Mquina de Moore
A FSM utiliza apenas aes de entrada, i.e. a sada depende somente do estado. A
vantagem do modelo de Moore a simplificao do comportamento. Consideremos
por exemplo uma FSM de Moore de uma porta de elevador com 4 estados
"Aberta", "Fechada", "Abrindo", "Fechando". A mquina de estados reconhece dois
comandos: "comando_abrir" e "comando_fechar" que disparam a alterao de
estado. A ao de entrada (E:) no estado "Abrindo" liga o motor que abre a porta, a
ao de entrada no estado "Fechando" liga o motor na outra direo, fechando a
porta. Os estados "Aberta" e "Fechada" no desempenham nenhuma ao. Eles

sinalizam para o mundo externo (e.g. para outras mquinas de estado) a situao:
"porta est aberta" ou "porta est fechada".

Fig. 5 FSM transdutor: exemplo do modelo de Mealy


Mquina de Mealy
A FSM utiliza apenas input actions, i.e. a sada depende da entrada e do estado. O
uso de uma FSM de Mealy normalmente leva a uma reduo no nmero de
estados. Por exemplo uma FSM de Mealy implementando o mesmo
comportamento visto no exemplo de Moore (o comportamento depende no modelo
de execuo implementado na FSM e ir funcionar e.g. para uma FSM virtual mas
no para uma FSM de eventos dirigidos). Existem duas input actions(I:): inicie o
motor para fechar a porta se o comando_fechar (sensor_closed na figura 5)
chegar e inicie o motor na direo oposta para abrir a porta se o comando_abrir
(sensor_opened na figura 5) chegar.
Na prtica modelos mistos so muito utilizados.
Mais detalhes sobre as diferenas e usos dos modelos de Moore e Mealy,
incluindo um exemplo executvel, podem ser encontrados na nota tcnica
externa "Modelo de Moore ou Mealy?"(documento em ingls)
Determinismo
Uma distino adicional est entre autmato determinstico (AFD) e nodeterminstico (AFN). No autmato determinstico, para cada estado h
exatamente uma transio para cada entrada possvel. No autmato no
determinstico, pode haver nenhuma, uma ou mais de uma transio de um
determinado estado para uma entrada possvel.
A FSM com apenas um estado chamada de FSM combinatria e utiliza apenas
input actions. Este conceito til quando um nmero de FSM devem trabalhar
juntas, e onde conveniente considerar uma parte puramente combinatria como
uma forma de FSM para se adequar s ferramentas de projeto.

Semnticas Alternativas
H outros conjuntos de semntica disponvel para representar mquinas de
estado. Por exemplo, existem ferramentas para modelagem e lgica para projetar
controladores incorporados.[1] Eles combinam mquinas de estado hierrquico,
grficos de fluxo e tabelas de verdade para uma linguagem, resultando em um
diferente formalismo e conjunto de semntica. [2] A Figura 6 ilustra esta mistura de
mquinas de estado e grficos de fluxo com um conjunto de estados para
representar o estado de um cronmetro e um grfico de fluxo para controlar os
tiques do relgio. Estes grficos, como mquinas de estado originais de Harel,
[3]
apoiam os estados hierarquicamente aninhados, regies ortogonais, aes do
estado, e as aes de transio.[4]
Lgica da FSM

Fig. 6 Lgica da FSM (Mealy)


O prximo estado e a sada de uma FSM so uma funo da entrada e do atual
estado. A lgica da FSM mostrada na figura 6.
Modelo matemtico
Dependendo do tipo podem haver vrias definies.

Uma mquina de estados finitos tipo aceitador uma quntupla <, S, s0, , F>,
onde:

o alfabeto de entrada (um conjunto de smbolos finitos no vazio),

S um conjunto finito de estados no vazio,

s0 o estado inicial, um elemento de S,

a funo de transio de estados: : S x S (em um AFN,


seria : S x P(S), isto , iria retornar um conjunto de estados),

F o conjunto de estados finais, um (possivelmente vazio) subconjunto de S.

Para ambos os FSMs determinsticas e no-deterministica, convencional para


permitir ser uma funo parcial, ou seja, (q, x) no tem que ser definida para
cada combinao de q S e x . Se uma FSM M est em um estado q, o
smbolo seguinte x e (q, x) no est definida, ento M pode anunciar um erro
(ou seja, rejeitar a entrada). Isso til em definies de mquinas de estado em
geral, mas menos til ao transformar a mquina. Alguns algoritmos em sua forma
padro podem exigir funes totais.
Uma mquina de estados finitos uma mquina de Turing restrita em que a
cabea s pode "ler" as operaes, e sempre se move da esquerda para a direita.
[5]

Uma mquina de estados finitos tipo transdutor


uma sxtupla <, , S, s0, , >, onde:

o alfabeto de entrada (um conjunto de smbolos finitos no vazio),

o alfabeto de sada (um conjunto de smbolos finitos no vazio),

S um conjunto finito de estados no vazio,

s0 o estado inicial, um elemento de S,

a funo de transio de estados: : S x S (em um AFN,


seria : S x P(S), isto , iria retornar um conjunto de estados),

a funo de sada.

Se a funo de sada uma funo do estado e do alfabeto de entrada


(: S x )essa definio corresponde ao modelo de Mealy. Se a funo de
sada depende somente do estado (: S ) essa definio corresponde
ao modelo de Moore.
Se desconsiderarmos o smbolo primeira sada de uma mquina de Moore, (s0),
ento ela pode ser facilmente convertida em uma mquina de Mealy de sada
equivalente definindo a funo de sada de cada transio da de Mealy (isto ,
rotulando cada extremidade) com o smbolo de sada dado ao estado de destino
da de Moore. A transformao inversa menos simples, porque um estado da
mquina de Mealy pode ter rtulos de sada diferentes em suas transies de
entrada (extremidades). Cada estado tem de ser dividido em vrios estados da
mquina de Moore, uma para cada smbolo de sada incidente. [6]
Teoria de autmatos: linguagem formal e gramtica formal
Hierarq
uia
Chomsk
y

Gramtica

Linguagem

Reconhecedor

Tipo-0

Irrestrita

Recursivamente
enumervel

Mquina de Turing

--

--

Recursiva

Mquina de Turing que


sempre para

Tipo-1

Sensvel ao
contexto

Sensvel ao contexto

Autmato linearmente
limitado

Tipo-2

Livre de
contexto

Livre de contexto

Autmato com pilha

Tipo-3

Regular

Regular

Autmato finito

Implementao
Aplicaes de Hardware

Fig. 7 O diagrama de circuito para um contador TTL de 4bits, um tipo de mquina


de estados
Em um circuito digital, uma FSM pode ser construda utilizando um dispositivo
lgico programvel. Um controlador lgico programvel, portas lgicas e flipflops ou relays. Mais especificamente, a implementao de hardware requer
um registrador para armazenar o estado das variveis, um bloco de lgica
combinacional que determina o estado de transio e um segundo bloco de lgica
combinacional que determina a sada da FSM.
O mais famoso o controlador de Richards
Mquinas de Mealy e de Moore produzem lgica com sada assncrona, porque h
um atraso de propagao entre o flip-flop e sada. Isso causa frequncias mais
lentas operando na FSM. Uma mquina de Mealy ou de de Moore pode ser
convertida para uma FSM tal qual a sada diretamente de um flip-flop, o que faz
a FSM funcionar em freqncias mais altas. Este tipo de FSM chamado s vezes
FSM de Medvedev.[7] Um contador a forma mais simples desse tipo de FSM.
Aplicaes de Software
Os seguintes conceitos so comumente usados para construir aplicaes de
software com mquinas de estados finitos:

Programao baseada em autmatos

FSM orientada a eventos

FSM Virtual (VFSM)

Referncias
1. Tiwari, A. (2002). Formal Semantics and Analysis Methods for Simulink
Stateflow Models.

2. Hamon, G. (2005). A Denotational Semantics for Stateflow. International


Conference on Embedded Software (pp. 164172). Jersey City, NJ: ACM.
3. Harel, D. (1987). A Visual Formalism for Complex Systems. Science of
Computer Programming , 231274.
4. Alur, R., Kanade, A., Ramesh, S., & Shashidhar, K. C. (2008). Symbolic
analysis for improving simulation coverage of Simulink/Stateflow models.
Internation Conference on Embedded Software (pp. 8998). Atlanta, GA:
ACM.
5. BLACK, Paul E. (12 May 2008). "Finite State Machine". Dictionary of
Algorithms and Data Structures. U.S. National Institute of Standards and
Technology.
6. Automata theory with modern applications. [S.l.]: Cambridge University
Press, 2006. 105108 p. ISBN 9780521848879
7. FSM: Medvedev.

Timothy Kam, Synthesis of Finite State Machines: Functional Optimization.


Kluwer Academic Publishers, Boston 1997, ISBN 0-7923-9842-4

Tiziano Villa, Synthesis of Finite State Machines: Logic Optimization. Kluwer


Academic Publishers, Boston 1997, ISBN 0-7923-9892-0

Carroll, J., Long, D. , Theory of Finite Automata with an Introduction to Formal


Languages. Prentice Hall. Englewood Cliffs, 1989.

Hopcroft, J.E., Ullman, J.D., Introduction to Automata Theory, Languages and


Computation. Addison -Wesley, 1979.

Kohavi, Z., Switching and Finite Automata Theory. McGraw-Hill, 1978.

Gill, A., Introduction to the Theory of Finite-state Machines. McGraw-Hill, 1962.

Cassandras, C., Lafortune, S., "Introduction to Discrete Event Systems".


Kluwer, 1999, ISBN 0-7923-8609-4

Tocci, Ronald J., "Sistemas digitais:Princpios e aplicaes.", 10 edio, 2007

Ligaes externas

Description from the Free On-Line Dictionary of Computing

NIST Dictionary of Algorithms and Data Structures entry

Hierarchical State Machines

Algoritmo
Origem: Wikipdia, a enciclopdia livre.

Uma animao do algoritmo de ordenao quicksort de uma matriz de valores ao acaso.


As barras vermelhas marcam o elemento piv. No incio da animao, estando o
elemento para o lado direito, escolhido como o piv.
Um algoritmo uma sequncia finita de instrues bem definidas e no ambguas, cada
uma das quais pode ser executada mecanicamente num perodo de tempo finito e com
uma quantidade de esforo finita[1][2].
O conceito de algoritmo frequentemente ilustrado pelo exemplo de uma receita culinria,
embora muitos algoritmos sejam mais complexos. Eles podem repetir passos
(fazer iteraes) ou necessitar de decises (tais como comparaes ou lgica) at que a
tarefa seja completada. Um algoritmo corretamente executado no ir resolver um
problema se estiver implementado incorretamente ou se no for apropriado ao problema.
Um algoritmo no representa, necessariamente, um programa de computador[3], e sim os
passos necessrios para realizar uma tarefa. Sua implementao pode ser feita por
um computador, por outro tipo de autmato ou mesmo por um ser humano. Diferentes
algoritmos podem realizar a mesma tarefa usando um conjunto diferenciado de instrues
em mais ou menos tempo, espao ou esforo do que outros. Tal diferena pode ser
reflexo da complexidade computacional aplicada, que depende de estruturas de
dados adequadas ao algoritmo. Por exemplo, um algoritmo para se vestir pode especificar
que voc vista primeiro as meias e os sapatos antes de vestir a cala enquanto outro
algoritmo especifica que voc deve primeiro vestir a cala e depois as meias e os

sapatos. Fica claro que o primeiro algoritmo mais difcil de executar que o segundo
apesar de ambos levarem ao mesmo resultado.
O conceito de um algoritmo foi formalizado em 1936 pela Mquina de Turing de Alan
Turing e pelo clculo lambda de Alonzo Church, que formaram as primeiras fundaes
da Cincia da computao.

Etimologia
A palavra bastante interessante, pois numa anlise breve parece que algum quis
escrever "logaritmo" mas trocou as primeiras quatro letras. Os historiadores da
palavraalgoritmo encontraram a origem no sobrenome, Al-Khwarizmi, do
matemtico persa do sculo IX Mohamed ben Musa[4], cujas obras foram traduzidas no
ocidente cristo nosculo XII, tendo uma delas recebido o nome Algorithmi de numero
indorum, sobre os algoritmos usando o sistema de numerao decimal (indiano). Outros
autores, entretanto, defendem a origem da palavra em Al-goreten (raiz - conceito que se
pode aplicar aos clculos).[5] Algebra e algorismo tambm formam formas corrompidas da
palavra, pois as pessoas esqueciam as derivaes originais. O dicionrio Vollstndiges
Mathematisches Lexicon (Leipzig, 1747) refere a palavra "Algorithmus"; nesta designao
est combinado as noes de quatro calculos aritmticos, nomeadamente
a adio, multiplicao, subtrao e diviso. A frase "algorithmus infinitesimalis" foi na
altura utilizado para significar; "maneiras de calcular com quantidades infinitsimas"
(pequenas), uma inveno de Leibnitz. Tambm conhecido no meio financeiro, como
"algos".[6]
[editar]Formalismo

Fluxograma, um exemplo de algoritmo imperativo. O estado em vermelho indica a entrada


do algoritmo enquanto os estados em verde indicam as possveis sadas.
Um programa de computador essencialmente um algoritmo que diz ao computador os
passos especficos e em que ordem eles devem ser executados, como por exemplo, os
passos a serem tomados para calcular as notas que sero impressas nos boletins dos
alunos de uma escola. Logo, o algoritmo pode ser considerado uma sequncia de
operaes que podem ser simuladas por uma mquina de Turing completa.
Quando os procedimentos de um algoritmo envolvem o processamento de dados, a
informao lida de uma fonte de entrada, processada e retornada sob novo valor aps
processamento, o que geralmente realizado com o auxlio de uma ou mais estrutura de
dados.
Para qualquer processo computacional, o algoritmo precisa estar rigorosamente definido,
especificando a maneira que ele se comportar em todas as circunstncias. A
corretividade do algoritmo pode ser provada matematicamente, bem como a quantidade
assinttica de tempo e espao (complexidade) necessrios para a sua execuo. Estes
aspectos dos algoritmos so alvo da anlise de algoritmos.
A maneira mais simples de se pensar um algoritmo por uma lista de procedimentos bem
definida, na qual as instrues so executadas passo a passo a partir do comeo da lista,
uma idia que pode ser facilmente visualizada atravs de um fluxograma. Tal formalizao
adota as premissas da programao imperativa, que uma forma mecnica para

visualizar e desenvolver um algoritmo. Concepes alternativas para algoritmos variam


em programao funcional e programao lgica.
Trmino do algoritmo
Alguns autores restringem a definio de algoritmo para procedimentos que
eventualmente terminam. Marvin Minsky constatou que se o tamanho de um
procedimento no conhecido de antemo, tentar descobri-lo um problema indecidvel,
j que o procedimento pode ser executado infinitamente, de forma que nunca se ter a
resposta. Alan Turing provou em 1936 que no existe mquina de Turing para realizar tal
anlise para todos os casos, logo no h algoritmo para realizar tal tarefa para todos os
casos. Tal condio conhecida atualmente como problema da parada.
Para algoritmos interminveis o sucesso no pode ser determinado pela interpretao da
resposta e sim por condies impostas pelo prprio desenvolvedor do algoritmo durante
sua execuo.
[editar]Implementao
A maioria dos algoritmos desenvolvida para ser implementada em um programa de
computador. Apesar disso eles tambm podem ser implementados por outros modos tais
como uma rede neural biolgica (tal como no crebro quando efetuamos operaes
aritmticas) em circuitos eltricos ou at mesmo em dispositivos mecnicos.
Para programas de computador existe uma grande variedade de linguagens de
programao, cada uma com caractersticas especficas que podem facilitar a
implementao de determinados algoritmos ou atender a propsitos mais gerais.
[editar]Anlise de algoritmos
Ver artigo principal: Anlise de algoritmos
A anlise de algoritmos um ramo da cincia da computao que estuda as tcnicas de
projeto de algoritmos e os algoritmos de forma abstrata, sem estarem implementados em
uma linguagem de programao em particular ou implementadas de algum outro modo.
Ela preocupa-se com os recursos necessrios para a execuo do algoritmo tais como o
tempo de execuo e o espao de armazenamento de dados. Deve-se perceber que para
um dado algoritmo pode-se ter diferentes quantidades de recursos alocados de acordo
com os parmetros passados na entrada. Por exemplo, se definirmos que o fatorial de um
nmero natural igual ao fatorial de seu antecessor multiplicado pelo prprio nmero, fica
claro que a execuo de fatorial(10) consome mais tempo que a execuo
de fatorial(5).
Um meio de exibir um algoritmo a fim de analis-lo atravs da implementao
por pseudocdigo em portugus estruturado. O exemplo a seguir um algoritmo em
portugus estruturado que retorna (valor de sada) a soma de dois valores (tambm

conhecidos como parmetros ou argumentos, valores de entrada) que so introduzidos na


chamada dafuno:
Algoritmo "SomaDeDoisValores";
varivel:
SOMA,A,B: inteiro;
inicio
Escreva("Digite um numero");
Leia(A);
escreva("digite outro numero");
leia(B);
SOMA A + B;
escreva(SOMA);
fim.
Classificao
Classificao por implementao
Pode-se classificar algoritmos pela maneira pelo qual foram
implementados.

Recursivo ou iterativo - um algoritmo recursivo possui a caracterstica


de invocar a si mesmo repetidamente at que certa condio seja
satisfeita e ele terminado, que um mtodo comum em programao
funcional. Algoritmos iterativos usam estruturas de repetio tais como
laos, ou ainda estruturas de dados adicionais tais como pilhas, para
resolver problemas. Cada algoritmo recursivo possui um algoritmo
iterativo equivalente e vice-versa, mas que pode ter mais ou menos
complexidade em sua construo.

Lgico - um algoritmo pode ser visto como uma deduo lgica


controlada. O componente lgico expressa os axiomas usados na
computao e o componente de controle determina a maneira como a
deduo aplicada aos axiomas. Tal conceito base para
a programao lgica.

Serial ou paralelo - algoritmos so geralmente assumidos por serem


executados instruo a instruo individualmente, como uma lista de
execuo, o que constitui um algoritmo serial. Tal conceito base para
a programao imperativa. Por outro lado existem algoritmos
executados paralelamente, que levam em conta as arquiteturas de

computadores com mais de um processador para executar mais de uma


instruo ao mesmo tempo. Tais algoritmos dividem os problemas em
subproblemas e o delegam a quantos processadores estiverem
disponveis, agrupando no final o resultado dos subproblemas em um
resultado final ao algoritmo. Tal conceito base para a programao
paralela. De forma geral, algoritmos iterativos so paralelizveis; por
outro lado existem algoritmos que no so paralelizveis, chamados
ento problemas inerentemente seriais.

Determinstico ou no-determinstico - algoritmos determinsticos


resolvem o problema com uma deciso exata a cada passo enquanto
algoritmos no-determinsticos resolvem o problema ao deduzir os
melhores passos atravs de estimativas sob forma de heursticas.

Exato ou aproximado - enquanto alguns algoritmos encontram uma


resposta exata, algoritmos de aproximao procuram uma resposta
prxima a verdadeira soluo, seja atravs de estratgia determinstica
ou aleatria. Possuem aplicaes prticas sobretudo para problemas
muito complexos, do qual uma resposta correta invivel devido
sua complexidade computacional.

Classificao por paradigma


Pode-se classificar algoritmos pela metodologia ou paradigma de seu
desenvolvimento, tais como:

Diviso e conquista - algoritmos de diviso e conquista reduzem


repetidamente o problema em sub-problemas, geralmente de forma
recursiva, at que o sub-problema pequeno o suficiente para ser
resolvido. Um exemplo prtico o algoritmo de ordenao merge sort.
Uma variante dessa metodologia o decremento e conquista, que
resolve um sub-problema e utiliza a soluo para resolver um problema
maior. Um exemplo prtico o algoritmo para pesquisa binria.

Programao dinmica - pode-se utilizar a programao dinmica


para evitar o re-clculo de soluo j resolvidas anteriormente.

Algoritmo ganancioso - um algoritmo ganancioso similar


programao dinmica, mas difere na medida em que as solues dos
sub-problemas no precisam ser conhecidas a cada passo, uma
escolha gananciosa pode ser feita a cada momento com o que at
ento parece ser mais adequado.

Programao linear

Reduo - a reduo resolve o problema ao transform-lo em outro


problema. chamado tambm transformao e conquista.

Busca e enumerao - vrios problemas podem ser modelados


atravs de grafos. Um algoritmo de explorao de grafo pode ser usado
para caminhar pela estrutura e retornam informaes teis para a
resoluo do problema. Esta categoria inclui algoritmos de
busca e backtracking.

Paradigma heurstico e probabilstico - algoritmos probabilsticos


realizam escolhas aleatoriamente. Algoritmos genticos tentam
encontrar a soluo atravs de ciclos de mutaes evolucionrias entre
geraes de passos, tendendo para a soluo exata do problema.
Algoritmos heursticos encontram uma soluo aproximada para o
problema.

Classificao por campo de estudo


Cada campo da cincia possui seus prprios problemas e respectivos
algoritmos adequados para resolv-los. Exemplos clssicos so algoritmos
de busca, de ordenao, de anlise numrica, de teoria de grafos, de
manipulao de cadeias de texto, de geometria computacional, de anlise
combinatria, de aprendizagem de mquina, de criptografia, decompresso
de dados e de interpretao de texto.
Classificao por complexidade
Ver artigo principal: Complexidade computacional
Alguns algoritmos so executados em tempo linear, de acordo com a
entrada, enquanto outros so executados em tempo exponencial ou at
mesmo nunca terminam de serem executados. Alguns problemas possuem
mltiplos algoritmos enquanto outros no possuem algoritmos para
resoluo.
Referncias
1. Cruz, Adriano Joaquim de Oliveira (1 de janeiro de
1997). Algoritmos. Ncleo de Computao Eletrnica da
Universidade Federal do Rio de Janeiro. Pgina visitada em 12 de
janeiro de 2012.

2. Linder, Marcelo Santos. Programao para Computao.


Universidade Federal do Vale de So Francisco. Pgina visitada em
12 de janeiro de 2012.
3. Introduo programao cientfica. Grupo de Estudos sobre
Movimento Humano (20 de abril de 2011). Pgina visitada em 12 de
janeiro de 2012.
4. Loureiro, Antnio Alfredo Ferreira (1 de janeiro de 2010). Anlise
de complexidade. Departamento de Computao da Universidade
Federal de Ouro Preto. Pgina visitada em 12 de janeiro de 2012.
5. TAVARES, P. de Campos; Algoritmo, in "Enciclopdia Verbo
Luso-Brasileira da Cultura, Edio Sculo XXI", Volume II, Editorial
Verbo, Braga, Janeiro de 1998 ISBN 972-22-1864-6.
6. algoritmos e mercados Acedido em 20 de julho 2012
Bibliografia

Algoritmos e Programao - Teoria e Prtica: para universitrios e


profissionais de informtica: Novatec Editora. ISBN 85-7522-073-X

Donald E. Knuth (1973) The Art of Computer Programming, Volume 1:


Fundamental Algorithms (2 edio). Addison-Wesley, ISBN 0-20103809-9 (em ingls)

Ver tambm

Estrutura de dados

Autmato

Teoria da computao

Algoritmo probabilstico

Algoritmo de Euclides

Ligaes externas

O que algoritmo? (em portugus) - Revista Nova Escola

Dictionary of Algorithms and Data Structures

Curso de Algoritmos Computacionais (em portugus) - Livro Gratuito de


Algoritmos

Curso sobre Algoritmos em Portugus Estruturado: Curso desenvolvido


pelo criador do IPE (listado abaixo), com diversos exemplos.

Interpretador de Portugus Estruturado: O IPE capaz de executar


algoritmos em Portugus Estruturado diretamente usando a linguagem
definida na pgina do interpretador. Um manual acompanha o aplicativo
com exemplos de algoritmos.

Aprenda a Programar: Srie de artigos didticos ensinando Portugus


Estruturado

Exerccios resolvidos de algoritmos para estudo

Grafo nulo
Origem: Wikipdia, a enciclopdia livre.
Grafo nulo
vrtices

arestas

Automorfismos 1
No campo da matemtica da teoria dos grafos, o grafo nulo ou o grafo vazio ou
o grafo sem nenhum vrtice e (portanto) sem arestas, ou qualquer grafo sem arestas.
O grafo nulo (no sentido original) o objeto inicial na categoria de grafos, de acordo com
algumas definies de categoria de grafos. No tendo nenhum vrtice, o grafo nulo,
portanto, tambm no tem componentes ligados. Assim, embora o grafo nulo seja
umafloresta (um grafo sem ciclos), no uma rvore, uma vez que as rvores tm
componente ligados.
Grafo sem arestas
Grafo sem arestas
vrtices

arestas

Automorfismos n!
Nmero
cromtico

Propriedades

Integral
Simtrico

Notao
Alguns autores entendem que um termo melhor para o ltimo sentido (V, { }) para
qualquer conjunto V o mais explcito grafo sem arestas. Assim se reserva o termo grafo
nulo para o primeiro sentido: um grafo sem quaisquer vrtices. Outros, ainda, fazem essa
distino, aplicando o rtulo vazio para esses grafos sem arestas.
O grafo sem arestas de n-vrtices o grafo complementar para o grafo completo
por isso comumente denotado como
.

,e

Mesmo que esta definio forneca uma base slida para a definio de certas operaes
sobre grafos (por exemplo: decomposio) considerando-se grafos como conjuntos de
vrtices e arestas (V,E), esta definio levanta um problema na singularidade do elemento
nulo dos grafos.

Grafo regular
Origem: Wikipdia, a enciclopdia livre.
Famlias de grafos definidos por seus
automorfismos
distnciatransitivo

distnciaregular

simtrico
(arcotransitivo
)

t-transitivo, t
2

fortemente
regular

(se conectado)

transitivo
nos
vrtices e
nas

arestatransitivo e
regular

arestatransitivo

arestas

vrticetransitivo

grafo de
Cayley

regular

anti-simtrico

assimtric
o

Em Teoria dos grafos, um grafo regular um grafo onde cada vrtice tem o mesmo
nmero de adjacncias, i.e. cada vrtice tem o mesmo grau ou valncia. Um grafo
direcionado regular tambm deve satisfazer a condio mais forte de que o grau de
entrada e o grau de sada de cada vrtice sejam iguais uns aos outros.[1] Um grafo regular
com vrtices de grau k chamado um grafok-regular ou grafo regular de grau k.
Grafos regulares de grau no mximo 2 so fceis de classificar: Um grafo 0-regular
composto por vrtices desconectados, um grafo 1-regular consiste de arestas
desconectadas, e um grafo 2-regular consiste de ciclos desconectados.
Um grafo 3-regular conhecido como um grafo cbico.
Um grafo fortemente regular um grafo regular, onde cada par de vrtices adjacentes tem
o mesmo nmero l de vizinhos em comum, e cada par de vrtices no-adjacentes tem o
mesmo nmero n de vizinhos em comum. Os menores grafos que so regulares, mas no
fortemente regulares so os grafos ciclos e os grafos circulantes em 6 vrtices.
O grafo completo

fortemente regular para qualquer

Um teorema de Nash-Williams diz que cada k-grafo regular em 2k + 1 vrtices tem


um ciclo hamiltoniano.

grafo 0-regular

grafo 1-regular

grafo 2-regular

grafo 3-regular
Propriedades algbricas
Seja A a matriz de adjacncia de um grafo. Ento, o grafo regular se e somente
se
um autovetor de A..[2] Seu autovalor ser o grau constante do grafo.
Autovetores correspondentes a outros autovalores so ortogonais a , assim como para
tais autovetores

, ns temos

Um grafo regular de grau k conectado se e somente se o autovalor k tem uma


multiplicidade 1.[2]
Referncias
1. Chen, Wai-Kai. Graph theory and its engineering applications. [S.l.]: World
Scientific, 1997. 29 p. ISBN 978-981021859-1

2. a b Cvetkovi, D. M.; Doob, M.; and Sachs, H. Spectra of Graphs: Theory and
Applications, 3rd rev. enl. ed. New York: Wiley, 1998.
Ligaes externas

Multigrafo
Origem: Wikipdia, a enciclopdia livre.

Multigrafo com laos (azul) e arestas mltiplas (vermelho)


Multigrafo ou pseudografo um grafo no dirigido que pode possuir arestas
mltiplas (ou paralelas), ou seja, arestas com mesmos ns finais. Assim, dois vrtices
podem estar conectados por mais de uma aresta. Formalmente, um multigrafo G um par
ordenado

, sendo

um conjunto de vrtices ou ns,

um multiconjunto de pares no-ordenados de vrtices,


chamado arestas ou linhas.

Alguns autores tambm consideram multigrafos aqueles que tm laos, isto , uma aresta
que conecta um vrtice a ele mesmo[1]; outros chamam estes de pseudografos,
reservando o termo multigrafo para os casos em que no h laos[2].
Multigrafos podem ser usados, por exemplo, pra modelar as possveis conexes de vo
oferecidas por uma linha area. Nesse caso o pseudografo seria um grafo dirigido com
pares de arestas paralelas dirigidas conectando cidades para mostrar que possvel
voar para e a partir destas locaes.
Um multidgrafo um dgrafo (grafo com arestas dirigidas) em que pode-se ter arestas
mltiplas. Um multidgrafo

um par ordenado

um conjunto de vrtices ou ns,

, sendo

um multiconjunto de pares ordenados de vrtices, chamado arestas

dirigidas, arcos ou flechas.


Um multigrafo misto
pode ser definido do mesmo jeito que um grafo
misto (com arestas que podem ser dirigidas ou no).
Etiquetas
Multigrafos e multidgrafos podem suportar a noo de grafos etiquetados, de modo
similar. Contudo no h consenso na terminologia nesse caso.
As definies de multigrafos e multidgrafos etiquetados so similares, e definiremos
apenas o ltimo:
Um multidgrafo etiquetado um grafo etiquetado com arcos etiquetados.
Formalmente: Um multidgrafo etiquetado G um multigrafo com ns etiquetados e arcos.
Formalmente uma 8-tupla
um conjunto de ns e

, em que:
um multiconjunto de arcos.

so alfabetos finitos de ns e etiquetas de arcos disponveis.


e

so duas funes indicando o n de origem e o de

destino de um arco.
e

so duas funes descrevendo a etiquetagem

dos ns e arestas.

Notas
1. Para exemplos, veja. Bollobas, p. 7 and Diestel, p. 25.
2. Graphs, Colourings and the Four-Colour Theorem, by Robert A. Wilson,
2002, ISBN 0198510624, p. 6
Referncias

http://www.utm.edu/departments/math/graph/glossary.html#multigraph

Diestel, Reinhard; Graph Theory, Springer; 2nd edition (February 18, 2000). ISBN
0-387-98976-5.

Lao (teoria dos grafos)


Origem: Wikipdia, a enciclopdia livre.

Um grafo com um lao no vrtice 1


Em teoria dos grafos, um lao ou auto-loop (em ingls: loop, self-loop ou buckle)
uma aresta que conecta um vrtice a ele mesmo. Um grafo simples, no contm nenhum
lao.
Dependendo do contexto, um grafo ou um multigrafo pode ser definido de forma a permitir
ou proibir a presena de laos (muitas vezes em combinao com a permisso ou
proibio do uso de arestas mltiplas entre os mesmos vrtices:
Onde os grafos so definidos de modo a permitir laos e arestas mltiplas, um

grafo sem laos muitas vezes chamado demultigrafo.[1][2][3]


Onde os grafos so definidos de modo a no permitir laos e arestas mltiplas,

um multigrafo ou pseudografo muitas vezes definido como um grafo que pode ter
laos e arestas mltiplas.[4][5]

Grau
Para um grafo no direcionado, o grau de um vrtice igual ao nmero de vrtices
adjacentes.
Um caso especial um lao, que acrescenta dois para o grau. Isso pode ser entendido se
deixando cada conexo da contagem de arestas do lao como seu prprio vrtice
adjacente. Em outras palavras, um vrtice com um lao "v" a si mesmo como um vrtice
adjacente de ambas as extremidades da aresta, assim, se soma dois e no um, para o
grau.
Para um grafo direcionado, um lao soma um ao grau de entrada e um ao grau de sada
Ver tambm

Ciclo (teoria dos grafos)

Referncias
1. BALAKRISHNAN, V. K.. Graph Theory (em ingls). New York: McGraw-Hill,
1997. ISBN 0-07-005489-4
2. GROSS, Jonathon L.;YELLEN, Jay (eds.). Handbook of Graph Theory (em
ingls). [S.l.]: CRC, 2003. ISBN 1-58488-090-2
3. ZWILLINGER, Daniel. CRC Standard Mathematical Tables and Formulae (em
ingls). 31 ed. [S.l.]: Chapman & Hall/CRC, 2002. ISBN 1-58488-291-3
4. BOLLOBS, Bla. Modern Graph Theory (em ingls). 1 ed. New
York/Berlin: Springer, 2002. ISBN 0-387-98488-7
5. DIESTEL, Reinhard. Graph Theory (em ingls). 2 ed. New York/Berlin: Springer,
2000. ISBN 0-387-98976-5
Ligaes externas

Grafos - Definies (UFSC)

Ciclo (teoria de grafos)


Origem: Wikipdia, a enciclopdia livre.
(Redirecionado de Ciclo (teoria dos grafos))
Um ciclo em teoria de grafos "um passeio de comprimento mnimo trs, em que o
primeiro e o ltimo vrtice coincidem, mas nenhum outro vrtice repetido" [1]. Um ciclo
uma cadeia simples e fechada[2][3]. Um ciclo uma cadeia fechada[2].
O termo ciclo pode tambm ser usado para se referir ao grafo que contm os vrtices e
arestas de um ciclo na definio acima[1].
Definio matemtica
Matematicamente: Seja G um grafo. Um ciclo em G um caminho
{v1, v2, . . ., vk, vk+1}
sendo
v1 = vk+1, 3 k[4]
Referncias
1. a b SCHEINERMAN, Edward. Matemtica Discreta: Uma Introduo.
2 ed. So Paulo: Cengage Learning, 2011. p. 473.

2. a b FURTADO, Antonio Luz. Teoria dos Grafos. Rio de Janeiro,


Guanabara: LTC/Editora da USP, 1973. CDD 511.2076
3. BOAVENTURA NETTO, Paulo Oswaldo. Grafos. So Paulo: Edgard
Blcher, 2001. ISBN 85-212-0292-X
4. SZWARCFITER, Jayme Luiz. Grafos e algoritmos computacionais. Rio de
Janeiro: Campus, 1988. ISBN 85-7001-341-8
Vrtice de corte (teoria dos grafos)
Origem: Wikipdia, a enciclopdia livre.

Um grafo no-dirigido com n=5 vertices en-2=3 vrtices de corte; os vrtices de corte (em
vermelho) so aqueles que no esto em ambos as pontas

Um grafo no-dirigido sem vrtices de corte


Em matemtica e cincia da computao, um vrtice de corte ou ponto de
articulao[1] um vrtice de um grafo tal que a remoo deste vrtice provoca um
aumento no nmero de componentes conectados. Se o grafo era conectado antes da
remoo do vrtice, ele ser desconectado depois. Qualquer grafo conectado com um
vrtice de corte tem uma conectividade de 1.
Embora bem definidos, mesmo para grafos dirigidos (digrafos), os vrtices de corte so
utilizados principalmente em grafos no dirigidos. Em geral, um grafo conectado, no-

dirigido, com n vrtices no pode ter mais do que n-2 vrtices de corte. Naturalmente, um
grafo pode no ter nenhum vrtice de corte.
Uma ponte uma aresta anloga a um vrtice de corte, ou seja, a remoo de uma ponte
aumenta o nmero de componentes conectados do grafo.

Encontrando Vrtices de corte


Um algoritmo trivial

como se segue:

C = conjunto vazio (no final do algoritmo ele ir conter os


vrtices de corte)
a = nmero de componentes em G (encontrado usando uma Busca em
profundidade/Busca em largura)
para cada i em V com arestas incidentes
b = nmero de componentes em G com i removido
se b > a
i um vrtice de corte
C = C + {i}
fimse
fimpara
Um algoritmo com o tempo muito melhor execuo
uma Busca em profundidade.
Algoritmo em C++
#include
#include
#include
#include

<algorithm>
<set>
<vector>
<cstring>

#define MAX 100


using namespace std;
int n, time_s, visit[MAX];
vector<int> ADJ[MAX];
int dfs(int u, set<int>& ans){
int menor = visit[u] = time_s++;
int filhos = 0;
for(int i = 0; i<ADJ[u].size(); i++){
if(visit[ADJ[u][i]]==0){
filhos++;

[2]

conhecido usando

int m = dfs(ADJ[u][i], ans);


menor = min(menor,m);
if(visit[u]<=m && (u!=0 || filhos>=2)){
ans.insert(u);
}
}else{
menor = min(menor, visit[ADJ[u][i]]);
}
}
return menor;
}
set<int> get_articulacoes(){
set<int> ans;
time_s = 1;
memset(visit, 0, n*sizeof(int));
dfs(0,ans);
return ans;
}
Teste seu cdigo em: http://br.spoj.pl/problems/MANUT/
[editar]Vrtices de corte em rvores
Um vrtice v de uma rvore G um vrtice de corte de G somente se o grau do vrtice
maior que 1.
Referncias
1. GERSTING, Judith L.. Fundamentos Matemticos para a Cincia da Computao.
3 ed. Rio de Janeiro: LTC, 1993. 307 p. ISBN 85-216-1041-6
2. Slides apresentando o algoritmo O(n+m)

rvore (grafo)

Uma rvore com 5 arestas e 6 vrtices.


Na teoria dos grafos, uma rvore um grafo conexo (existe caminho entre quaisquer dois
de seus vrtices) e acclico (no possui ciclos)[1][2]. Caso o grafo seja acclico mas no
conexo, ele dito uma floresta. Uma floresta tambm definida como uma unio disjunta
de rvores.
Toda rvore um grafo, mas nem todo grafo uma rvore. Toda rvore um grafo
bipartido e planar. Todo grafo conexo possui pelo menos uma rvore de extenso
associada, composta de todos os seus vrtices e algumas de suas arestas.
Propriedades
Seja G um grafo. G uma rvore se satisfaz as seguintes condies:
G conexo e h exatamente um caminho entre dois vrtices quaisquer. J em uma

floresta, h no mximo um caminho entre dois vrtices, devido no-conectividade.

G acclico, e um simples ciclo formado se qualquer aresta for adicionada a G.

G conexo, e deixar de ser conexo se qualquer aresta for removida de G.

G conexo, acclico e tem n 1 arestas.

Definies
Uma rvore denominada enraizada se um vrtice escolhido como especial.

Esse vrtice chamado raiz. Uma rvore que no enraizada denominada livre.
Um grafo G uma rvore se e somente se existir um nico caminho entre cada par

de vrtices de G[2].
Referncias
1. BARBOSA, Ruy Madsen. Combinatria e Grafos. So Paulo: Livraria Nobel,
1975. p. 196. 2 vol. vol. 2.
2. a b SZWARCFITER, Jayme Luiz. Grafos e algoritmos computacionais. Rio de
Janeiro: Campus, 1988. p. 43-45. ISBN 85-7001-341-8
Este artigo sobre Informtica um esboo. Voc pode ajudar a Wikipdia expandindo-o.
Este artigo sobre matemtica um esboo. Voc pode ajudar a Wikipdia expandindo-o.

Clique
Origem: Wikipdia, a enciclopdia livre.

Nota: H uma pagina de Clique (desambiguao)

Um grafo com 23 cliques de 1-vrtice (its vertices), 42 cliques de 2-vrtices (suas


arestas), 19 cliques de 3-vrtices (os tringulos em azul claro), e 2 cliques de 4-vrtices
(azul escuro). Seis das arestas e 11 dos tringulos formam cliques maximais. As duas 4cliques em azul escuro so tanto mximas quanto maximais, e o nmero de clique do
grafo 4.
Na rea da matemtica da teoria dos grafos, uma clique em um grafo no-orientado um
subconjunto de seus vrticestais que cada dois vrtices do subconjunto so conectados
por uma aresta. Uma clique em um grafo G um subgrafo de G que completo. Eles
[1]
recebem a notao
. O tamanho de uma clique igual a cardinalidade de seu
conjunto de vrtices. Por exemplo no grafo G(V,E) sendo V seu conjunto de vrtices e E o
de arestas, temos que:
Se V={1,2,3,4,5} e E={(1,2),(1,3),(1,4),(1,5),(2,3),(2,4),(3,4),(4,5)}, o subgrafo
induzido pelos vrtices (1,2,3,4) uma clique de tamanho 4.
Ver tambm

Grafo completo

Referncias
1. BOAVENTURA NETTO, Paulo Oswaldo. Grafos. So Paulo: Edgard Blcher,
2001. ISBN 85-212-0292-X
Conjunto independente

Um conjunto independente num grafo.


Na teoria dos grafos, um conjunto independente de um grafo um conjunto de
vrtices de tal que no existem dois vrtices adjacentes contidos em S. Em outras
palavras, se e so vrtices quaisquer de um conjunto independente, no h aresta
entre e .
Todo grafo tem ao menos um conjunto independente: o conjunto vazio. Um grafo pode ter
vrios conjuntos independentes distintos.
Se S um conjunto independente de G e no existe um conjunto independente de G
maior que S, diz-se que S um conjunto independente mximo de G. O problema de,
dado um grafo G, determinar se h um conjunto independente de tamanho k um
problema NP-completo.
[editar]Definio
Conjunto independente de
Caractersticas
As seguintes indicaes so equivalentes:

um conjunto independente de
uma cobertura de vertices de

um conjunto independente de

Ver

Teoria dos grafos


Este artigo sobre uma Teoria um esboo. Voc pode ajudar a Wikipdia expandindo-o.

Grafo planar

Origem: Wikipdia, a enciclopdia livre.


Na teoria dos grafos, um grafo planar um grafo que pode ser representado no plano de
tal forma que suas arestas no se cruzem. Por exemplo, os dois grafos seguintes so
planares:

Teorema de Kuratowski
Segundo o Teorema de Kuratowski, um grafo planar no pode apresentar nem o grafo
completo K5 nem o grafo bipartido K3,3 como subgrafos. A prova de que o K3,3 no planar
pode ser feita de duas formas: por induo e por construo, enquanto a do K 5 feita
apenas por construo.
No possvel redesenhar estes grafos sem que suas arestas se cruzem.

Representao do K5 (um grafo completo com 5 vrtices).

Representao do K3,3 (um grafo bipartido completo com 6 vrtices).


Teorema das quatro cores
O teorema das quatro cores afirma que qualquer grafo planar 4-colorvel (ou 4-partvel).
Ver tambm

Teorema de Kuratowski

Teorema das quatro cores

Você também pode gostar