You are on page 1of 41

Matemtica Discreta

Introduo
Antonio Alfredo Ferreira Loureiro
loureiro@dcc.ufmg.br
Olga Nikolaevna Goussevskaia
olgang@gmail.com
UFMG/ICEx/DCC MD

Introduc a o 1
DISCRETE Math is
eal f(u)
n
UFMG/ICEx/DCC MD

Introduc a o 2
Introduo
Por que estudar Matemtica Discreta?
Prov um conjunto de tcnicas para modelar problemas em Cincia da
Computao.
Tpico de Matemtica Discreta Aplicao em Cincia da Computao
Lgica e Conjuntos Sistemas Especialistas (IA)
Relaes e funes Bancos de dados relacionais, Algoritmos distribudos
Anlise combinatria Anlise de algoritmos (pior caso)
Grafos no-dirigidos Linguagens e parsing
Grafos dirigidos Algoritmos de roteamento em redes
lgebra booleana Projeto de circuitos digitais
Teoria de grupo Teoria da informao
Autmato de estados nito Modelo computacional para resoluo de problemas
em geral
Probabilidade Anlise de algoritmos (caso mdio)
UFMG/ICEx/DCC MD

Introduc a o 3
Denio dos termos discreto e contnuo
DISCRETO: feito de partes distintas.
CONTNUO: sem interrupo e sem mudana brusca.
Exemplos familiares de matemtica contnua: clculo e equaes diferen-
ciais.
Muitos dos tpicos estudados e tcnicas usadas em Cincia da Computao
tanto de matemtica discreta quanto de matemtica contnua so os mesmos.
Exemplos:
Em matemtica (contnua e discreta) estamos interessados em conjuntos
de objetos e suas estruturas.
Relaes e funes.
UFMG/ICEx/DCC MD

Introduc a o 4
Matemtica discreta e contnua
Matemtica contnua: trata de conjuntos similares ao conjunto de nmeros
reais.
Conjuntos tm representaes contnuas (do ponto de vista geomtrico).
Conjuntos no podem ser enumerados.
Exemplo: intervalo de uma reta, regio do plano.
Matemtica discreta: trata de objetos separados e desconectados (geometri-
camente) de cada um.
Conjuntos so, em geral, nitos e podem ser enumerados.
UFMG/ICEx/DCC MD

Introduc a o 5
Os termos discreto e contnuo em Cincia da
Computao
Os computadores podem ser classicados em digitais e analgicos, do ponto
de vista do dado processado.
Dados obtidos atravs de algum processo de contagem (counting) so dis-
cretos.
Computadores que processam este tipo de dado so chamados de digi-
tais.
Dados obtidos atravs de algum processo de medida (measuring) so con-
tnuos.
Computadores que processam este tipo de dado so chamados de
analgicos.
Exemplo de relgio: Digital Analgico
UFMG/ICEx/DCC MD

Introduc a o 6
Motivao para estudar Matemtica Discreta do
ponto de vista prtico
A inuncia e desenvolvimento de computadores digitais tm aumentado bas-
tante nos ltimos anos.
Na verdade, deveramos falar de elementos computacionais ao invs de com-
putador digital.
Um elemento computacional basicamente um sistema discreto nito.
Muitas de suas propriedades podem ser estudadas e ilustradas atravs de
princpios da Matemtica discreta, onde estudamos princpios e tcnicas para
projetar sistemas de computao (hardware e software).
UFMG/ICEx/DCC MD

Introduc a o 7
Matemtica Discreta vs. Cincia da Computao ou
Entendendo a importncia de Matemtica Discreta
para Cincia da Computao (1)
A seguir, so apresentados os tpicos que estudaremos nesta disciplina bem como exemplos
de sua utilizao em Cincia da Computao:
Fundamentos da Lgica; Lgica Proposi-
cional; Lgica de Proposies Quanti-
cadas; e Clculo de Predicados.
Banco de dados;
Circuitos integrados;
Inteligncia articial;
Sistemas computacionais (hardware e
software);
Sistemas distribudos.
Mtodos de Prova:
Circuitos integrados;
Projeto de algoritmos.
Sequncias e Induo Matemtica:
Projeto de algoritmos.
Teoria dos Conjuntos:
Banco de dados;
Circuitos integrados;
Inteligncia articial;
Sistemas distribudos.
UFMG/ICEx/DCC MD

Introduc a o 8
Matemtica Discreta vs. Cincia da Computao ou
Entendendo a importncia de Matemtica Discreta
para Cincia da Computao (2)
Funes:
Otimizao;
Projeto de algoritmos.
Recurso:
Projeto de algoritmos.
Anlise Combinatria:
Circuitos integrados;
Otimizao;
Projeto de algoritmos;
Sistemas distribudos.
Relaes:
Sistemas distribudos.
Grafos:
Banco de dados;
Circuitos integrados;
Compiladores e linguagens de progra-
mao;
Engenharia de software;
Inteligncia articial;
Otimizao;
Projeto de algoritmos;
Redes de computadores;
Robtica;
Sistemas computacionais (hardware e
software);
Sistemas distribudos;
Sistemas operacionais.
UFMG/ICEx/DCC MD

Introduc a o 9
Modelagem Matemtica
Metodologia: conjunto de conceitos que traz coeso a princpios e tcnicas
mostrando quando, como e porque us-los em situaes diferentes.
A metodologia que usa matemtica na resoluo de problemas conhecida
como modelagem matemtica.
O processo de modelagem:
Modelo
Abstrato
Problema
Soluo para
o problema
Modelo
Transformado
UFMG/ICEx/DCC MD

Introduc a o 10
Exemplo de modelagem:
Malha rodoviria (1)
Suponha a malha rodoviria entre as seis cidades A, B, C, D, E, e F.
Problema: Achar um subconjunto da malha rodoviria representada pela tabela
abaixo que ligue todas as cidades e tenha um comprimento total mnimo.
B C D E F
A 5 10
B 5 10 20
C 20 30
D 20
E 10
UFMG/ICEx/DCC MD

Introduc a o 11
Exemplo de modelagem:
Malha rodoviria (2)
Tabela j um modelo da situao do mundo real.
A tabela pode ser transformada numa representao grca chamada
GRAFO, que ser o modelo matemtico.
5
F
D
A
B
C
E
5
10
10
20
30
10
20
20
Grafo G
Grafo (denio informal): conjunto de pontos chamados de vrtices ou ns,
e um conjunto de linhas (normalmente no-vazio) conectando um vrtice ao
outro.
Neste caso, cidades so representadas por vrtices e estradas por linhas
(arestas).
UFMG/ICEx/DCC MD

Introduc a o 12
Exemplo de modelagem:
Malha rodoviria (3)
Qual o prximo passo?
Achar uma soluo em termos desse modelo.
Nesse caso, achar um grafo G

com o mesmo nmero de vrtices e um


conjunto mnimo de arestas que conecte todas as cidades e satisfaa a
condio do problema.
Observao: o modelo matemtico escolhido, em geral, visando a soluo.
A soluo ser apresentada na forma de um algoritmo.
UFMG/ICEx/DCC MD

Introduc a o 13
Exemplo de modelagem:
Malha rodoviria (4)
Algoritmo:
1. Selecione arbitrariamente qualquer vrtice e o coloque no conjunto de vrtices j conecta-
dos.
2. Escolha dentre os vrtices no conectados aquele mais prximo de um vrtice j conec-
tado. Se existir mais de um vrtice com essa caracterstica escolha aleatoriamente qual-
quer um deles.
3. Repita o passo 2 at que todos os vrtices j estejam conectados.
Este um exemplo de um algoritmo guloso (greedy algorithm).
5
F
D
A
B
C
E
5
10
10
20
30
10
20
20
Grafo G
UFMG/ICEx/DCC MD

Introduc a o 14
Exemplo de modelagem:
Malha rodoviria Solues (5)
5
F
D
A
B
C
E
5
10
10
20
30
10
20
20
Grafo G
Solues:
5
B
C
E
5
F
D
A
10
20
10
5
B
C
E
5
F
D
A
10
20
10
5 A
B
C
E
5
F
D
20
10
10
5 A
B
C
E
5
F
D
20
10
10
Grafo G
1
Grafo G
2
Grafo G
3
Grafo G
4
UFMG/ICEx/DCC MD

Introduc a o 15
Exemplo de modelagem:
Malha rodoviria (6)
O que foi feito?
1. Obteno do modelo matemtico para o problema.
2. Formulao de um algoritmo em termos do modelo.
Ou seja, essa a tcnica de resoluo de problemas em Cincia da Com-
putao.
Nem todos os problemas considerados tero como soluo um algoritmo,
mas muitos tero.
UFMG/ICEx/DCC MD

Introduc a o 16
Exemplo de modelagem:
Sudoku e Godoku (1)
Sudoku Godoku
O objetivo do Sudoku
(Godoku) preencher
todos os espaos em
branco do quadrado
maior, que est divi-
dido em nove grids,
com os nmeros de 1
a 9 (letras). Os alga-
rismos no podem se
repetir na mesma co-
luna, linha ou grid.
Sudoku: A palavra
Sudoku signica
nmero sozinho em
japons, o que mostra
exatamente o objetivo
do jogo. O Sudoku existe desde a dcada de 1970, mas comeou a ganhar popularidade no
nal de 2004 quando comeou a ser publicado diariamente na sesso de puzzles do jornal
The Times. Entre abril e maio de 2005 o puzzle comeou a ganhar um espao na publicao
de outros jornais britnicos e, poucos meses depois, ganhou popularidade mundial. Fonte:
wikipedia.org
Godoku: O jogo Godoku similar ao Sudoku mas formado apenas por letras.
UFMG/ICEx/DCC MD

Introduc a o 17
Exemplo de modelagem:
SuperSudoku (2)
O jogo SuperSudoku similar
ao Sudoku e Godoku formado
por nmeros e letras. Cada grid
tem 16 entradas, sendo nove
dos nmeros (0 a 9) e seis le-
tras (A a F).
UFMG/ICEx/DCC MD

Introduc a o 18
Exemplo de modelagem:
Mais informaes sobre o Sudoku e jogos
similares (3)
Para mais detalhes sobre o Sudoku e variantes desse jogo, veja o artigo A cincia do Sudoku
por Jean-Paul Delahaye, na revista Scientic American Brasil, edio n
o
50 de julho de 2006.
UFMG/ICEx/DCC MD

Introduc a o 19
Exemplo de modelagem:
Kasparov Deep Blue
In the rst ever traditional chess match between a man (world
champion Garry Kasparov) and a computer (IBMs Deep Blue) in
1996, Deep Blue won one game, tied two and lost three. The next
year, Deep Blue defeated Kasparov in a six-game match the rst
time a reigning world champion lost a match to a computer oppo-
nent in tournament play. Deep Blue was a combination of special
purpose hardware and software with an IBM RS/6000 SP2 (seen
here) a system capable of examining 200 million moves per sec-
ond, or 50 billion positions, in the three minutes allocated for a
single move in a chess game.
Referncia: http://www-03.ibm.com/ibm/history/
exhibits/vintage/vintage_4506VV1001.html
UFMG/ICEx/DCC MD

Introduc a o 20
Questes sobre a modelagem (1)
O objetivo projetar um algoritmo para resolver o problema.
Veja que o Sudoku e o Deep Blue tm caractersticas bem diferentes!
Esse projeto envolve dois aspectos:
1. O algoritmo propriamente dito, e
2. A estrutura de dados a ser usada nesse algoritmo.
Em geral, a escolha do algoritmo inuencia a estrutura de dados e vice-
versa.
necessrio considerar diferentes fatores para escolher esse par (algo-
ritmo e estrutura de dados).
Pontos a serem estudados ao longo do curso, comeando pela sequncia
de disciplinas Algoritmos e Estruturas de Dados.
Nesta disciplina, estudaremos vrios tpicos relacionados tanto a algoritmos
quanto estruturas de dados.
UFMG/ICEx/DCC MD

Introduc a o 21
Questes sobre a modelagem (2)
O caso do jogo Sudoku
Um possvel algoritmo para resolver o jogo Sudoku o Algoritmo de Fora
Bruta:
Tente todas as possibilidades at encontrar uma soluo!
Nessa estratgia, quantas possibilidades existem para a congurao
abaixo?
Existem 1
1
2
5
3
32
4
13
6
1
=
23875983329839202653175808 23, 8 10
24
possibilidades!
UFMG/ICEx/DCC MD

Introduc a o 22
O papel de algoritmos em computao
Denio: um algoritmo um conjunto nito de instrues precisas para
executar uma computao.
Um algoritmo pode ser visto como uma ferramenta para resolver um pro-
blema computacional bem especicado.
O vocbulo algoritmo origina do nome al-Khowarizmi.
Um algoritmo pode receber como entrada um conjunto de valores e pode
produzir como sada um outro conjunto de valores.
Um algoritmo descreve uma sequncia de passos computacionais que
transforma a entrada em uma sada, ou seja, uma relao entrada/sada.
UFMG/ICEx/DCC MD

Introduc a o 23
Origem do vocbulo algoritmo
Abu JaFar Mohammed
Ibn Musa al-Khowarizmi
(780850), astrnomo e
matemtico rabe. Era
membro da Casa da
Sabedoria, uma academia
de cientistas em Bagd.
O nome al-Khowarizmi
signica da cidade de
Khowarizmi, que agora
chamada Khiva e
parte do Uzbequisto.
al-Khowarizmi escreveu
livros de matemtica,
astronomia e geograa. A
lgebra foi introduzida na
Europa ocidental atravs
de seus trabalhos. A
palavra lgebra vem do
rabe al-jabr, parte do ttulo de seu livro Kitab al-jabr wal muquabala. Esse livro foi traduzido
para o latim e foi usado extensivamente. Seu livro sobre o uso dos numerais hindu descreve
procedimentos para operaes aritmticas usando esses numerais. Autores europeus usaram
uma adaptao latina de seu nome, at nalmente chegar na palavra algoritmo para descrever
a rea da aritmtica com numerais hindu.
UFMG/ICEx/DCC MD

Introduc a o 24
Algoritmo e modelo computacional (1)
Modelo:
Esquema que possibilita a representao de uma entidade (Houaiss).
No modelo, s se deve incluir o que for relevante para a modelagem do
objeto em questo.
Computacional:
Relativo ao processamento (Houaiss).
Denio (nosso contexto):
Esquema que descreve como o modelo abstrato do processamento de
algoritmos.
Importncia:
Um algoritmo no existe, ou seja, no possvel escrev-lo, se antes no
for denido o modelo computacional associado (onde ser executado).
Conceito bsico no projeto de qualquer algoritmo.
UFMG/ICEx/DCC MD

Introduc a o 25
Algoritmo e modelo computacional (2)
Que modelos existem?
Literalmente dezenas deles.
Se no estiver satisfeito, invente o seu!
O mais popular (usado) de todos:
RAM Random Access Machine.
Modela o computador tradicional e outros elementos computacionais.
UFMG/ICEx/DCC MD

Introduc a o 26
Algoritmo e modelo computacional:
Modelo RAM (3)
Elementos do modelo:
um nico processador;
memria.
Observaes:
Podemos ignorar os dispositivos de entrada e sada (teclado, monitor, etc)
assumindo que a codicao do algoritmo e os dados j esto armazena-
dos na memria.
Em geral, no relevante para a modelagem do problema saber como o
algoritmo e os dados foram armazenados na memria.
UFMG/ICEx/DCC MD

Introduc a o 27
Algoritmo e modelo computacional:
Modelo RAM (4)
Computao nesse modelo:
Processador busca instruo/dado da memria.
Uma nica instruo executada de cada vez.
Cada instruo executada sequencialmente.
Cada operao executada pelo processador, incluindo clculos aritmticos,
lgicos e acesso memria, implica em um custo de tempo:
Funo de complexidade de tempo.
Cada operao e dado armazenado na memria, implica em um custo de
espao:
Funo de complexidade de espao.
UFMG/ICEx/DCC MD

Introduc a o 28
Complexidade de tempo e espao
A complexidade de tempo no representa tempo diretamente, mas o nmero
de vezes que determinada operao considerada relevante executada.
A complexidade de espao representa a quantidade de memria (em uma
unidade qualquer) que necessrio para armazenar as estruturas de dados
associadas ao algoritmo.
Usa-se a notao assinttica para representar essas complexidades:
O (O grande);
(mega grande);
(Teta);
o (o pequeno);
(mega pequeno).
UFMG/ICEx/DCC MD

Introduc a o 29
Modelo computacional para sistemas distribudos
Mundo distribudo:
Normalmente os elementos computacionais seguem o modelo RAM que
so interconectados atravs de algum meio e s comunicam entre si
atravs de troca de mensagens.
No existe compartilhamento de memria.
Elementos desse modelo:
Elemento computacional representado pelo modelo RAM.
Canal normalmente representado pelo modelo FIFO (rst-in, rst-out).
UFMG/ICEx/DCC MD

Introduc a o 30
Problema dos dois exrcitos (1)
Na Grcia antiga, lugares maravilhosos
como este . . .
. . . podiam se transformar em cenrios de
guerra.
Vale perto de Almklia, Grcia
quando algum lsofo prope o Problema dos dois exrcitos.
UFMG/ICEx/DCC MD

Introduc a o 31
Problema dos dois exrcitos (2)
Cenrio inicial
Exrcito Alfa est em maior nmero que o exrcito Gama mas est dividido em duas meta-
des, cada uma em uma lateral do vale.
Cada metade do exrcito Alfa est em menor nmero que o exrcito Gama.
Objetivo do exrcito Alfa: coordenar um ataque ao exrcito Gama para ganhar a guerra.
UFMG/ICEx/DCC MD

Introduc a o 32
Problema dos dois exrcitos (3)
O problema da coordenao
1. General do exrcito Alfa, do lado esquerdo do vale, chama o seu melhor soldado para
levar uma mensagem para o general do exrcito Alfa do lado direito:
Vamos atacar conjuntamente o exrcito Gama amanh s 6:00h?
Observaes: A nica possibilidade de comunicao entre os dois generais atravs
de um mensageiro.
Os dois generais tm um relgio perfeitamente sincronizado, ou seja,
eles sabem quando ser 6:00h.
UFMG/ICEx/DCC MD

Introduc a o 33
Problema dos dois exrcitos (4)
O problema da coordenao
2. O soldado do exrcito Alfa atravessa as linhas inimigas e leva a mensagem at o general
do outro lado.
UFMG/ICEx/DCC MD

Introduc a o 34
Problema dos dois exrcitos (5)
O problema da coordenao
3. O general do exrcito Alfa do lado direito concorda em atacar o exrcito Gama no dia
seguinte s 6:00h.
UFMG/ICEx/DCC MD

Introduc a o 35
Problema dos dois exrcitos (6)
O problema da coordenao
4. O soldado do exrcito Alfa atravessa novamente as linhas inimigas e conrma com seu
general o ataque para o dia seguinte.
UFMG/ICEx/DCC MD

Introduc a o 36
Problema dos dois exrcitos (7)
O problema da coordenao
Aps esses quatro passos terem sido realizados com sucesso no mesmo dia, haver ataque
no dia seguinte s 6:00h?
UFMG/ICEx/DCC MD

Introduc a o 37
O problema dos dois robs (1)
Imagine dois ou mais robs que vo carregar uma mesa de tal forma que um
car de frente para outro.
Problema:
Projete um algoritmo para coordenar a velocidade e direo do movimento
de cada rob para que a mesa no caia.
Os robs s podem comunicar entre si atravs de um canal de comuni-
cao sem o.
Esse problema tem soluo?
Variante do problema anterior!
UFMG/ICEx/DCC MD

Introduc a o 38
O problema dos dois robs (2)
possvel projetar um algoritmo distribudo para esse problema?
NO! No existe um algoritmo distribudo para o problema de coordenao
considerando o modelo computacional proposto!
E se o canal de comunicao usado para troca de mensagens for perfeito,
ou seja, toda mensagem enviada chegar garantidamente ao seu destino
em um tempo nito?
Sim! Supe-se que cada elemento computacional participante desse pro-
cesso tambm no falha.
UFMG/ICEx/DCC MD

Introduc a o 39
Alguns comentrios sobre algoritmos distribudos
So a base do mundo distribudo, ou seja, de sistemas distribudos.
Sistemas distribudos podem ser:
Tempo real ou no;
Reativos ou no.
Sistemas distribudos podem ser especicados tomando-se como base:
tempo;
eventos.
UFMG/ICEx/DCC MD

Introduc a o 40
Consideraes nais
At agora falamos sobre Matemtica Discreta como um conjunto de princ-
pios, tcnicas e metodologias para resoluo de problemas.
Essa exatamente a abordagem que desenvolveremos neste disciplina.
Matemtica Discreta inclui um nmero muito grande de assuntos e s discu-
tiremos alguns deles.
Os tpicos que estudaremos no so novos. A maior parte deles so mais
antigos que Cincia da Computao.
UFMG/ICEx/DCC MD

Introduc a o 41