Escolar Documentos
Profissional Documentos
Cultura Documentos
OBJETIVOS:
Geral:
Capacitar o aluno a expressar-se nos conceitos e resultados da Matemática Discreta,
desenvolver a capacidade de raciocínio abstrato (lógico-matemático), que lhe auxiliará nas
demais disciplinas de Sistemas de Informação.
Específicos:
√ Contextualizar o que podemos fazer e resolver através da Matemática Discreta;
√ Dar instrumentos ao aluno para a aplicação, em situações práticas, dos conceitos
matemáticos;
√ Trabalhar modelos matemáticos que representem certos problemas concretos (noções de
modelagem matemática), em especial quando estes se referem a situações práticas;
√ Familiarizar o acadêmico com a escrita matemática formal e a linguagem computacional;
√ Representar fenômenos na forma algébrica e na forma gráfica;
√ Conhecer técnicas de resolução de problemas;
√ Desenvolver a capacidade de raciocínio abstrato (lógico-matemático) como um todo;
√ Obter uma visão abrangente de uma parte significativa da Computação e Informática;
√ Habilitar o aluno a solucionar problemas encontrados nas áreas que a computação dá
suporte como, por exemplo, o menor caminho a ser utilizado por uma transportadora usando
de grafos.
CONTEÚDO PROGRAMÁTICO
1ª AULA
Dinâmica de grupo para apresentação professor x aluno;
Apresentação do plano de ensino e metodologia a ser trabalhada.
2. Conjuntos:
2.1 Definição e notação;
2.2 Maneiras de definir um conjunto;
2.3 Tipos de conjuntos;
2.4 Relações entre conjuntos;
2.5 Propriedades ou relação de inclusão;
2.6 Conjuntos de conjuntos;
2.7 Operações sobre conjuntos;
2.8 Algumas propriedades importantes sobre operações.
3. Álgebra de Conjuntos:
3.1 Diagramas de Venn;
3.2 Conjuntos (interruptores).
4. Relações Binárias:
4.1 Introdução;
4.2 Definição;
4.3 Representação de uma relação;
4.4 Propriedades.
5. Funções:
5.1 Definição;
5.2 Domínio, Imagem e Contradomínio;
5.3 Tipos de Função;
5.4 Composição de função;
5.5 Função Inversa (f - 1).
6. Estruturas algébricas:
6.1 Definições;
6.2 Propriedades;
6.3 Grupos;
6.4 Álgebra Booleana.
9. Análise Combinatória:
9.1 Técnicas de contagem;
9.2 Fatorial;
9.3 Generalização do problema;
9.4 Arranjo simples;
9.5 Permutação;
9.6 Combinação.
METODOLOGIA
AVALIAÇÃO
As avaliações regulares (PD1, PD2) seguirão o modelo adotado pelo curso. As Avaliações
do Professor (AP), nesta disciplina, seguirão os seguintes critérios: Trabalhos entregues e
apresentados em aula e trabalhos final de aula (valem de 0 a 10 pontos).
BIBLIOGRAFIA BÁSICA:
Judith L. Gersting, Fundamentos Matemáticos para a Ciência da Computação, LTC
Editora, 4ª Edição, 2001.
BIBLIOGRAFIA COMPLEMENTAR:
Hrbacek, K. & Jech, T. Introduction to Set Theory. Marcel Dekker, INC. New York, 1984.
Liu, C.L. Elements of Discrete Mathematics. McGraw-Hill Computer Science Series, New
York, 1985. 2nd edition.
Kelly, J. The Essence of Logic. The Essence of Computing Series. Prentice Hall.
London.1997.
c) Álgebra e;
a) Qual é o menor percurso entre duas cidades utilizando certo sistema de transporte?
b) Quantas partidas são disputadas em um torneio de tênis em que participam n jogadores,
supondo que todas as partidas são eliminatórias?
c) Quantas rodadas são disputadas em um campeonato acadêmico em que participam n
alunos, supondo que todas as rodadas são eliminatórias para escolha do aluno com melhor
rendimento acadêmico num determinado jogo educacional?
d) Quantos passos gastam certo algoritmo de ordenação?
e) Qual a probabilidade de se ganhar na loteria?
f) Quantas possibilidades de escolha existem para uma senha válida (password) em certo
sistema de computação?
g) Qual o caminho a percorrer para que seja o melhor possível ao se fazer uma viagem de
avião, entre as cidades de São Paulo, Curitiba, Florianópolis e Porto Alegre, conforme as
possibilidades mostradas na figura 1 a seguir?
h) Etc.
6
2. CONJUNTOS
Em geral, observasse a cada dia mais a associação de objetos com uma mesma propriedade
(mulheres entre 30 e 35 anos; grupo da terceira idade; alunos da sala A; etc) sendo
organizados para servirem a geração de informações mais precisas, porém pra que isto
aconteça criou-se à teoria dos conjuntos: o estudo de uma notação precisa e um conjunto de
operações e propriedades que facilitem a manipulação de tais classificações.
A noção de conjunto é a mais simples e fundamental da Matemática, pois a partir dela podem
ser expressos todos os conceitos matemáticos.
Um conjunto é então uma coleção ou uma classe qualquer de objetos, conhecidos como
elementos do conjunto. São exemplos de conjuntos:
• Conjunto de países do Mercosul: M = {Brasil, Argentina, Paraguai, Uruguai}
• Conjunto dos números primos: A = {2; 3; 5; 7; 11; 13; 17; 19; 23...};
Lembre-se: Números primos são os números naturais maiores que 1 divisível somente por 1
e por ele mesmo.
• Conjunto das vogais: B = {a; e; i; o; u};
• Conjunto dos números naturais, maiores que 5: N = {6; 7; 8; 9;...}.
• Brasil ∈ M e Bolívia ∉ M
• 2∈ Ae9∉ A
• a∈Bey∉B
• 6∈Ne5∉N
⊃ : contém ∃ : existe
⊃ : não contém > : maior que
∈ : pertence < : menor que
∉ : não pertence ≥ : maior ou igual a
¬ : não ≤ : menor ou igual a
⇒ : se ... então ∑ n f (i) = f (0) + f (1) + f (2) + ... + f (n):
i=0
⇔ : se, e somente se somatório
∀ : para todo
Neste conteúdo, faremos uma revisão dos tipos de conjuntos numéricos e não-numéricos
assim como teremos a oportunidade de ampliarmos nossos conhecimentos, vamos adiante?
É comum e ao mesmo tempo conveniente usarmos notações padrões para representar alguns
conjuntos numéricos, tais como, (N) conjunto dos números naturais; (Z) conjunto dos números
inteiros; (Q) conjunto dos números racionais; (I) conjunto dos números irracionais; (R) conjunto
dos números reais;
9
Números Naturais:
Números Inteiros:
Números Racionais:
a
Q={x:x= , a ∈ Z, b ∈ Z, b ≠ 0 }
b
Todo nº racional pode ser representado na forma decimal, e podemos ter dois casos:
3 3
Ex: = 0,75 ; = 0,6 ; etc.
4 5
1 47
Ex: = 0,333... ; = 0,5222... ; etc.
3 90
Números Reais:
A reunião dos conjuntos Q e I resulta no chamado conjunto dos números reais, que será
denotado por R:
R=QUI
O conjunto dos nº irracionais, que tem representação decimal infinita e não – periódica.
Atenção:
N*; Z*, Q*; ℜ* = idem a nomenclatura, porém sem o número zero.
Z**; Q*+ ; ℜ*+ = idem a nomenclatura, porém sem o número zero e só os
positivos.
Z*-; Q*-; ℜ*- = idem a nomenclatura, porém sem o número zero e só os
negativos.
Conjunto Vazio:
Conjunto Unitário:
Exemplo: {todos os números pares e primos} = {x | x é um número natural par e primo} = {2}
Conjunto Universo:
Conjunto Finito:
Conjunto Infinito:
Um conjunto não definido, com início e fim podendo ser indeterminado, mas obrigatoriamwente
pelo menos um dos dois (início ou fim).
a) Igualdade de conjuntos
Dois conjuntos são iguais quando possuem os mesmos elementos. Por exemplo, se A =
{números naturais pares} e B = {0; 2; 4; 6; 8; ...}, então A = B.
Outros Exemplos:
Dados A = {1; 2; 3; 4; 5} e B = {5; 4; 3; 2; 1}, dizemos que A = B
{x : (x – 1)2 = 4} = {x : (x + 1) (x – 3) = 0} = { - 1; 3}
Lê-se A ⊂ B por:
• A é subconjunto de B
• A está contido em B
• A é parte de B
Exemplos:
A relação A ⊂ B chama-se relação de inclusão. Ela possui três propriedades básicas. Dados
os conjuntos A, B e C quaisquer:
• A ⊂ A: propriedade reflexiva;
• Se A ⊂ B e B ⊂ A, então A = B: propriedade anti-simétrica;
• Se A ⊂ B e B ⊂ C, então A ⊂ C: propriedade transitiva.
A propriedade anti-simétrica é sempre usada quando se quer provar que dois conjuntos são
iguais. Para provar que A = B basta provar que A ⊂ B e que B ⊂ A.
12
Exemplo
• C: conjunto de catarinenses
• B: conjunto de brasileiros
• S: conjunto de sul-americanos
Se C ⊂ B e B ⊂ S, então C ⊂ S.
Para um conjunto S, podemos formar um novo conjunto, no qual seus elementos (objetos)
serão os subconjuntos de S. A este novo conjunto daremos o nome de conjunto das partes de
S ou conjunto potência e o denotaremos por P (S).
Qualquer que seja o conjunto S, nós teremos no mínimo os subconjuntos ∅ (vazio) e o próprio
conjunto S.
Exemplos:
a) Dado o conjunto S = {2; 4; 6}, o seu conjunto das partes será formado pelos seguintes
conjuntos. OBS: Sempre por conjuntos, em forma de conjuntos, pois são subconjuntos.
P (S) = {∅; {2; 4; 6}; {2}; {4}; {6}; {2; 4}; {2; 6}; {4; 6} }
b) Dado o conjunto A = {a; e; i; o; u}, o seu conjunto das partes será formado pelos seguintes
conjuntos.
P (A) = {∅; {a; e; i; o; u}; {a}; {e}; {i}; {o}; {u}; {a; e}; {a; i}; {a; o}; {a; u}; {e; i}; {e; o}; {e; u}; {i; o};
{i; u}; {o; u}; {a; e; i}; {a; e; o}; {a; e; u}; {a; i; o}; {a; i; u}; {a; o; u}; {e; i; o}; {e; i; u}; {i; o; u}; {e; o;
u}; {a; e; i; o}; {a; e; i; u}; {a; e; o; u}; {e; i; o; u}; {a; i; o; u}}
a) Diferença ( — )
Dados os conjuntos A = {0; 1; 3; 6; 8; 9} e B = {1; 4; 9; 90}, podemos escrever o conjunto C
formado pelos elementos que pertencem a A mas que não pertencem a B. Assim, C = {0; 3; 6;
8}. De modo geral, escrevemos:
13
A – B = { x | x ∈ A e x ∉ B}
b) União ( ∪ )
Dados os conjuntos A = {0; 10; 20; 30; 40; 50} e B = {0; 30; 40; 50; 60}, podemos escrever o
conjunto C formado pelos elementos que pertencem a A ou pertencem a B ou a ambos.
Assim, C = {0; 10; 20; 30; 40; 50; 60}. O conjunto C é chamado reunião ou união de A e B e é
indicado por A ∪ B (lê-se: A reunião B ou A união B).
A ∪ B = { x | x ∈ A ou x ∈ B}
c) Intersecção ( ∩ )
A ∩ B = { x | x ∈ A e x ∈ B}
Exemplo: Se A = {2; 4; 6} e B = {2; 3; 4; 5}, então A ∩ B = {2; 4}
d) Complemento de um conjunto
B = {2; 4; 7; 8; 9}
C = {5; 8; 10}
U = {1; 2; 3; 4; 5; 6; 7; 8; 9; 10}
Obtêm-se como resultado das operações a seguir os seguintes subconjuntos:
a) A´= {4; 6; 7; 8; 9}
b) B´ = {1; 3; 5; 6; 10}
c) C´= {1; 2; 3; 4; 6; 7; 9}
d) B´ ∩ (A ∪ C) = {1; 3; 5; 6; 10} ∩ {1; 2; 3; 5; 8; 10} = {1; 3; 5; 10}
e) Produto Cartesiano
Exemplo: Dados os conjuntos A = {1; 2} e B = {3; 4}, os resultados encontrados ao que se pede
serão:
Exercícios
1 - Dados os conjuntos A = {a; b; c; d; e; f; g}, B = {b; d; g; h; i} e C = {e; f; m; n}, determine:
a) A–B
b) B–C
c) B–A
d) (A – B) ∪ (B – A)
a) A ∪ B
b) A ∪ C
c) A ∩ C
d) A ∩ B
e) (A ∪ B) ∩ C
f) (A ∩ C) ∪ B
3 - A partir do diagrama a seguir, hachure os conjuntos fazendo uma figura para cada item.
15
A B
a) A ∩ B
b) B ∪ C
c) (A ∪ B) ∩ C
d) (B ∩ C) ∪ A
e) A ∩ (C ∪ B)
f) (A ∩ B) ∪ (A ∩ C)
g) Compare os diagramas obtidos nos itens “e” e “f”. O que pode-se concluir?
Determine
a) A ∩ B
b) A ∪ B
c) B ∩ C
d) A ∪ B ∪ C
Sejam os conjuntos: A, B e C:
a) A ⊂ A ∪ B, B ⊂ A ∪ B
b) Se A ⊂ C e B ⊂ C, então A ∪ B ⊂ C
c) A ∩ B ⊂ A, A ∩ B ⊂ B
d) Se C ⊂ A e C ⊂ B, então C ⊂ A ∩ B
3. ÁLGEBRA DE CONJUNTOS
Nesta parte do conteúdo iremos revisar algumas operações (união, intersecção e diferença)
estudadas além de conhecer outras maneiras de se criar novos conjuntos a partir de conjuntos
já definidos, através da Álgebra dos conjuntos.
Em muitas discussões, todos subconjuntos sob consideração estão contidos enm um conjunto
fixo chamado conjunto universo, simbolizado por U. Assim uma vez identificado o conjunto
universo U, no início da discussão, todos subconjuntos mencionados dali em diante são
supostos subconjuntos de U.
O complemento de um conjunto A, denotado por A´, nada mais é do que o conjunto de todos
objetos (elementos) do conjunto universo U que não estão em A.isto é:
A´ = {x / x ∈ U e x ∉ A}
A´
A
Estes diagramas são chamados diagramas de Venn e a parte hachuriada indica o conjunto
determinado pela definição.
Diferença: A – B
A – B = { x | x ∈ A e x ∉ B}
Exemplo a:
U
17
Exemplo b:
A´ = { x | x é ímpar}
A – B = {0; 2; 4; 6; 8; 10}
U – B = {x / x ≤ 10} = B´
União: A ∪ B
A ∪ B = { x | x ∈ A ou x ∈ B}
Exemplo a: Exemplo b:
U Sejam U = N, A = {x | x é par} e B = { x | x >
10}
A ∪ B = {x ∈ N / x é par}
Intersecção: A ∩ B
A ∩ B = { x | x ∈ A e x ∈ B}
Exemplo a:
Exemplo b:
U
Sejam U = N, A = {x | x > 20} e B = { x | x >
10}
A ∩ B = {x ∈ N / x > 20}
Sejam a, b, c, ... conjuntos de pontos tomados num espaço E dado. Nas figuras a seguir, o
retângulo é o nosso espaço E e as figuras internas são os conjuntos.
Conforme a notação utilizada em interruptores, denota-se a + b o conjunto de todos os pontos
que pertencem somente ao conjunto a ou só ao conjunto b ou a ambos. Dizemos que a + b é a
união de a com b.
Seja a’ o conjunto de todos os pontos do espaço considerado que não pertencem a a. Dizemos
que a’ é o complemento de a.
Chamaremos conjunto vazio e o denotaremos por 0 o conjunto que NÃO contém pontos e;
denotaremos por 1 o conjunto de todos os pontos, que é o conjunto universo.
0+0=0 0·0=0
0+1=1 0·1=0
1+0=1 1·0=0
1+1=1 1·1=1
a + a’ = 1 a · a’ = 0
a+b=b+a a·b=b·a
a+0=a a·0=0
a+1=1 a·1=a
Podemos verificar sua validade construindo, os diagramas, apropriado, por exemplo, pelos
círculos de Euler ou diagramas de Venn. Outros resultados podem ser obtidos para três
conjuntos quaisquer de a, b e c.
Exemplo a:
Exemplo b:
Exemplo c:
EXERCÍCIOS
1 - Desenhar os diagramas de Euler-Venn para mostrar:
a) p + q’
b) p · q’
c) p·q’ + p’·q
d) (p + q) ·r
e) (p’ + q’) ·r
f) (p + q) ·r
a) b)
4. RELAÇÕES BINÁRIAS:
4.1. INTRODUÇÃO
A cada dia que passa, mais e mais as pessoas vêm usando os computadores, para processar
informações estruturadas, não é mesmo? Mesmo as aplicações mais elementares manipulam
itens de informações associados, guardados em arquivos. Tais informações podem ser: nomes
de empregado, cargo, departamento, salário, número de dependentes, e outras, organizadas
em tabelas.
Vamos supor, que temos dois conjuntos: A = {10 horas; 20 horas; 30 horas; 40 horas} e B =
{Ari; Estela; Luana; Rui}. Uma relação de A em B, pode ser aquela que ao número de horas
trabalhadas semanalmente associa-se o nome do empregado, como: 10 horas associa-se o
nome Ari, 20 horas associa-se a Estela, 30 horas associa-se a Luana e 40 horas associa-se a
Rui:
Esquema representativo:
A B
10 horas → Ari
20 horas → Estela
30 horas → Luana
40 horas → Rui
Outra forma de representar seria utilizando a notação de par ordenado: Produto Cartesiano.
ESQUEMA: (10 horas; Ari); (20 horas; Estela); (30 horas; Luana); (40 horas; Rui).
4.2. DEFINIÇÃO:
Relação é uma correspondência entre dois conjuntos, logo, dado um conjunto S, uma Relação
Binária em S é um subconjunto de S x S (um conjunto de pares ordenados de elementos de S).
EXEMPLO:
Lembretes:
• Dados dois conjuntos A e B, dá-se o nome de relação R de A em B a
qualquer subconjunto de A x B.
• R é relação de A em B ⇔ R ⊂ A X B
Além de escrevermos uma relação em forma de conjunto entre chaves, quando temos uma
relação em conjuntos finitos, A = {a1; ... ; an}, B = {b1; ... ; bm} contamos ainda com outras
representações, entre elas por: matriz retangular n x m (n = linha, m = coluna); plano
cartesiano; diagramas e, grafos.
Dados os conjuntos A = {1; 2; 3}, B = {6; 7; 8; 9} e R = { (1; 7); (1; 9); (2; 6); (2; 7); (2; 8); (3; 9) },
podemos representar R em:
R = { (1; 7); (1; 9); (2; 6); (2; 7); (2; 8); (3; 9)}
b) Representação em diagramas:
R = { (1; 7); (1; 9); (2; 6); (2; 7); (2; 8); (3; 9) }
A B
6
1
7
2
8
3
9
R = { (1; 7); (1; 9); (2; 6); (2; 7); (2; 8); (3; 9) }
Como vimos se A e B são conjuntos finitos, A = {a1; ... ; an}, B = {b1; ... ; bm}, uma relação R ⊂ A
x B pode ser representada por uma matriz retangular n x m (n = A, m = B) chamada matriz da
relação R (rij) satisfazendo:
1 se ai R bj (lê-se (ai ; bj ) ∈ R), ou seja, se existe a relação de a x b
rij = 0
caso contrário
Dada R = { (1; 7); (1; 9); (2; 6); (2; 7); (2; 8); (3; 9) }
R 6 7 8 9
1 0 1 0 1
2 1 1 1 0
3 0 0 0 1
e) Representação em grafos:
Dado A e B dois conjuntos finitos, A = {a1; ... ; an}, B = {b1; ... ; bm} e a relação R de A x B, cada
nodo da esquerda representa um elemento de A e cada nodo da direita um elemento de B,
assim a todos elementos de A e B corresponde um nodo, e uma linha de ai para bj
Significa ai R bj.
Dados A = {a1; a2; a3 }, B = {b1; b2; b3 } e R = { (a1; b1 ); (a1; b2 ); (a2; b1 ); (a2; b3 ); (a3 ; b3 ) }
R
a1 b1
a2 b2
a3 b3
OBS: Esta representação nós daremos maior ênfase no conteúdo sobre Teoria de Grafos, a
ser visto posteriormente, mas ainda nesta disciplina.
4.4. PROPRIEDADES:
As relações binárias possuem n propriedades, elas podem ser uma relação: inversa;
identidade; reflexiva; irreflexiva; simétrica; anti-simétrica e transitiva.
Sejam A e B dois conjuntos, não necessariamente distintos, e seja R uma relação de A para B.
A relação inversa R -1 é uma relação de B para A tal que b R-1a se e somente se aRb, isto é
R -1 = {(b; a) / (b; a) ∈ B x A e (a; b) ∈ R}.
Exemplo: Dados os conjuntos A = {1; 2; 3}, B = {6; 7; 8; 9} e R = { (1; 7); (1; 9); (2; 6); (2; 7); (2;
8); (3; 9) }, teremos: R -1 = { (7; 1); (9; 1); (6; 2); (7; 2); (8; 2); (9; 3) }
b) Relação Identidade (I):
c) Relação Reflexiva:
R é considerada uma relação do tipo reflexiva se para todo x ∈ S existir xRx, ou seja, todo x
está relacionado a si mesmo. Quando representada em matriz terá 1 em toda diagonal
principal.
Seja S = {0; 1; 2}, R = { (0; 0); (0; 1); (1; 1); (2; 2) } a relação R é reflexiva como mostra a matriz
a seguir.
R 0 1 2
0 1 1 0
1 0 1 0
2 0 0 1
d) Relação Irreflexiva:
R é considerada uma relação do tipo irreflexiva se, ao contrário da reflexiva, para todo x ∈ S
não existir xRx e {(x; x) ∉ R}. Quando representada em matriz não terá 1 algum em toda
diagonal principal.
Seja S = {0; 1; 2}, R = { (0; 1); (0; 2); (2; 1); (2; 0) } a relação R é irreflexiva como mostra a
matriz a seguir.
R 0 1 2
0 0 1 1
1 0 0 0
2 1 1 0
e) Relação Simétrica:
R é chamada relação simétrica se sempre que xRy, yRx, ou seja, se x está relacionado a y
então y está relacionado a x. A matriz de R é uma relação simétrica quando rij = rji , ou seja,
quando as linhas forem idênticas as colunas.
Dado S = {a; b; c}, R = { (a; b); (b; a); (b; c); (c; b); (c; c) } a relação R é simétrica como mostra
a matriz a seguir.
R a b C
a 0 1 0
b 1 0 1
c 0 1 1
f) Relação Anti-simétrica:
Dado S = {a; b; c}, R = { (a; a); (a; b); (b; c); (c; a) } a relação R é anti-simétrica como mostra a
matriz a seguir.
R a b c
a 1 1 0
b 0 0 1
c 1 0 0
g) Relação Transitiva:
R é chamada relação transitiva se para todo x, y, z ∈ S se xRy e yRz, então xRz, ou seja, se x
está relacionado a y e y está relacionado a z, então x está relacionado a z.
Dado S = {a; b; c}, R = { (a; b); (a; c); (b; c) } a relação R é transitiva como mostra a matriz a
seguir.
R a b c
a 0 1 1
b 0 0 1
c 0 0 0
5. FUNÇÕES
A Função é um tipo de relação de alta relevância para computação. Um compilador, por
exemplo, é uma função que transforma um programa escrito em linguagem de alto nível (como
FORTRAN, PASCAL) em linguagem de máquina. Codificadores são funções que transformam
números ou dados alfabéticos em seqüências binárias; nesse caso é desejável se ter o
processo reverso que a partir da seqüência binária chegue ao dado original. Surge, então a
questão de existência ou não da função inversa.
5.1. DEFINIÇÃO
A definição nos diz que uma relação f de A em B é uma função se, e somente se:
Todo elemento x ∈ A tem um correspondente y ∈ B, definido pela relação f;
A cada x ∈ A não podem corresponder dois ou mais elementos de B, através de f.
EXEMPLO: Sejam A = {1; 3; 4} e B = {2; 4; 5; 7} e f = {(1; 2), (3; 4), (4; 5)} Verificar se f é uma
função de A em B.
Solução: é uma função, pois, para cada elemento do conjunto A, existe um e somente um
correspondente no conjunto B.
EXEMPLO 1: Dados A = {1, 3, 4} e B = {2, 4, 5, 7} e f = {(1, 2), (3, 4), (4, 5)}, determine o
domínio e a Imagem.
a) f ( 3 ) b) f ( ½ ) c) f ( x + 1 ) d) f ( a - 1)
Solução:
1+6+a=8→a=1
a) Sobrejetora:
Uma função f: A → B é do tipo sobrejetora se, e somente se, Im = CD, ou seja, quando sua
imagem é igual a seu contradomínio.
EXEMPLO: Dados os conjuntos A = { -2; -1; 0; 1}, B = {0; 1; 4} e a função f: A → B, definida por
f (x) = x2 substituindo os valores de x e encontrando y, obtêm-se como Im = {0; 1; 4} e como CD
= {0; 1; 4}.
Note que o conjunto imagem é igual ao seu contradomínio, logo, teremos uma função do tipo
sobrejetora.
OBS: O Desenho (o qual deverá ser copiado) dos diagramas será representado em sala de
aula.
b) Injetora:
Diz-se que f é do tipo injetora se, e somente se, para qualquer x1 ; x2 ∈ A, com x1 ≠ x2, tivermos
f (x1) ≠ f (x2).
OBS: O Desenho (o qual deverá ser copiado) dos diagramas será representado em sala de
aula.
c) BIjetora:
Note que o conjunto imagem é igual ao seu contradomínio, logo, temos uma função do tipo
sobrejetora e ao mesmo tempo injetora, pois f associa elementos distintos de A à elementos
distintos de B, logo, f é do tipo bijetora.
OBS: O Desenho (o qual deverá ser copiado) dos diagramas será representado em sala de
aula.
Além das funções estudadas falaremos um pouquinho sobre funções composta e inversa.
Para resolvermos situações como esta, faz-se necessário, ou ao menos recomendasse o uso
de funções compostas.
NOTAÇÃO:
Solução: f(g(x))
f(1 – 3x) = x2 + 2x
f(1 – 3x) = (1 – 3x)2 + 2(1 – 3x)
f(1 – 3x) = (1 – 3x) . (1 – 3x ) + 2 – 6x
f(1 – 3x) = (1 – 3x – 3x + 9x2) + 2 – 6x
f(1 – 3x) = (1 – 6x + 9x2) + 2 – 6x
f(1 – 3x) = 1 – 6x + 9x2 + 2 – 6x
f(1 – 3x) = 3 – 12x + 9x2
Nem toda função possui inversa. Para que a inversa de uma função exista ela precisa ser do
tipo bijetora, caso contrário não possui inversa.
Então, caso a função seja bijetora, é possível determinar a sua inversa, trocando-se a variável
x por y na Lei que define a função e em seguida “isolamos” o y, obtendo-se a Lei que define a
função inversa.
EXEMPLO: Dada a função definida por y = x + 2 (ou seja, f(x) = x + 2, obtenha a Lei de sua
função inversa.
Solução: Primeiro substitui-se valores no x para verificar se é uma função do tipo bijetora.
Verificado que sim, basta trocar o x por y, obtendo-se a função:
x = y + 2 Isolando y têm-se y = x – 2 (INVERSA)
6.1. DEFINIÇÕES
Vamos iniciar com a soma de inteiros. Existe um conjunto Z de objetos, ou seja, elementos (os
inteiros) e uma operação binária nesses objetos (a soma).
Lembre-se:
Operações binárias:
Uma operação binária (* ou •) num conjunto não vazio S é uma regra para combinar dois
elementos x, y ∈ S para produzir um elemento z ∈ S, representado como x * y, ou, x • y.
De outro modo, uma operação binária num conjunto não vazio S é uma função f: S × S → S.
Se x e y são elementos de S, f(x, y) é representado como x * y, ou, x • y.
2 + (3 + 5) = (2 + 3) + 5
é válida em cada lado, os inteiros permanecem na mesma ordem, mas o agrupamento desses
inteiros, que indica a ordem em que são efetuadas as somas, muda. A mudança desses
agrupamentos não altera a resposta.
2+3=3+2
Equação do tipo:
2+0=2
0+3=3
– 125 + 0 = – 125
Também são válidas. Somar zero a qualquer inteiro não altera o valor daquele inteiro.
6.2. PROPRIEDADES
a) Associativa
A operação • é associativa se: (∀x) (∀y) (∀z) [x • (y • z) = (x • y) • z]
Nesta propriedade não precisamos usar parênteses já que o agrupamento não é relevante.
b) Comutativa
A operação • é comutativa se: (∀x) (∀y) [x • y = y • x]
c) Elemento Identidade
[S, •] tem um elemento identidade se: (∃i) (∀x) [x • i = i • x = x]
d) Inverso
Se [S, •] tem um elemento identidade i, então cada elemento em S tem Inverso em relação a •
se: (∀x) (∃x - 1) [x • x - 1 = x - 1 • x = i]
ATENÇÃO:
2 - A subtracção não é uma operação binária no conjunto Z+ dos inteiros positivos (o resultado
não pode ser negativo).
Exemplo: 5 – 15 = – 10
3 - A divisão não é uma operação binária em Z (resultado não pode ser fracionário), nem em Q
(divisão por zero).
Exemplo: 5/15 = 1/3 ou 10 / 0 não existe.
Tabelas:
4 - Uma operação binária * num conjunto não vazio S pode ser definida por uma tabela
bidimensional (de Cawley) em que o resultado x * y fica na intersecção da linha x com a coluna
y.
Exemplo:
* a b c d
a a b c d
b d c a b
c c b a a
d d b c a
6.3. GRUPOS:
Uma Álgebra de Boole é um conjunto B no qual estão definidas duas operações binárias, + e ⋅
e uma operação unária ´, e que contém dois elementos distintos, 0 e 1, tais que as seguintes
propriedades são válidas, quais quer que sejam: x, y, z ∈ B:
Então, nada mais é do que uma formalização que generaliza, ou modela, os dois casos que
consideramos (e talvez outros).
7. TÉCNICAS DE DEMONSTRAÇÃO DE TEOREMAS
OBS: Este conteúdo será trabalhado em forma de trabalho (exercício) via xerox e pesquisas
em livros e Internet.
8. TEORIA DOS GRAFOS
8.1. INTRODUÇÃO
A Teoria de grafos serve como um modelo matemático para qualquer sistema, envolvendo uma
relação binária.
Exemplos:
1. Quando queremos fazer uma viagem de carro, utilizamos um mapa de estradas, que nos
auxilie a chegar de uma cidade a outra, de tal forma que o caminho a ser percorrido seja o
melhor possível. Em conseqüência distinguimos dois tipos de objetos: as cidades e as
estradas.
Podemos utilizar tais conjuntos de objetos para definir uma relação. Se denotarmos como V o
conjunto de cidades e como A ou E o conjunto de estradas, podemos definir uma relação R
entre elementos de V e de A. Podemos também denotar o conjunto de estradas A, como um
par de cidades unidas pela estrada. Assim podemos denotar a relação E(vi, vj).
2. No século 18, havia na cidade de Königsberg, um conjunto de sete pontes que cruzavam o
rio Pregel . Elas conectavam duas ilhas entre si e as ilhas com as margens. Por muito tempo os
habitantes daquela cidade perguntavam-se se era possível cruzar as sete pontes numa
caminhada contínua sem passar duas vezes por qualquer uma delas?
Aqui podemos também distinguir entre dois tipos de objetos, as pontes e as regiões de terra.
Neste caso podemos denotar as regiões de terra como um conjunto V, e o conjunto de pontes
A, e estabelecer uma relação entre estes dois conjuntos.
3. Três canibais e três missionários estão viajando juntos e chegam a um rio. Eles desejam
atravessar o rio, sendo que o único meio de transporte disponível é um barco que comporta no
máximo duas pessoas. Há uma outra dificuldade: em nenhum momento o número de canibais
pode ser superior ao número de missionários, pois desta forma os missionários estariam em
grande perigo de vida. Como administrar a travessia do rio? Quais são os objetos que
podemos distinguir neste exemplo?
4. Um candidato a presidente, vai realizar a última gira política de sua campanha. Como os
recursos estão escassos, o candidato está pensando em visitar as cidades de maior índice
populacional. O aluguel do jatinho tem um custo que depende da distância percorrida. De que
forma o candidato poderá reduzir seus custos?
8.2. DEFINIÇÃO E CONCEITOS PRELIMINARES
Baseados, nestas observações e na idéia simples de pontos interligados por linhas é possível
definir grafo como um par G = (V,E), onde V é um conjuntos finito e não vazio, e E é uma
relação (função) sobre os elementos de V. Serve como um modelo matemático para qualquer
sistema envolvendo uma relação binária entre seus elementos.
Os elementos de V são chamados de vértices (ou nós) e, os pares ordenados (vi ,vj), que
representam as relações entre os elementos de V, de arestas (linhas) do grafo.
Definições:
Uma aresta é dita incidente com os vértices que ela liga. Se uma aresta é incidente em um
único vértice é chamado de laço.
Dois vértices são chamados de adjacentes se estão ligados por arestas. Um vértice é dito
isolado, se não tem aresta incidindo sobre ele.
Exemplo:
laço
v2
v1
v6
v4
v3
v5
Vértices Adjacentes:
v1 e v2, v1 e v5, v2 e v3, v2 e v4, v3 e v5, v4 e v5.
Vértice Isolado:
v6
Define-se grau de um vértice v ε V, denotado por gr(v) como sendo o número de arestas
incidentes em v. Um grafo é dito regular de grau r se todos seus vértices possuem grau r.
Se o grafo é regular de grau zero, é dito nulo. Um vértice de grau 1, é dito pendente.
Exemplo:
v1 v2
v2
v1
v6
v3
v5
v3
v4
v4
a) b)
a) Grafo regular de grau 3 (r = 3), pois todos os vértices do grafo possuem 3 arestas incidindo
sobre eles.
Ordem do Grafo: | V | = n = 4
|A|=m=6
Teorema 1: A soma dos graus dos vértices em um grafo é igual a duas vezes o número de
arestas.
Demonstração.
Cada aresta contribui na contagem de 1 no grau de cada dois vértices com os quais ela é
incidente, então cada aresta é sempre contada duas vezes.
Teorema 2: Em qualquer grafo existe sempre um número par de vértices de grau impar.
Demonstração:
Vamos supor que exista um grafo G(V,E) onde todos os vértices possuam grau impar. Logo
Um grafo é dito dirigido ou digrafo se suas arestas possuem orientação. Em caso contrario
diz-se que o grafo é não dirigido. Em um grafo dirigido, as arestas são chamadas de arcos.
Sucessor: de um vértice vi é todo vj que seja extremidade final de um arco que parte de vi.
Antecessor: de um vértice vi é todo vértice vj, que seja extremidade inicial de um arco que
termina em vi.
O grau de um vértice em um grafo orientado, é a soma dos grau dos arcos que saem do
vértice e dos arcos que entram no vértice, isto é o grau de emissão ( de saída) e o grau de
recepção (de entrada).
Exemplos:
Se G(V1 ∨ V2, E) é tal que V1 ∧ V2 = ∅ é toda aresta (vi, vj) ε E, é tal que vi ε V1e vj ε V2, então
o grafo é chamado de bipartido, e denotado pôr Kr,s onde | V1| = r, | V2| = s.
Exemplos:
K 2 ,4 K 3 ,2
Exemplos:
Um grafo, onde existe um número wij, associado a cada aresta, é denominado de grafo
valorado e o número wij é chamado de custo da aresta. Em redes de comunicação ou
transporte estes custos representam alguma quantidade física, tal como distância, eficiência,
capacidade da aresta correspondente, etc.
8.3.4. Grafos Isomorfos
Dois grafos são isomorfos se for possível fazer coincidir, respectivamente, os vértices de suas
representações gráficas, (se existe uma correspondência entre seus vértices) preservando as
adjacências das arestas.
Formalmente pode-se dizer que G1(V1, E1) e G2(V2, E2) são isomorfos se satisfizerem as
seguintes condições:
1. | V1 | = | V2 | = n
2. Existe uma função biunívoca f : V1 → V2 tal que ( v, w ) ∈ E1 ⇔ (f(v),f(w)) ∈ E2 para
todo v, w ∈ E1.
Exemplos:
5 6 7 8 f(5) f(8)
f(6) f(7)
f(2) f(3)
f(1) f(4)
1 2 3 4
G1 G2 G3
Um grafo simples, em que cada par distinto de vértices é adjacente, é denominado de grafo
completo. O grafo completo de n vértices é representado como Kn. O número de arestas de
um Kn é dado por m = (n – 1).
Exemplos:
( v , v ) ∉ E' .
i j
Exemplos:
v5 v4 v5 v4
v6 v3 v6 v3
v1 v2 v1 v2
G G’
Exemplos:
Dado um grafo G(V,E), a matriz de adjacência A = [ aij ] é uma matriz n x n tal que:
Muitas vezes são representadas as arestas paralelas com números maiores que 1, só que isto
não é muito comum.
Um grafo não dirigido é sempre uma matriz simétrica, portanto poderá ser representado por
uma matriz triangular.
Exemplo:
v1 v2
v4 v3
Matriz de Adjacência
v1 v2 v3 v4
v1 0 1 0 1
v2 0 0 1 0
v3 0 0 0 1
v4 1 1 1 0
Um grafo pode ser descrito por sua estrutura de adjacência, isto é, uma lista de todos os
vértices adjacentes de cada vértice. A lista adjacente para um vértice i é uma lista, em alguma
ordem, de todos os vértices adjacentes a vi.
v1 v2
v5 v3
v6
v4
v1 v2 v5 v6 nil
v2 v1 v4 v5 nil
v3 nil
v4 v2 v5 nil
v5 v1 v2 v4 v6 nil
v6 v1 v5 nil
Um grafo simples, pode ser representado pôr uma matriz nxn de custos W = [ wij ] ,onde
Pode-se representar um grafo com duas listas de vértices, uma lista para representar o início
das arestas e outra lista representar o fim.
Exemplo:
v2 v3
v5
v1 v4
g = (v2, v3, v3, v4, v5, v5)
h = (v1, v2, v5, v3, v2, v4)
Onde: g é a lista que representa os vértices origem das arestas e h é a lista que representa os
vértices destino das arestas
Exemplo:
e1
v2 v3
e4 e5
e2
v1 v4
e3
Matriz de Incidência
e1 e2 e3 e4 e5
v1 0 0 -1 -1 1
v2 1 0 0 1 0
v3 -1 1 0 0 -1
v4 0 -1 1 0 0
Intuitivamente o conceito de conexidade é óbvio. Um grafo é dito conexo se for possível visitar
qualquer vértice, partindo de um outro e passando por arestas. Esta visita sucessiva é
denominada: caminho.
Formalmente, diz-se que um grafo G é conexo, se existe pelo menos um caminho entre
qualquer par de vértices em G. Por exemplo:
Conexo
Não Conexo
É fácil de ver que um grafo não conexo consiste de dois ou mais subgrafos conexos. Cada um
desses subgrafos conexos é denominado uma componente.
TEOREMA 1 – Um grafo G é não conexo, se e somente se seu conjunto de vértices V pode ser
particionado em dois subconjuntos disjuntos, não vazios V1 e V2, tais que nenhuma aresta
exista em G ligando vértices de V1 a vértices de V2.
Prova: Suponha que exista tal partição, isto é, V = V1 + V2 tal que V1 ∩ V2 = ∅. Considere
dois vértices arbitrários u e w de G, tal que u ∈ V1 e w ∈ V2. Nenhum caminho deve existir
entre os dois vértices u e w, pois, caso contrário, existiria pelo menos uma aresta cujos vértices
adjacentes estariam um em V1 e o outro em V2. Portanto, se existe tal partição, G é não
conexo.
Uma componente fortemente conexa de um grafo G(V,E) é definida como sendo um subgrafo
G’ conexo maximal de G, tal que o conjunto de vértices de G’ forme um caminho fechado, isto
é, qualquer vértice vi ∈ G’ pode ser atingido partindo-se de um outro vj ∈G’ e vice-versa, para
qualquer vi e vj ∈ G’.
É fácil de ver que se G’ for uma componente fortemente conexa, seus vértices não
aparecerão em outra componente G’’ independente e fortemente conexa. Esta afirmação é
bastante óbvia, pois se vi aparece em duas ou mais componentes fortemente conexas G’ e G’’,
então existe um caminho de um vértice vi ∈ G’ a outro vértice vj ∈ G’’ e vice-versa. Portanto a
união das duas componentes será fortemente conexa, o que é uma contradição em relação a
definição.
Se R(vi) for definido como sendo o conjunto de todos os vértices que podem ser atingidos
partindo-se do vértice vi, e Q(vi) o conjunto de todos os vértices vj que são tomados como inicio
de um caminho para atingir vi , então a componente fortemente conexa (CFC) pode ser definida
como CFC = R(vi) ∩ Q(vi).
Se o conjunto CFC for removido do grafo G, então o subgrafo restante pode ser tratado da
mesma forma anterior, e, assim, determinada uma outra componente fortemente conexa.
Este processo deve ser repetido até que todos os vértices de G tenham sido alocados em uma
componente fortemente conexa.
EXEMPLO
v6 v10 v11
v1 v5 v13
v8 v12
v2
v7
v4 v9
v3
Define-se o grafo G* = (X*,A*) tal que cada um de seus vértices represente o conjunto de
vértices de uma componente fortemente conexa de G, e a aresta (xi*, xj*) exista, se e somente
se existir uma aresta (xk, xh) em G tal que xk ∈ xi* e xh ∈ xj*. Um grafo assim definido é
denominado de grafo reduzido. É fácil de ver que este grafo não contém qualquer caminho
fechado.
X1* = { v1 , v2 , v5 , v6}.
X2* = { v8 , v10}.
X3* = { v4 , v7 , v9}.
X4* = { v11 , v12 , v13}.
X5* = { v3}.
EXEMPLO:
v1 v2 v6
v3 v5
v4 v7
1101100 1000000
0101100 0100000
0011100 0010000
R= 0001100 R⊗Q= 0001000
0000100 0000100
0011111 0000011
0011111 0000011
Portanto, o grafo reduzido G* de G será da seguinte forma:
X*2 = {v2}
X*4 = {v4}
X*6 = {v6 , v7}
X*5 = {v5}
8.5.2. BASES
Uma base B de um digrafo G(V, E), é um conjunto de vértices que não podem ser alcançados
a partir de outros vértices deste digrafo. Este conjunto é minimal no sentido de que nenhum
subconjunto de B tem esta propriedade.
Assim R(B), o conjunto alcançável de B, significa que:
R(B) = U R(vi)
vi ∈ B
8.5.3. DISTÂNCIA
Dados dois vértices v e w pertencentes ao grafo G(V, E), denomina-se distancia, entre v e w,
ao comprimento do menor caminho entre estes dois vértices. No caso da não existência desse
caminho, considera-se a distancia infinita.
Será usado d(v,w) como notação de distancia entre os vértices v e w.
EXCENTRICIDADE, denotada por [e(v)], de um vértice v, é a máxima das distancias d(v,u), isto
é, ∀ u ∈G, e(v) = MAX d(v,u).
OBS: Este assunto será trabalhado em sala de aula com exemplos em forma de exercícios, os
quais deverão ser copiados do quadro, em sala de aula.
8.6. CAMINHO
Caminho: é qualquer seqüência de arestas onde o vértice final de uma aresta é o vértice inicial
da próxima. Assim, um caminho de k vértices é formado pôr (k-1) arestas.
Um caminho fechado é chamado de ciclo. Um grafo que não possui ciclo é conhecido como
acíclico.
A teoria de grafos teve inicio em 1736, com trabalho de Euler na solução do problema da
travessia das sete pontes apresentado na introdução deste capítulo, assim como com trabalho
em que propôs e resolveu o seguinte problema: quais são os tipos de grafos G, onde é
possível achar um caminho fechado, passando em cada aresta uma única vez?
1. Um caminho fechado passando uma única vez em cada aresta do grafo, foi denominado
de caminho de Euler, e um grafo que consiste de um caminho fechado de Euler é um
grafo de Euler.
2. Observar que um caminho é sempre conexo. Portanto o grafo de Euler é sempre
conexo.
3. Um grafo com um vértice isolado também é um grafo de Euler.
Agora suponha que todos os vértices são de grau par. Como cada vértice tem grau par, pode-
se entrar e sair de cada vértice. Como o primeiro vértice é par, ele será visitado novamente
quando feche o caminho. Se caminho achado passou pôr todas as arestas G é de Euler.
Senão, remove-se de G as arestas do caminho encontrado, e formo um subgrafo com as
arestas restantes, e aplico o mesmo raciocínio.
OBS: De acordo com Rabuske (1.992, p. 44): “um grafo conexo é semi-euleriano, se e
somente se não existirem mais que dois vértices de grau ímpar”.
Seja G um grafo euleriano. Inicie em qualquer vértice e atravesse as arestas de uma maneira
arbitrária, segundo as seguintes regras:
1. Apague a aresta que foi visitada e, se algum vértice ficar isolado, apague-o também.
2. Em cada estágio, use um istmo somente se não houver alternativa, isto é, nunca atravesse
uma aresta, se naquele particular momento a remoção daquela aresta divide o grafo, em duas
ou mais componentes (excluindo os vértices isolados).
Nem todo grafo conexo tem um ciclo hamiltoniano. Devemos saber qual é a condição
necessária e suficiente para que um grafo conexo tenha um ciclo hamiltoniano. Isto é um
problema insolúvel.
Número de ciclos de um grafo: serve para determinar o menor ciclo num grafo valorado.
Teorema 1: Em um grafo completo, com n vértices, existem (n-1)/2 ciclos hamiltonianos com
arestas disjuntas, se n for impar e (n-2)/2 se n for par.
Exemplo:
Suponha o seguinte problema: nove membros de um clube reúnem-se todos os dias para
almoçar. Eles decidiram que cada dia, eles deveriam sentar-se ao lado de pessoas diferentes
do grupo. Durante quantos dias novos arranjos podem ser feitos?
Solução: A modelagem do problema é um grafo completo, uma vez que cada membro do
clube, representado pelo vértice vi, troca com o membro vj.
Pelo teorema anterior pode ser visto que há 4 maneiras diferentes de fazer os arranjos, a
saber:
{ 1 2 3 4 5 6 7 8 9 1} - { 1 3 5 2 7 4 9 6 8 1} - { 1 5 7 3 9 2 8 4 6 1} - { 1 7 9 5 8 3 6 2 4 1}
Teorema 2: Uma condição suficiente (não necessária), para que um grafo simples G possua
um ciclo hamiltoniano é que o grau de cada vértice em G seja pelo menos igual a n/2, onde n é
o número de vértices de G.
Passo 1. [Inicializo]
Tour ← 0; Custo ← 0; v ← u;
Suponha que se tenha um mapa da rede rodoviária em que as cidades são representadas por
pontos e as estradas por linhas. O mapa, sem dúvida, pode ser considerado um grafo, em que
as distancias são ponderações das arestas, podendo ser consideradas também como custo ou
tempo.
O problema consiste em determinar a distância do menor caminho entre quaisquer dois
vértices vi e vj.
Suponha que no grafo da rede rodoviária necessita-se determinar o custo do menor caminho
partindo de um vértice inicial passando por todas as arestas uma única vez e retornando ao
ponto, de origem.
SOLUÇÃO 1: Se o grafo for de Euler, então o caminho pode ser achado, e conseqüentemente
seu respectivo custo, através do algoritmo de Fleury. O custo é dado pela soma dos custos de
todas as arestas do grafo.
SOLUÇÃO 2: Se o grafo não for de Euler, então algumas arestas terão que ser repetidas. Para
resolver o problema, sugere-se o algoritmo abaixo:
OBS: Este assunto será trabalhado em sala de aula com exemplos em forma de exercícios, os
quais deverão ser copiados do quadro, em sala de aula.
Este método envolve a geração de todos os caminhos simples pôr multiplicação sucessiva de
matriz. Envolve os seguintes passos:
Passo 1. Construir a matriz de adjacência A do grafo.
Passo 2. Construir a matriz B (n x n ) da seguinte forma:
bij = vj, se existe a aresta (vi, vj); 0 em caso contrário.
Passo 3. Faça P1 ← A;
Passo 4. Faça Pi + 1 ← B * Pi com i = 1 .. n-1 onde
P i + 1 (k,k) = 0, para todo k
n-1
P i + 1 (s,t) = ∑ ( b(s,k) * P i (k,t)), com k variando até n-1.
k
Observe que na matriz Pi + 1 obtêm-se todos os caminhos hamiltonianos de cardinalidade i+1,
entre os vértices s e t.
Exemplo:
Os caminhos marcados devem ser ignorados, pois são caminhos de S ate K que contém S. A
diagonal é ignorada também.
P1 = A
P2
- - D B B
E - D+E - -
E - E B B
- C - - C
- A+C - A C
P3
BE DC BD + BE - DC
- DC + EA + EC - EA DC
BE EA + EC BD + BE EA -
CE - - CB CB
CE - AD AB+CB AB + CB
P4
DCE - - BEA BDC + DCB
DCE - EAD EAB+ECB DCB
- - EAD BEA+EAB+ECB BDC
CBE CEA - CEA -
CBE ADC + CEA ABD + ABE CEA ADC
ABDCE, ADCBE, BDCEA, BEADC, CBEAD, CEABD, DCBEA, DCEAB, EADCB e EABDC.
Seja M = [mij] a matriz k x n, onde o elemento mij é o i-ésimo vértice ( digamos vq), tal que
existe a aresta (vj, vq) no grafo conexo G.
Exemplo 1:
Determinar os ciclos hamiltonianos do grafo dado pela matriz de adjacência a seguir, utilizando
o algoritmo.
v1 v2 v3 v4 v5 v6
v1 0 1 0 0 0 0
v2 0 0 1 0 1 0
A= v3 1 0 0 1 0 0
v4 0 0 1 0 0 1
v5 0 0 1 1 0 0
V6 1 1 1 0 0 0
v1 v2 v3 v4 v5 v6
v2 v3 v1 v3 v3 v1
A= v5 v4 v6 v4 v2
v3
v0 v1 v2 v3 V4
v0 0 1 0 1 0
v1 0 0 1 0 0
v2 0 0 0 0 1
v3 1 1 0 0 1
v4 0 1 0 1 0
M v0 v1 v2 v3 V4
v1 v2 v4 v0 v1
v3 v1 v3
v4
1– vi ← v0 , S = { v0 };
2- S = { v0 , v1 };
S = { v0 , v1 }; S = { v0 , v1 , v2 }; S = { v0 , v1 , v2 , v4 }; S = { v0 , v1 , v2 , v4 , v3 };
Como existe aresta de v3 a v0 , um ciclo hamiltoniano é dado por:
S = {v0 , v1 , v2 , v4 , v3 , v0 }.
Idéia do Algoritmo:
O algoritmo de Floyd usa uma matriz A n x n para computar o custo mínimo dos caminhos em
G. A[i, j] é inicializada com a matriz de custos para todo i ≠ j . Se não existe aresta de i para j,
A[i, j] = ∞. Cada elemento da diagonal principal é inicializado com 0. São feitas n iterações na
matriz A. Após a k-ésima iteração, A[i, j] terá com seu valor o menor caminho do vértice i para
o vértice j, que não passa por um vértice com numeração maior que k. Isto é, i e j, os vértices
finais do caminho podem ser quaisquer vértices, mas qualquer vértice intermediário não poderá
ser maior que k . Na k-ésima iteração é usada a seguinte fórmula:
A[i, j] = min[(A[i, j] , A[i, k] + A[k, j])].
Assim, para todos os caminhos entre dois vértices quaisquer do grafo são testados vértices
intermediários que possam minimizar o custo do caminho original entre esses vértices.
Algoritmo
Inicio
Para i = 1 até n faça
Para j = 1 até n faça
A [ i, j ] ← D( i, j );
Para i = 1 até n faça
A [ i, j ] ← 0;
Para k = 1 até n faça
Para i = 1 até n faça
Se i < > k então faça
Para j = 1 até n faça
Se j < > k então faça
Se A [ i, k ] + A [ k, j ] < A [ i,j ] então faça
A [ i,j ] ← A [ i, k ] + A [ k, j ] ;
Fim
OBS: Este assunto será trabalhado em sala de aula com exemplos em forma de exercícios, os
quais deverão ser copiados do quadro, em sala de aula.
MATRIZ DE ROTEAMENTO
Em diversas situações deseja-se saber qual é o menor caminho de um vértice a outro. Uma
maneira de conseguir esta informação é utilizar uma matriz R, onde em R[i,j] contém aquele
vértice k que permite ao algoritmo de Floyd achar o menor valor A[i,j]. Se R[i,j] = 0, então o
menor caminho de i para j é direto, seguindo a aresta (vi,vj) . A versão do algoritmo de Floyd
modificado fornece estes caminhos.
Algoritmo
Inicio
Para i = 1 até n faça
Para j = 1 até n faça
A [ i, j ] ← D( i, j );
R [ i, j ] ← 0;
Para i = 1 até n faça
A [ i, j ] ← 0;
Para k = 1 até n faça
Para i = 1 até n faça
Se i < > k então faça
Para j = 1 até n faça
Se j < > k então faça
Se A [ i, k ] + A [ k, j ] < A [ i,j ] então faça
A [ i,j ] ← A [ i, k ] + A [ k, j ] ;
R [ i, j ] ← k;
Fim
Dadas a matriz de distância de um passo (D1) de até dois passos (D2) e de até 5 passos (D5)
D3 v0 v1 v2 v3 v4 v5 D4 v0 v1 v2 v3 v4 v5
v0 0 4 6 5 2 5 v0 0 4 6 5 2 5
v1 3 0 5 3 5 7 v1 3 0 5 3 5 7
v2 7 4 0 7 5 2 v2 7 4 0 7 5 2
v3 7 4 2 0 7 4 v3 7 4 2 0 7 4
v4 10 7 5 3 0 3 v4 10 7 5 3 0 3
v5 8 5 5 8 6 0 v5 8 5 5 8 6 0
D5 v0 v1 v2 v3 v4 v5 R v0 v1 v2 v3 v4 v5
v0 0 4 6 5 2 5 v0 v0 v1 v2 v4 v4 v4
v1 3 0 5 3 5 7 v1 v0 v1 v3 v3 v4 v3
v2 7 4 0 7 5 2 v2 v1 v1 v2 v1 v4 v5
v3 7 4 2 0 7 4 v3 v1 v1 v2 v3 v4 v5
v4 10 7 5 3 0 3 v4 v3 v3 v3 v3 v4 v5
v5 8 5 5 8 6 0 v5 v1 v1 v2 v1 v4 v5
a) V5 – V0 = 8 ⇒ V5 – V1 – V0 b) V4 – V0 = 10 ⇒ V4 – V3 – V1 – V0
V5 – V1 = 5 ⇒ V5 – V1 c) V1 – V5 = 7 ⇒ V1 – V3 – V2 – V5
V5 – V2 = 5 ⇒ V5 – V2
V5 – V3 = 8 ⇒ V5 – V1 – V3
V5 – V4 = 6 ⇒ V5 – V4
d) V3 até V2 V3 até V5
R[3,2] = V2 ⇒ V3 – V2 R[3,5] = V2 ⇒ V3 – V2 – V5
de V1 até V5
R[1,5] = V3 ⇒ V1 – V3 – V2 – V5
Seja um grafo G uma função distância L que associe cada aresta (vi,vj) a um número real não
negativo L(vi,vj) e também um vértice fixo v0 em V, chamado de fonte. O problema consiste em
se determinar os caminhos de v0 para cada vértice vi de G, de tal forma que a somatória das
distâncias das arestas envolvidas em cada caminho seja mínima. Isso é equivalente a
determinar um caminho v0, v1, . . . , vk tal que ∑ L (vi, vi+1) com i = 0 .. k -1, seja mínimo.
Idéia do algoritmo:
Considere um dígrafo G, uma origem v0 e uma função L que associe cada aresta a um número
real não negativo, isto é:
L(vi,vj) = ∞, se não existe a aresta (vi,vj)
0, se vi = vj
custo, se vi ≠ vj e existe a aresta (vi,vj)
Constrói-se um conjunto S, que contém os vértices vi’s cujo comprimento mínimo de v0 a cada
vi, seja conhecido.
A cada passo se adiciona ao conjunto S o vértice w pertencente a V-S tal que o comprimento
do caminho v0 a w, seja menor do que o correspondente de qualquer outro vértice de V-S.
Algoritmo
Inicio
S ← { v0};
D[v0] ← 0;
Para cada v ∈ V - { v0} faça D [v] ← L (v0,v);
Enquanto S ≠ V faça
Escolha o vértice w ∈ V-S tal que D[w] seja mínimo;
Coloque w em S, isto é, faça S ← S ∪ {w} ;
Para cada v ∈ V-S faça D[v] ← MIN (D[v], D[w] + L(w,v))
Fim
Exemplo:
v0 v1 v2 v3 v4
v0 2 10
v1 3 7
v2 4
v3
v4 8 5
Solução:
8.8. ÁRVORES
O conceito de árvores tem aplicação em química, comunicações, redes de luz, água, esgoto,
computação, ordenação, etc.
As seguintes definições de árvores não dirigidas são todas equivalentes. Uma árvore é:
1. um grafo conexo de n vértices e (n-1) arestas.
2. um grafo conexo sem ciclos.
3. um grafo no qual cada par de vértices é ligado por um e somente um caminho simples.
4. um grafo conexo, porém, se qualquer de suas arestas for retirada, a conexidade fica
interrompida.
5. um grafo acíclico e conexo, porém, se dois vértices quaisquer, não adjacentes, forem ligados
por uma aresta, então o grafo passará a ter exatamente um ciclo.
6. um grafo conexo que não possui subgrafo Kn para n ≥ 3
7. um grafo que não possui K3 ∪ K2 ou K3 ∪ K1, mas tem n = m + 1, onde n é o número de
vértices e m o número de arestas.
Exemplo:
G T
Raiz de uma arborescência T, é um vértice v tal que qualquer outro vértice de T pode ser
alcançado partindo-se de v.
EXEMPLO:
O procedimento termina quando a matriz for toda eliminada ou se as somas das colunas forem
todas diferentes de zero. Este último critério de parada significa que o digrafo é não acíclico e
os ciclos consistem destes vértices.
Algoritmo de Demoucron
Passo 1. Faça i ← 0;
Passo 2. Some os elementos de cada coluna da matriz ( A ).
Passo 3. Coloque no nível i os vértices vj’s cuja coluna deu soma igual a zero.
Passo 4. Elimine da matriz ( A ) as linhas e colunas correspondentes aos vértices vj’s.
Passo 5. Se a matriz A não foi toda eliminada, então faça i ← i + 1. Retorno ao passo 2.
v1 v2 v3 v4 v5 v6 v7 v8
0 0 0 0 0 0 0 0
0 0 1 1 0 1 0 0
0 0 0 0 1 1 0 1
0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 1
1 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
ÁRVORE DE CUSTO MÍNIMO
Nos problemas de interligação, como redes de comunicação, redes de luz, de água, esgotos,
etc., existe interesse na interligação de todos os pontos atendidos com o consumo mínimo de
meios.
Demonstração:
A parte 1. é trivial, desde que, se existir mais de um caminho entre dois vértices, então existirá
um ciclo.
A parte 2. é igualmente trivial, desde que já deve existir um caminho entre os extremos das
arestas adicionadas.
Lema: seja G ( V, E ) um grafo conexo e f uma função custo associada a suas arestas, {
(V1,T1), (V2,T2), . . . , (Vk, Tk) } uma floresta expandida de G com k > 1 e T = ∑ Ti com i = 1 ..
k.
Suponha que e = (v,w) seja uma aresta de menor custo em E-T. tal que v ∈ V1 e w ∉ V1.
Então existe uma árvore expandida para G que inclui T ∪ {e} e é de custo mais baixo do que
qualquer árvore expandida de G que inclua T.
Baseando-se nos dois lemas anteriores, serão mostrados algoritmos que determinam uma
árvore expandida de custo mínimo S ( V, T ), para um grafo G ( V, E ).
Algoritmo de Kruskal: este algoritmo utiliza três conjuntos, E, T e VS. O conjunto T é usado
para guardar as arestas da árvore expandida. O algoritmo trabalha transformando uma floresta
expandida de G em uma única árvore expandida. O conjunto VS contém os conjuntos das
árvores na floresta expandida. Inicialmente, VS contém todos os vértices de G, onde cada
vértice é um conjunto. As arestas são escolhidas de E pela ordem crescente de custo.
Considere que a aresta (v,w) tenha sido escolhida. Se v e w pertencem ao mesmo conjunto
VS, descarta-se a aresta. Se v e w estão em conjuntos distintos W1 e W2, faz-se o ‘merge’ de
W1 e W2 e adiciona-se (v,w) a T, o conjunto de arestas da árvore expandida final.
Inicio
Faça T ← 0; VS ← 0;
Construa uma fila de prioridade ( Q ) contendo todas as arestas de E;
Para cada vértice v ∈V faça: adicione { v } em VS;
Enquanto | VS | > 1 faça
Escolha ( v, w), uma aresta em Q de menor custo;
Apague ( v, w ) de Q;
Se v e w estão em conjuntos diferentes W1 e W2 pertencentes a VS, então:
Substitua W1 e W2 em VS por W1 ∪ W2; ( para evitar formar ciclos)
Adicione (v,w) a T;
Fim.
OBS: Este assunto será trabalhado em sala de aula com exemplos em forma de exercícios, os
quais deverão ser copiados do quadro, em sala de aula.
Algoritmo de Dijkstra: este algoritmo fornece uma árvore expandida de custo mínimo,
trabalhando por inclusão de vértices, onde cada vértice leva apenas uma aresta à árvore; logo,
não há preocupação com a formação de ciclos.
Passo 1. Faça T ← 0;
Passo 2. Construa uma fila de prioridade ( Q ) contendo todas as arestas de E;
Passo 3. Escolha ( v, w ), uma aresta em Q de menor custo;
Passo 4. Enquanto | V | > 0 faça: ( ou | T | < | V | isto é: número de V. da árvore < número de
V. do grafo)
Retire ( v, w ) de Q;
Adicione ( v, w ) de T;
Apague v, w de V;
Escolha ( v, w ) a aresta em Q de menor custo, tal que v ∈ V e w ∈ T.
OBS: Este assunto será trabalhado em sala de aula com exemplos em forma de exercícios, os
quais deverão ser copiados do quadro, em sala de aula.
Um grafo G é dito planar se existir alguma representação geométrica de G que possa ser
desenhada num plano, de tal modo que não exista cruzamento de arestas.
OBS: Este assunto será trabalhado em sala de aula com exemplos em forma de exercícios, os
quais deverão ser copiados do quadro, em sala de aula.
Teoremas de Kuratowski.
1. O grafo completo de 5 vértices K5 é não planar.
2. O grafo K3,3 é não planar.
Com base nos teoremas anteriores, pode-se dizer que um grafo é dito planar se não contém
como subgrafo um K5 ou um K3,3. Portanto pode-se afirmar que qualquer subgrafo de um
grafo planar é planar.
Face: Uma representação planar do grafo divide o plano em faces. Uma face é caracterizada
por um conjunto de arestas formando suas fronteiras. Ou ainda: uma face de um grafo planar é
uma região de plano limitada por arestas, de tal modo que dois vértices quaisquer desta região
possam ser ligados por um traço contínuo (aresta) sem que haja cruzamento com nenhum
outro traço.
9. ANÁLISE COMBINATÓRIA
A Combinatória “arte de contar sem contar” é o ramo da Matemática que trata da contagem.
B FB = 6 resultados possíveis
F
D FD
B CB
C
D CD
Pode-se optar também pela busca de possibilidades através de uma tabela, o que não tem sido
usado em grande escala, mas existe a técnica.
Vice-presidente
Presidente B D
A AB AD
F FB FD
C CB CD
Antes de dar continuidade ao assunto, que tal exercitar o conteúdo combinação brincando um
pouquinho com a técnica “árvore de possibilidades”, resolvendo os exemplos a seguir?
1) Uma moeda tem duas faces: cara (K) e coroa (C). Lança-se uma
moeda três vezes seguida e observa-se qual face ficou voltada
para cima. Quantos e quais são os resultados possíveis?
2) Paulo e Roberto disputam entre si um torneio de tênis, no qual
o vencedor será o primeiro a ganhar duas partidas seguidas ou
três alternadas. Descreva todas as possibilidades de
desenvolvimento do torneio.
3) Quantos e quais são os números de três algarismos distintos
que podemos formar usando os algarismos: 2, 5 e 7?
C) Princípio da adição:
Em geral:
[A ∪ B] = [A] + [B] – [A ∩ B]
[A ∪ B] = [A] + [B]
D) Princípio da multiplicação:
[A × B] = [A] . [B]
Problema:
André tem 2 bermudas (preta e cinza) e 4 camisetas (branca, verde, amarela e roxa). De
quantas maneiras diferentes ele poderá se vestir usando uma bermuda e uma camiseta?
Solução:
Se optarmos pela construção da árvore de possibilidades, teremos como resultado: PB, PV,
PA, PR, CB, CV, CA, CR.
Observe que:
Há duas possibilidades de escolher uma bermuda. Para cada uma delas, quatro possibilidades
de escolher uma camiseta. Logo o número total de maneiras diferentes de André se vestir é: 2
x 4 = 8.
Como o resultado foi obtido por meio de uma multiplicação, podemos afirmar que foi utilizado o
principio multiplicativo. Sua fórmula pode ser enunciada como:
Se um acontecimento ocorrer por várias etapas sucessivas e independentes, de tal modo que:
p1 é o número de possibilidades da 1ª etapa
p2 é o número de possibilidades da 2ª etapa
.
pk é o número de possibilidades da k-ésima etapa
Sendo n um número inteiro maior que 1, define-se fatorial de n como o produto dos n números
naturais consecutivos de n a 1. Indica-se n!
2! = 2 ⋅ 1 = 2; 3! = 3 ⋅ 2 ⋅ 1 = 6; 4! = 4 ⋅ 3 ⋅ 2 ⋅ 1 = 24; etc.
Conseqüências:
n! = n (n – 1)!
Observe:
Exemplos: Calcule:
Quantas amostras de r objetos podem ser extraídas do conjunto {x1; x2 ;...; xn}, se ordem é
importante e repetição é permitida?
Para usar combinatória, podemos contar com dois modelos de contagem: o modelo de
amostragem (modelo que nos ateremos em nossos estudos) e o modelo de distribuição.
MODELO DE AMOSTRAGEM:
√ Ordem é importante?
√ Repetição é importante?
Por exemplo: Quatro carros: G, P, M e E disputam uma corrida. Supondo que todos terminem a
prova, quantas são as possibilidades de chegada para os três primeiros lugares?
ATENÇÃO:
Cada resultado (agrupamento ou seqüência) assim obtido é denominado arranjo simples dos 4
elementos tomados 3 a 3.
Indica-se oi número total desses agrupamentos por: A4 , 3 ou A34 .
Há 24 possibilidades de escolha para os 3 primeiros lugares.
Após o exemplo dado, obtêm-se como definição de arranjo simples pelo principio multiplicativo
a fórmula:
An , p = n! ___
(n – p)!
EXEMPLO 1:
Nove atletas competem em um evento olímpico. São dadas medalhas de: ouro, prata e bronze,
ao primeiro, segundo e terceiro colocado no evento. De quantas maneiras podem ser dadas às
medalhas?
Perceba que a ordem na entrega das medalhas é importante, o que gera um problema de
arranjo. Assim temos:
A (9, 3) = 9! _ = 9 . 8 . 7! = 9 . 8 = 72
(9 – 3)! 7!
9.5 PERMUTAÇÃO
EXEMPLO 1:
Seja o conjunto A = {uva, mamão, maçã}. De quantos modos podemos permutar seus
elementos?
P (3, 3) = P3 = 3! = 3 ⋅ 2 ⋅ 1 = 6
Ou seja, os conjuntos: {uva, mamão, maçã}; {uva, maçã, mamão}; {maçã, uva, mamão}; {maçã,
mamão, uva}; {mamão, uva, maçã}; {mamão, maçã, uva}.
Uma Biblioteca tem quatro livros sobre Matemática Discreta, sete sobre Programação e três
sobre Lógica Matemática. Sabendo que os livros de um mesmo assunto devem ficar juntos de
quantas maneiras podemos arrumar em uma prateleira?
Pn α , β , ... γ
= n!____
α! ⋅ β ! ⋅ γ !
EXEMPLO 1:
Seja o conjunto formado por sete letras (N, A, T, A, L, I, A) sendo que 3 são iguais a A
P7 3 = 7! = 7 ⋅ 6 ⋅ 5 ⋅ 4 ⋅ 3! = 7 ⋅ 6 ⋅ 5 ⋅ 4 = 840 anagramas
3! 3!
9.6. COMBINAÇÃO
C (n, p) = n! ___
p! (n – p)!
EXEMPLO 1:
Quantas mãos de pôquer, com 5 cartas cada, podem ser distribuídas com um baralho de 52
cartas? Aqui a ordem das cartas não interessa, mas sim quais cartas ficarão em cada mão.
Então temos:
EXEMPLO 2:
Nove atletas competem em um evento olímpico. Mas apenas três serão declarados
vencedores. De quantas maneiras podem ser escolhidos os vencedores?
Aqui a ordem na escolha dos vencedores não é importante. O que se quer é as possibilidades
de se escolher três elementos em um conjunto de nove elementos. Assim temos:
EXEMPLO 3: Uma comissão de oito alunos deve ser escolhida em um grupo contendo
dezenove alunos do primeiro ano e trinta e quatro alunos do segundo ano. Pergunta-se:
a) De quantas maneiras pode-se selecionar três alunos do primeiro ano e cinco do segundo?
Como a ordem na escolha dos alunos não importa, temos uma combinação.
1 – Precisamos selecionar um aluno do primeiro ano entre os 19 existentes, temos então uma:
1 – precisamos selecionar um aluno do primeiro ano entre os 19 existentes, temos então uma:
C (19, 1) = 19 possibilidades e sete alunos do segundo ano, o que nos dá C (34, 7) = 5379616
possibilidades. Juntos temos: 19 x 5379616 = 102212704 possibilidades de escolha.
3 – Agora basta aplicar o princípio da adição, pois temos duas situações disjuntas:
102212704 + 18156204 = 120368908 possibilidades de escolha.
d) De quantas maneiras pode-se selecionar uma comissão contendo pelo menos um aluno do
primeiro ano? Aqui temos novamente uma combinação:
GIOVANI, José Ruy. Matemática Fundamental, 2º grau: volume único / José Ruy Giovani,
José Roberto Bonjorno, José Ruy Giovani Jr. São Paulo: FTD, 1.994.
GIOVANI, José Ruy. Matemática: uma nova abordagem, vol. 2, versão trigonometria / José
Ruy Giovani, José Roberto Bonjorno. São Paulo: FTD, 2.000 – (Coleção matemática uma nova
abordagem)
Hrbacek, K. & Jech, T. Introduction to Set Theory. Marcel Dekker, INC. New York, 1984.
Kelly, J. The Essence of Logic. The Essence of Computing Series. Prentice Hall.
London.1997.
Liu, C.L. Elements of Discrete Mathematics. McGraw-Hill Computer Science Series, New
York, 1985. 2nd edition.
RABUSKE, Márcia Aguiar. Introdução à Teoria dos Grafos. UFSC, 1.ed., Florianópolis, 1992.