matemática discreta

41
 Matemática Discreta Introdução Antonio Alfredo Ferreira Loureiro [email protected] Olga Nikolaevna Goussevskaia [email protected] UFMG/ICEx/DCC MD · Introduc ¸a ˜o  1

Upload: weve-rson

Post on 04-Nov-2015

45 views

Category:

Documents


0 download

DESCRIPTION

matemática discreta

TRANSCRIPT

  • Matemtica DiscretaIntroduo

    Antonio Alfredo Ferreira [email protected]

    Olga Nikolaevna [email protected]

    UFMG/ICEx/DCC MD Introducao 1

  • DISCRETE Math is

    Real f(u)n

    UFMG/ICEx/DCC MD Introducao 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 ComputaoLgica 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 finito Modelo computacional para resoluo de problemasem geral

    Probabilidade Anlise de algoritmos (caso mdio)

    UFMG/ICEx/DCC MD Introducao 3

  • Definio 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 Computaotanto 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 Introducao 4

  • Matemtica discreta e contnua

    Matemtica contnua: trata de conjuntos similares ao conjunto de nmerosreais. 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, finitos e podem ser enumerados.

    UFMG/ICEx/DCC MD Introducao 5

  • Os termos discreto e contnuo em Cincia daComputao

    Os computadores podem ser classificados em digitais e analgicos, do pontode 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 anal-

    gicos. Exemplo de relgio: Digital Analgico

    UFMG/ICEx/DCC MD Introducao 6

  • Motivao para estudar Matemtica Discreta doponto de vista prtico

    A influncia 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 finito.

    Muitas de suas propriedades podem ser estudadas e ilustradas atravs deprincpios da Matemtica discreta, onde estudamos princpios e tcnicas paraprojetar sistemas de computao (hardware e software).

    UFMG/ICEx/DCC MD Introducao 7

  • Matemtica Discreta vs. Cincia da Computao ouEntendendo a importncia de Matemtica Discreta

    para Cincia da Computao (1)A seguir, so apresentados os tpicos que estudaremos nesta disciplina bem como exemplosde sua utilizao em Cincia da Computao:

    Fundamentos da Lgica; Lgica Proposici-onal; Lgica de Proposies Quantificadas;e Clculo de Predicados. Banco de dados; Circuitos integrados; Inteligncia artificial; 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 artificial; Sistemas distribudos.

    UFMG/ICEx/DCC MD Introducao 8

  • Matemtica Discreta vs. Cincia da Computao ouEntendendo 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 artificial; Otimizao; Projeto de algoritmos; Redes de computadores; Robtica; Sistemas computacionais (hardware e

    software); Sistemas distribudos; Sistemas operacionais.

    UFMG/ICEx/DCC MD Introducao 9

  • Modelagem Matemtica

    Metodologia: conjunto de conceitos que traz coeso a princpios e tcnicasmostrando quando, como e porque us-los em situaes diferentes.

    A metodologia que usa matemtica na resoluo de problemas conhecidacomo modelagem matemtica.

    O processo de modelagem:

    ModeloAbstrato

    Problema Soluo parao problema

    ModeloTransformado

    UFMG/ICEx/DCC MD Introducao 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 tabelaabaixo que ligue todas as cidades e tenha um comprimento total mnimo.

    B C D E FA 5 10 B 5 10 20 C 20 30D 20 E 10

    UFMG/ICEx/DCC MD Introducao 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.

    5

    FD

    A B C

    E

    5

    1010

    20

    30

    1020

    20

    Grafo G

    Grafo (definio informal): conjunto de pontos chamados de vrtices ou ns,e um conjunto de linhas (normalmente no-vazio) conectando um vrtice aooutro. Neste caso, cidades so representadas por vrtices e estradas por linhas

    (arestas).UFMG/ICEx/DCC MD Introducao 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 acondio 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 Introducao 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

    FD

    A B C

    E

    5

    1010

    20

    30

    1020

    20

    Grafo G

    UFMG/ICEx/DCC MD Introducao 14

  • Exemplo de modelagem:Malha rodoviria Solues (5)

    5

    FD

    A B C

    E

    5

    1010

    20

    30

    1020

    20

    Grafo G

    Solues:5 B C

    E

    5

    FD

    A

    10 20

    10

    5 B C

    E

    5

    FD

    A

    10 20

    10

    5A B C

    E

    5

    FD 20

    10

    10

    5A B C

    E

    5

    FD 20

    10

    10

    Grafo G1 Grafo G2 Grafo G3 Grafo G4UFMG/ICEx/DCC MD Introducao 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 Introducao 16

  • Exemplo de modelagem:Sudoku e Godoku (1)

    Sudoku Godoku

    O objetivo do Sudoku(Godoku) preenchertodos os espaos embranco do quadradomaior, que est divi-dido em nove grids,com os nmeros de 1a 9 (letras). Os alga-rismos no podem serepetir na mesma co-luna, linha ou grid.

    Sudoku: A palavraSudoku significa n-mero sozinho em ja-pons, o que mostraexatamente o objetivo

    do jogo. O Sudoku existe desde a dcada de 1970, mas comeou a ganhar popularidade nofinal de 2004 quando comeou a ser publicado diariamente na sesso de puzzles do jornal TheTimes. Entre abril e maio de 2005 o puzzle comeou a ganhar um espao na publicao deoutros jornais britnicos e, poucos meses depois, ganhou popularidade mundial. Fonte: wikipe-dia.org

    Godoku: O jogo Godoku similar ao Sudoku mas formado apenas por letras.

    UFMG/ICEx/DCC MD Introducao 17

  • Exemplo de modelagem:SuperSudoku (2)

    O jogo SuperSudoku similarao Sudoku e Godoku formadopor nmeros e letras. Cada gridtem 16 entradas, sendo novedos nmeros (0 a 9) e seis le-tras (A a F).

    UFMG/ICEx/DCC MD Introducao 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 Sudokupor Jean-Paul Delahaye, na revista Scientific American Brasil, edio no 50 de julho de 2006.

    UFMG/ICEx/DCC MD Introducao 19

  • Exemplo de modelagem:Kasparov Deep Blue

    In the first ever traditional chess match between a man (worldchampion Garry Kasparov) and a computer (IBMs Deep Blue) in1996, Deep Blue won one game, tied two and lost three. The nextyear, Deep Blue defeated Kasparov in a six-game match the firsttime a reigning world champion lost a match to a computer oppo-nent in tournament play. Deep Blue was a combination of specialpurpose hardware and software with an IBM RS/6000 SP2 (seenhere) a system capable of examining 200 million moves per se-cond, or 50 billion positions, in the three minutes allocated for asingle move in a chess game.

    Referncia: http://www-03.ibm.com/ibm/history/exhibits/vintage/vintage_4506VV1001.html

    UFMG/ICEx/DCC MD Introducao 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, e2. A estrutura de dados a ser usada nesse algoritmo.

    Em geral, a escolha do algoritmo influencia 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 algoritmosquanto estruturas de dados.

    UFMG/ICEx/DCC MD Introducao 21

  • Questes sobre a modelagem (2)O caso do jogo Sudoku

    Um possvel algoritmo para resolver o jogo Sudoku o Algoritmo de ForaBruta: 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 Introducao 22

  • O papel de algoritmos em computao

    Definio: um algoritmo um conjunto finito de instrues precisas paraexecutar uma computao. Um algoritmo pode ser visto como uma ferramenta para resolver um pro-

    blema computacional bem especificado. O vocbulo algoritmo origina do nome al-Khowarizmi.

    Um algoritmo pode receber como entrada um conjunto de valores e podeproduzir 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 Introducao 23

  • Origem do vocbulo algoritmo

    Abu JaFar Mohammed IbnMusa al-Khowarizmi (780850), astrnomo e mate-mtico rabe. Era membroda Casa da Sabedoria,uma academia de cientis-tas em Bagd. O nome al-Khowarizmi significa da ci-dade de Khowarizmi, queagora chamada Khiva e parte do Uzbequisto. al-Khowarizmi escreveu livrosde matemtica, astronomiae geografia. A lgebra foiintroduzida na Europa oci-dental atravs de seus tra-balhos. A palavra lgebravem do rabe al-jabr, partedo ttulo de seu livro Kitab

    al-jabr wal muquabala. Esse livro foi traduzido para o latim e foi usado extensivamente. Seu li-vro sobre o uso dos numerais hindu descreve procedimentos para operaes aritmticas usandoesses numerais. Autores europeus usaram uma adaptao latina de seu nome, at finalmentechegar na palavra algoritmo para descrever a rea da aritmtica com numerais hindu.

    UFMG/ICEx/DCC MD Introducao 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 Introducao 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 Introducao 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 armazena-dos na memria.

    Em geral, no relevante para a modelagem do problema saber como oalgoritmo e os dados foram armazenados na memria.

    UFMG/ICEx/DCC MD Introducao 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 deespao: Funo de complexidade de espao.

    UFMG/ICEx/DCC MD Introducao 28

  • Complexidade de tempo e espao

    A complexidade de tempo no representa tempo diretamente, mas o nmerode vezes que determinada operao considerada relevante executada.

    A complexidade de espao representa a quantidade de memria (em umaunidade qualquer) que necessrio para armazenar as estruturas de dadosassociadas 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 Introducao 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 atra-vs 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 Introducao 30

  • Problema dos dois exrcitos (1)Na Grcia antiga, lugares maravilhososcomo este . . .

    . . . podiam se transformar em cenrios deguerra.

    Vale perto de Almfiklia, Grcia

    quando algum filsofo prope o Problema dos dois exrcitos.

    UFMG/ICEx/DCC MD Introducao 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 Introducao 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 paralevar 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 Introducao 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 generaldo outro lado.

    UFMG/ICEx/DCC MD Introducao 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 diaseguinte s 6:00h.

    UFMG/ICEx/DCC MD Introducao 35

  • Problema dos dois exrcitos (6)O problema da coordenao

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

    UFMG/ICEx/DCC MD Introducao 36

  • Problema dos dois exrcitos (7)O problema da coordenao

    Aps esses quatro passos terem sido realizados com sucesso no mesmo dia, haver ataqueno dia seguinte s 6:00h?

    UFMG/ICEx/DCC MD Introducao 37

  • O problema dos dois robs (1)

    Imagine dois ou mais robs que vo carregar uma mesa de tal forma que umficar de frente para outro. Problema:

    Projete um algoritmo para coordenar a velocidade e direo do movimentode cada rob para que a mesa no caia.

    Os robs s podem comunicar entre si atravs de um canal de comunica-o sem fio.

    Esse problema tem soluo? Variante do problema anterior!

    UFMG/ICEx/DCC MD Introducao 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 coordenaoconsiderando 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 destinoem um tempo finito?Sim! Supe-se que cada elemento computacional participante desse pro-cesso tambm no falha.

    UFMG/ICEx/DCC MD Introducao 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 Introducao 40

  • Consideraes finais

    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 maisantigos que Cincia da Computao.

    UFMG/ICEx/DCC MD Introducao 41