Вы находитесь на странице: 1из 41

Matemtica Discreta

Introduo
Antonio Alfredo Ferreira Loureiro
loureiro@dcc.ufmg.br

Olga Nikolaevna Goussevskaia


olgang@gmail.com

UFMG/ICEx/DCC

MD

Introduc

ao

DISCRETE Math is
n
f (u)

eal

UFMG/ICEx/DCC

MD

Introduc

ao

Introduo
Por que estudar Matemtica Discreta?
Prov um conjunto de tcnicas para modelar problemas em Cincia da
Computao.
Tpico de Matemtica Discreta
Lgica e Conjuntos

Aplicao em Cincia da Computao


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 finito

Modelo computacional para resoluo de problemas


em geral

Probabilidade

Anlise de algoritmos (caso mdio)

UFMG/ICEx/DCC

MD

Introduc

ao

Definio dos termos discreto e contnuo


D ISCRETO : feito de partes distintas.
C ONTNUO : sem interrupo e sem mudana brusca.
Exemplos familiares de matemtica contnua: clculo e equaes diferenciais.
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

ao

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 (geometricamente) de cada um.
Conjuntos so, em geral, finitos e podem ser enumerados.

UFMG/ICEx/DCC

MD

Introduc

ao

Os termos discreto e contnuo em Cincia da


Computao
Os computadores podem ser classificados em digitais e analgicos, do ponto
de vista do dado processado.
Dados obtidos atravs de algum processo de contagem (counting) so discretos.
Computadores que processam este tipo de dado so chamados de digitais.
Dados obtidos atravs de algum processo de medida (measuring) so contnuos.
Computadores que processam este tipo de dado so chamados de
analgicos.
Exemplo de relgio: Digital
Analgico

UFMG/ICEx/DCC

MD

Introduc

ao

Motivao para estudar Matemtica Discreta do


ponto de vista prtico
A influncia e desenvolvimento de computadores digitais tm aumentado bastante nos ltimos anos.
Na verdade, deveramos falar de elementos computacionais ao invs de computador digital.
Um elemento computacional basicamente um sistema discreto finito.
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

ao

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 Proposicional; Lgica de Proposies Quantificadas; e Clculo de Predicados.
Banco de dados;
Circuitos integrados;
Inteligncia artificial;
Sistemas computacionais (hardware e
software);
Sistemas distribudos.

UFMG/ICEx/DCC

MD

Mtodos de Prova:
Circuitos integrados;
Projeto de algoritmos.
Sequncias e Induo Matemtica:
Projeto de algoritmos.
Teoria dos Conjuntos:
Banco de dados;
Circuitos integrados;
Inteligncia artificial;
Sistemas distribudos.

Introduc

ao

Matemtica Discreta vs. Cincia da Computao ou


Entendendo a importncia de Matemtica Discreta
para Cincia da Computao (2)
Grafos:
Banco de dados;
Circuitos integrados;
Compiladores e linguagens de programao;
Engenharia de software;
Inteligncia artificial;
Otimizao;
Projeto de algoritmos;
Redes de computadores;
Robtica;
Sistemas computacionais (hardware e
software);
Sistemas distribudos;
Sistemas operacionais.

Funes:
Otimizao;
Projeto de algoritmos.
Recurso:
Projeto de algoritmos.
Anlise Combinatria:
Circuitos integrados;
Otimizao;
Projeto de algoritmos;
Sistemas distribudos.
Relaes:
Sistemas distribudos.

UFMG/ICEx/DCC

MD

Introduc

ao

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:

UFMG/ICEx/DCC

Problema

Soluo para
o problema

Modelo

Modelo

Abstrato

Transformado

MD

Introduc

ao

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.

A
B
C
D
E

UFMG/ICEx/DCC

B
5

MD

D
10
10
20

20

20

Introduc

ao

30

10

11

Exemplo de modelagem:
Malha rodoviria (2)
Tabela j um modelo da situao do mundo real.
A tabela pode ser transformada numa representao grfica chamada
GRAFO , que ser o modelo matemtico.
20

5
10

10

20

C
30

20

10

Grafo G
Grafo (definio 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

ao

12

Exemplo de modelagem:
Malha rodoviria (3)
Qual o prximo passo?
Achar uma soluo em termos desse modelo.
Nesse caso, achar um grafo G0 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

ao

13

Exemplo de modelagem:
Malha rodoviria (4)
Algoritmo:
1. Selecione arbitrariamente qualquer vrtice e o coloque no conjunto de vrtices j conectados.
2. Escolha dentre os vrtices no conectados aquele mais prximo de um vrtice j conectado. Se existir mais de um vrtice com essa caracterstica escolha aleatoriamente qualquer um deles.
3. Repita o passo 2 at que todos os vrtices j estejam conectados.
Este um exemplo de um algoritmo guloso (greedy algorithm).
20

5
10

C
30

20

10

20

10

Grafo G
UFMG/ICEx/DCC

MD

Introduc

ao

14

Exemplo de modelagem:
Malha rodoviria Solues (5)
20

5
10

30

20

10

20

10

Grafo G
Solues:
A

5
10

20

10
10

Grafo G1
UFMG/ICEx/DCC

10

20

10

20

10

Grafo G3
MD

Introduc

ao

10

Grafo G2

20

10

Grafo G4
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 Computao.
Nem todos os problemas considerados tero como soluo um algoritmo,
mas muitos tero.

UFMG/ICEx/DCC

MD

Introduc

ao

16

Exemplo de modelagem:
Sudoku e Godoku (1)
O objetivo do Sudoku
(Godoku) preencher
todos os espaos em
branco do quadrado
maior, que est dividido em nove grids,
com os nmeros de 1
a 9 (letras). Os algarismos no podem se
repetir na mesma coluna, linha ou grid.
Sudoku: A palavra
Sudoku
significa
nmero sozinho em
Sudoku
Godoku
japons, o que mostra
exatamente o objetivo
do jogo. O Sudoku existe desde a dcada de 1970, mas comeou a ganhar popularidade no
final 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

ao

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 letras (A a F).

UFMG/ICEx/DCC

MD

Introduc

ao

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 Scientific American Brasil, edio no 50 de julho de 2006.

UFMG/ICEx/DCC

MD

Introduc

ao

19

Exemplo de modelagem:
Kasparov Deep Blue
In the first 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 first
time a reigning world champion lost a match to a computer opponent 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 second, 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

ao

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 influencia a estrutura de dados e viceversa.
necessrio considerar diferentes fatores para escolher esse par (algoritmo 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

ao

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 configurao
abaixo?

Existem 11 25 332 413 61 =


23 875 983 329 839 202 653 175 808 23, 8 1024 possibilidades!
UFMG/ICEx/DCC

MD

Introduc

ao

22

O papel de algoritmos em computao


Definio: um algoritmo um conjunto finito de instrues precisas para
executar uma computao.
Um algoritmo pode ser visto como uma ferramenta para resolver um problema computacional bem especificado.
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

ao

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
significa da cidade de
Khowarizmi, que agora
chamada Khiva e
parte do Uzbequisto.
al-Khowarizmi
escreveu
livros
de
matemtica,
astronomia e geografia. 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 finalmente chegar na palavra algoritmo para descrever
a rea da aritmtica com numerais hindu.
UFMG/ICEx/DCC

MD

Introduc

ao

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).
Definio (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 definido o modelo computacional associado (onde ser executado).
Conceito bsico no projeto de qualquer algoritmo.
UFMG/ICEx/DCC

MD

Introduc

ao

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

ao

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 codificao do algoritmo e os dados j esto armazenados 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

ao

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

ao

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

ao

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 (first-in, first-out).

UFMG/ICEx/DCC

MD

Introduc

ao

30

Problema dos dois exrcitos (1)


Na Grcia antiga, lugares maravilhosos
como este . . .

. . . podiam se transformar em cenrios de


guerra.

Vale perto de Almfiklia, Grcia


quando algum filsofo prope o Problema dos dois exrcitos.

UFMG/ICEx/DCC

MD

Introduc

ao

31

Problema dos dois exrcitos (2)


Cenrio inicial

Exrcito Alfa est em maior nmero que o exrcito Gama mas est dividido em duas metades, 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

ao

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

ao

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

ao

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

ao

35

Problema dos dois exrcitos (6)


O problema da coordenao

4. O soldado do exrcito Alfa atravessa novamente as linhas inimigas e confirma com seu
general o ataque para o dia seguinte.

UFMG/ICEx/DCC

MD

Introduc

ao

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

ao

37

O problema dos dois robs (1)


Imagine dois ou mais robs que vo carregar uma mesa de tal forma que um
ficar 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 comunicao sem fio.
Esse problema tem soluo?
Variante do problema anterior!

UFMG/ICEx/DCC

MD

Introduc

ao

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 finito?
Sim! Supe-se que cada elemento computacional participante desse processo tambm no falha.

UFMG/ICEx/DCC

MD

Introduc

ao

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 especificados tomando-se como base:
tempo;
eventos.

UFMG/ICEx/DCC

MD

Introduc

ao

40

Consideraes finais
At agora falamos sobre Matemtica Discreta como um conjunto de princpios, 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 discutiremos 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

ao

41