BCC204 - Teoria dos Grafos

Documentos relacionados
PESQUISA OPERACIONAL -PROGRAMAÇÃO LINEAR. Prof. Angelo Augusto Frozza, M.Sc.

Exemplos. Jogo dos oito :-) Mundo dos blocos (ex: torre de Hanoi) Poblema das rainhas. Criptoaritmética. Missionários e Canibais.

UM JOGO BINOMIAL 1. INTRODUÇÃO

MODELO SUGERIDO PARA PROJETO DE PESQUISA

Exercício. Exercício

2 Segmentação de imagens e Componentes conexas

Engenharia de Software II

MODELAGENS. Modelagem Estratégica

DIMENSÕES DE PESQUISA EM ENGENHARIA DE SOFTWARE

Roteiro... Sistemas Distribuídos Aula 4. Troca de mensagens. Comunicação entre processos. Conceitos de SD, vantagens e desvantagens

Prof. Daniela Barreiro Claro

Árvores. ! utilizada em muitas aplicações. ! modela uma hierarquia entre elementos. ! O conceito de árvores está diretamente ligado à recursão

Como Elaborar uma Proposta de Projeto

Álgebra Linear Aplicada à Compressão de Imagens. Universidade de Lisboa Instituto Superior Técnico. Mestrado em Engenharia Aeroespacial

Fundamentos de Teste de Software

Teoria dos Grafos. Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada.

Inteligência Artificial

Modelo Lógico: Tabelas, Chaves Primárias e Estrangeiras

Tipologia dos Escritórios de Projeto

Comandos de Eletropneumática Exercícios Comentados para Elaboração, Montagem e Ensaios

ISS Eletrônico. Formato de Arquivos para Transmissão de Documentos Declarados através do aplicativo OFFLINE. Extensão do Arquivo JUNHO2006.

Modelagem de Sistemas Web. Metodologias para o desenvolvimento de sistemas web

Sistemas Operacionais. Sincronização: Semáforos Problema dos Leitores/Escritores

ActivALEA. ative e atualize a sua literacia

CATÁLOGO DE APLICAÇÕES Rateio CC Contas a Pagar

Olimpíada Brasileira de Raciocínio Lógico Nível III Fase II 2014

CATEGORIA 2 INICIATIVAS DE INOVAÇÃO

Gerenciamento do Escopo do Projeto (PMBoK 5ª ed.)

Tópicos Avançados em Banco de Dados Dependências sobre regime e controle de objetos em Banco de Dados. Prof. Hugo Souza

tipo e tamanho e com os "mesmos" elementos do vetor A, ou seja, B[i] = A[i].

Entretanto, este benefício se restringe a um teto de 12% da renda total tributável. O plano VGBL é vantajoso em relação ao PGBL para quem:

Curso de Formação de Oficiais Conhecimentos Específicos ENGENHARIA DE COMPUTAÇÃO CADERNO DE QUESTÕES

SISTEMAS DISTRIBUÍDOS

DISTRIBUIÇÕES ESPECIAIS DE PROBABILIDADE DISCRETAS

LOGO DO WEBSITE DA FUTURA APP

Programação Orientada a Objetos SANTOS, Rafael

TEORIA 5: EQUAÇÕES E SISTEMAS DO 1º GRAU MATEMÁTICA BÁSICA

Probabilidade. Luiz Carlos Terra

Classificação de Ativo Orçamento e Provisão de Despesa

Instruções para o cadastramento da Operação de Transporte e geração do Código Identificador da Operação de Transporte CIOT.

Prof. Regis de Castro Ferreira

Rateio por Despesas por Contas Contábeis

Deswik.Sched. Sequenciamento por Gráfico de Gantt

PDE INTERATIVO MANUAL DE CADASTRO E GERENCIAMENTO DE USUÁRIOS

O Cálculo λ sem Tipos

Função. Adição e subtração de arcos Duplicação de arcos

Obtenção Experimental de Modelos Matemáticos Através da Reposta ao Degrau

Programação Linear - Parte 4

UTILIZAÇÃO DE RECURSOS AVANÇADOS DO EXCEL EM FINANÇAS (PARTE III): GERENCIAMENTO DE CENÁRIOS

Os passos a seguir servirão de guia para utilização da funcionalidade Acordo Financeiro do TOTVS Gestão Financeira.

BCC402 Algoritmos e Programação Avançada. Prof. Marco Antonio M. Carvalho Prof. Túlio Ângelo M. Tóffolo 2011/1

Fundamentos de Bancos de Dados 3 a Prova Caderno de Questões

MANUAL DE INSTALAÇÃO SAT DIMEP PDV CAKE

Inclusão de Validação Biométrica

MDS II Aula 04. Concepção Requisitos Diagrama de Casos de Uso (Use Cases)

Soluções Inovadoras. FlyFlex. Fly Solution

CERT Exceptions ED 15 pt. Exceções. Documento Explicativo. Válido a partir de: 02/03/2016 Distribuição: Pública

Introdução de XML. Dados da Web. Gerência de Dados da Web. A Web representa, nos dias de hoje, um repositório universal de dados, onde:

Fundamentos de Programação. Diagrama de blocos

Modelo Entidade Relacionamento (MER) Professor : Esp. Hiarly Alves

Manual do Usuário Sistema de Acuidade Visual Digital

Avaliação de Empresas Profa. Patricia Maria Bortolon

Deadlocks. Sistemas Operacionais - Professor Machado

ORIENTAÇÕES PARA ELABORAÇÃO DE RELATÓRIO DE CONCLUSÃO DE ESTÁGIO

CURSO DE MATEMÁTICA BÁSICA PROGRAMA DE EDUCAÇÃO TUTORIAL CENTRO DE ENGENHARIA DA MOBILIDADE

ENGENHARIA DE SOFTWARE

Módulo e-rede Magento v1.0. Manual de. Instalação do Módulo. estamos todos ligados

LIBERAÇÃO DE ATUALIZAÇÃO CORDILHEIRA

Resolução de sistemas de equações lineares: Método de eliminação de Gauss

COMISSÃO DE DESENVOLVIMENTO ECONÔMICO, INDÚSTRIA E COMÉRCIO

Otimização Linear Aplicada a Problemas de Planejamento de Produção

Aula 10: Escalonamento da CPU

Contratar um plano de saúde é uma decisão que vai além da pesquisa de preços. Antes de

Princípios e Conceitos de Desenho de Software. Projeto de Sistemas de Software Prof. Rodrigo Ribeiro

1 Circuitos Pneumáticos

ARQUITETURA DE COMPUTADORES. Professor: Clayton Rodrigues da Siva

Dureza Rockwell. No início do século XX houve muitos progressos. Nossa aula. Em que consiste o ensaio Rockwell. no campo da determinação da dureza.

Computação Gráfica - 12

HEMOVIDA (CICLO DO SANGUE - Gerenciamento de estoque para grandes eventos)

Introdução à orientação a objetos

2. ALGORITMOS. Unesp Campus de Guaratinguetá

Transplante capilar Introdução

Disponibilizada a rotina Vale Presente (LOJA830) no módulo Controle de Lojas (SIGALOJA), assim como já é utilizada no módulo Front Loja (SIGAFRT).

Sistemas de Informação

1. IDENTIFICAÇÃO FUNDAÇÃO FIAT SAÚDE E BEM ESTAR

Índice. Caderno de Exercícios. Modelo GCVC Gestão do Ciclo de Vida dos Contratos Caderno de Exercícios 3ª Edição 2016

10. CPU (Central Processor Unit) Conjunto das instruções Estrutura interna Formato das instruções...

Impressora Latex série 300. Garantia limitada

PLANO MUNICIPAL DE SANEAMENTO BÁSICO PMSB PRODUTO IX METODOLOGIA PARA CRIAÇÃO DO SISTEMA DE INFORMAÇÕES PARA AUXÍLIO À TOMADA DE DECISÃO

J.I.T. - Just In Time

DEPARTAMENTO DE MATEMÁTICA

Módulo de Princípios Básicos de Contagem. Segundo ano

TUTORIAL PARA UTILIZAÇÃO DO SISTEMA DE REQUISIÇÃO DE TRANSPORTES NA UFOP

Algoritmos e Estruturas de Dados I. Recursividade. Pedro O.S. Vaz de Melo

MBA em Gerenciamento de Projetos. Teoria Geral do Planejamento. Professora: Maria Erileuza do Nascimento de Paula

Transcrição:

BCC204 - Teoria dos Grafos Marco Antonio M. Carvalho (baseado nas notas de aula do prof. Haroldo Gambini Santos) Departamento de Computação Instituto de Ciências Exatas e Biológicas Universidade Federal de Ouro Preto 24 de julho de 2017 Marco Antonio M. Carvalho (UFOP) BCC204 24 de julho de 2017 1 / 36

Avisos Site da disciplina: http://www.decom.ufop.br/marco/ Lista de e-mails: bcc204@googlegroups.com Para solicitar acesso: http://groups.google.com/group/bcc204 Marco Antonio M. Carvalho (UFOP) BCC204 24 de julho de 2017 2 / 36

Conteúdo 1 Problemas Combinatórios 2 Grafo de Estados 3 Busca em Grafos de Estados 4 Busca Não Informada Marco Antonio M. Carvalho (UFOP) BCC204 24 de julho de 2017 3 / 36

Problemas Combinatórios Definição Um problema combinatório é um problema que possui um conjunto de elementos (ou variáveis) e para sua solução é exigida uma combinação de um subconjunto destes elementos. Diferentes combinações possuem diferentes valores, porém, o objetivo é otimizar a solução (achar a de maior valor maximização ou a de menor valor minimização) de acordo com a função de avaliação. As combinações são limitadas por restrições, que são regras que definem se uma combinação é viável ou inviável. Marco Antonio M. Carvalho (UFOP) BCC204 24 de julho de 2017 4 / 36

Problemas Combinatórios Exemplo de problema combinatório. Marco Antonio M. Carvalho (UFOP) BCC204 24 de julho de 2017 5 / 36

Problemas Combinatórios Mais Definições O espaço de busca de um problema combinatório é o conjunto de todas as soluções possíveis, podendo ser restrito as soluções viáveis ou não. Uma solução ótima global é uma solução viável que atinge o melhor valor possível de acordo com a função de avaliação de um problema combinatório. Podemos ter uma ou múltiplas soluções ótimas para um problema, todas com o mesmo valor da função de avaliação, porém, com configurações diferentes. Ao explorarmos o espaço de busca utilizando alguma técnica, realizamos movimentos entre soluções, ou seja, a partir de uma solução atual, a alteramos de uma determinada maneira e chegamos a uma outra solução. Duas soluções que se diferem entre si por um movimento são ditas vizinhas. Marco Antonio M. Carvalho (UFOP) BCC204 24 de julho de 2017 6 / 36

função de avaliação e Ótimo Global Gráfico da função f (x, y) = -(x 2 + y 2 )+4. A solução ótima (0, 0, 4) é indicada por um ponto vermelho. Marco Antonio M. Carvalho (UFOP) BCC204 24 de julho de 2017 7 / 36

Viabilidade Exemplo de região viável (em azul) de um problema com duas variáveis contínuas x 1 e x 2. As linhas indicam as restrições. Marco Antonio M. Carvalho (UFOP) BCC204 24 de julho de 2017 8 / 36

Problemas Combinatórios Mais Definições Uma solução ótima local ou subótima é uma solução viável que atinge o melhor valor de função de avaliação de um problema combinatório entre as soluções vizinhas. Exemplo de ótimo local e global em um problema de minimização. Marco Antonio M. Carvalho (UFOP) BCC204 24 de julho de 2017 9 / 36

Problema Combinatório Caracterização Em resumo, problema combinatório é composto dos seguintes componentes: Função de avaliação; Conjunto de elementos; Conjunto de restrições. Marco Antonio M. Carvalho (UFOP) BCC204 24 de julho de 2017 10 / 36

Estados, Espaços de Estados e Transições Definições Um estado é uma configuração de um sistema, tal qual uma solução de um problema combinatório. Soluções parciais para um problema também são consideradas como estados válidos; O espaço de estados está para os estados assim como o espaço de busca está para soluções de um problema combinatório; O estado inicial é uma configuração da qual se parte em busca de uma solução, e o estado final é a configuração ideal e completa; As transições estão para os estados assim como os movimentos estão para soluções de um problema combinatório. Marco Antonio M. Carvalho (UFOP) BCC204 24 de julho de 2017 11 / 36

Grafo de Estados Definição Um grafo de estados representa um espaço de estados, exibindo como estes estados se relaciona; Os vértices representam os estados, e as arestas entre os diferentes estados indicam os possíveis transições que levam de um estado a outro; Eventualmente, alguma transição pode não alterar um estado, o que pode ser representado por um laço. Marco Antonio M. Carvalho (UFOP) BCC204 24 de julho de 2017 12 / 36

Exemplo O Problema de Travessia Em uma canoa de dois lugares, um homem deve atravessar para outra margem de um rio uma ovelha, um lobo e um pé de alface. Porém: Se o lobo e a ovelha permanecerem sozinhos, o lobo comerá a ovelha; Se a ovelha e a alface permanecerem sozinhos, a ovelha comerá a alface; Não há uma segunda pessoa para ajudar... Marco Antonio M. Carvalho (UFOP) BCC204 24 de julho de 2017 13 / 36

Exemplo O Problema de Travessia Em uma canoa de dois lugares, um homem deve atravessar para outra margem de um rio uma ovelha, um lobo e um pé de alface. Porém: Se o lobo e a ovelha permanecerem sozinhos, o lobo comerá a ovelha; Se a ovelha e a alface permanecerem sozinhos, a ovelha comerá a alface; Não há uma segunda pessoa para ajudar... Modelagem Um estado é a configuração da margem inicial do problema; Uma transição é a travessia de algum elemento; Considere os seguintes rótulos: (B) homem, (L) lobo, (A) alface e (O) ovelha. Marco Antonio M. Carvalho (UFOP) BCC204 24 de julho de 2017 13 / 36

Exemplo Exemplo da modelagem e solução do problema. Marco Antonio M. Carvalho (UFOP) BCC204 24 de julho de 2017 14 / 36

Exemplo Utilizando o Grafo de Estados Dada a modelagem proposta, é possível criar um grafo de estados que considere todas as transições válidas (ou seja, que não resultem em refeição) e que os relacione; Nos grafos a seguir: Os rótulos indicam o estado da margem original; Transições que levem ao estado inicial da margem original são reforçadas; O problema é considerado solucionado quando a margem inicial se tornar vazia; Exclusivamente para o primeiro grafo, transições que levem a estados inviáveis serão exibidas. Marco Antonio M. Carvalho (UFOP) BCC204 24 de julho de 2017 15 / 36

Exemplo Grafo de estados para o problema da travessia incluindo estados inviáveis. Marco Antonio M. Carvalho (UFOP) BCC204 24 de julho de 2017 16 / 36

Exemplo Grafo de estados para o problema da travessia incluindo apenas estados viáveis. Marco Antonio M. Carvalho (UFOP) BCC204 24 de julho de 2017 17 / 36

Exercício Jogos dos 8 Modele o jogo dos 8 descrevendo: O objetivo; A função de avaliação; Um estado; O estado inicial; O estado final; As transições entre estados. Exemplo do jogo dos 8. Marco Antonio M. Carvalho (UFOP) BCC204 24 de julho de 2017 18 / 36

Exercício Jogos dos 8 Objetivo: Ordenar as peças de maneira crescente no sentido horário, a partir do canto superior esquerdo; função de avaliação: Número de peças na posição correta ou Número de transições necessárias para atingir o estado final. Estado: Uma configuração das peças. As transições entre estados: Deslizar uma peça para esquerda, direita, para cima ou para baixo. Marco Antonio M. Carvalho (UFOP) BCC204 24 de julho de 2017 19 / 36

Exercício Estados inicial e final. Marco Antonio M. Carvalho (UFOP) BCC204 24 de julho de 2017 20 / 36

Exercício Grafo de estados para o jogo dos 8. Marco Antonio M. Carvalho (UFOP) BCC204 24 de julho de 2017 21 / 36

Exercício Grafo de estados indicando a transição realizada, o número de peças na posição correta e o número de transições restantes para atingir o estado final. Marco Antonio M. Carvalho (UFOP) BCC204 24 de julho de 2017 22 / 36

Espaço de Estados Tamanho O tamanho de um problema é usualmente expresso em termos do número de estados possíveis: Jogo-da-velha: 3 9 estados; Cubo Mágico: 10 19 estados; Xadrez: 10 120 estados; Quebra-cabeça de 8 peças: 9!/2 = 181.440 ( 2 10 5 ) estados; 8-Rainhas: 64 8 ( 3*10 14 ) possíveis estados, podendo ser reduzido para 2.057; Alguns espaços de estados podem ser infinitos. Marco Antonio M. Carvalho (UFOP) BCC204 24 de julho de 2017 23 / 36

Busca em Grafos de Estados Busca Computar todas as combinações (viáveis ou não) pode ser impraticável dependendo da natureza e/ou tamanho do problema; O ideal, portanto, é não construir o grafo completamente, e sim construir caminhos que levem do estado inicial ao estado final, construindo o grafo à medida em que é necessário. Desta forma, criamos uma árvore de busca; Algum algoritmo de busca deve ser utilizado para isto. Algoritmo de Busca Algoritmos que tomam um problema (geralmente combinatório) como entrada e geram uma solução para este problema, após um determinado número de passos, são chamados de algoritmos de busca. Marco Antonio M. Carvalho (UFOP) BCC204 24 de julho de 2017 24 / 36

Exemplo Jogo dos 8 O número de peças na posição correta deve ser maximizado, ao passo que o número de transições necessárias deve ser minimizado; Analisando-se estes dois critérios para cada vértice, expande-se a busca a partir do vértice com maior potencial de desenvolvimento. No caso da figura anterior, este seria o vértice 2; A figura a seguir demonstra uma árvore de busca que desenvolve os vértices de melhor potencial até que o estado final seja atingido; Também é exemplificado o caso de uma piora após uma transição (vértice 4). Marco Antonio M. Carvalho (UFOP) BCC204 24 de julho de 2017 25 / 36

Exemplo Árvore de busca para o jogo dos 8. Marco Antonio M. Carvalho (UFOP) BCC204 24 de julho de 2017 26 / 36

Algoritmos de Busca Considerações O que está sendo procurado? O que é interessante: a solução ou o caminho para a solução? Completude O algoritmo de busca garante encontrar uma solução quando há uma? Busca exaustiva versus busca heurística (com poda). Complexidade Tempo e espaço. Otimalidade A estratégia encontra a solução de melhor qualidade quando há diferentes soluções? Marco Antonio M. Carvalho (UFOP) BCC204 24 de julho de 2017 27 / 36

Algoritmos de Busca e Espaço de Estados Fator de Ramificação do Problema O fator de ramificação do problema (ou branching factor) é o número médio de transições disponíveis em cada estado. Fator de Ramificação da Busca O fator de ramificação do algoritmo de busca (ou algorithm effective branching factor) é o número médio de vértices efetivamente gerados durante a busca. Estados Repetidos e Simétricos Durante a busca, podemos encontrar estados repetidos ou estados simétricos, que são equivalentes a outros estados. Marco Antonio M. Carvalho (UFOP) BCC204 24 de julho de 2017 28 / 36

Evitando Estados Repetidos Sem repetições... Há três formas de tratar estados repetidos: Não retornar ao estado do qual se acabou de sair; Não criar caminhos com ciclos; Não gerar nenhum estado que foi gerado anteriormente o que requer que cada estado gerado seja guardado em memória aumentando a complexidade de espaço. = = = Marco Antonio M. Carvalho (UFOP) BCC204 24 de julho de 2017 29 / 36

Tipos de Buscas Busca Informada Uma busca informada utiliza informações específicas do problema para guiar a busca; A função de avaliação realiza uma estimativa do potencial do estado atual em relação ao estado objetivo. Exemplos: Best-First, A, IDA... Busca Não Informada Uma busca não informada realiza uma busca cega, sem informações sobre o problema. É repetida exaustivamente até que uma solução seja encontrada ou até falhar. Exemplos: Busca em Profundidade, Busca em Largura, Busca Bidirecional... Marco Antonio M. Carvalho (UFOP) BCC204 24 de julho de 2017 30 / 36

Busca Não Informada Nos três casos abaixo, a busca prossegue em uma ordem fixa, sem considerar informações específicas do problema. Busca em Profundidade Escolhe uma ramificação e prossegue avançando em níveis da árvore de busca até o encontro do estado final; caso não encontre retorna a uma outra ramificação anterior. Busca em Largura Explora todos os estados de um dado nível da árvore de busca antes de passar para o próximo. Busca Bidirecional Consiste em executar duas buscas simultâneas: uma partindo do estado inicial em direção ao final e outra partindo do estado final em direção ao inicial. Marco Antonio M. Carvalho (UFOP) BCC204 24 de julho de 2017 31 / 36

Busca em Profundidade Desvantagens Um problema com a busca em profundidade é que existem espaços de estados nos quais o algoritmo se perde; Para evitar caminhos infinitos, um refinamento pode ser adicionado à busca em profundidade: limitar a profundidade de busca Se o limite for muito pequeno (menor que qualquer caminho até uma solução) então a busca falha; Se o limite for muito grande, a busca se torna muito complexa. Marco Antonio M. Carvalho (UFOP) BCC204 24 de julho de 2017 32 / 36

Busca em Profundidade Desvantagens Para resolver este problema a busca em profundidade limitada pode ser executada de forma iterativa, variando o limite: comece com um limite de profundidade pequeno e aumente gradualmente o limite até que uma solução seja encontrada; Esta técnica é denominada busca em profundidade iterativa e pode ser implementada a partir de um procedimento que, em cada chamada recursiva, incrementa o limite em uma unidade. Marco Antonio M. Carvalho (UFOP) BCC204 24 de julho de 2017 33 / 36

Busca em Largura Desvantagens Em contraste com a busca em profundidade, a busca em largura escolhe primeiro visitar aqueles vértices mais próximos do vértice inicial; O algoritmo não é tão simples, pois é necessário manter um conjunto de vértices candidatos alternativos e não apenas um único, como na busca em profundidade O conjunto é todo o nível inferior da árvore de busca; Além disso, só o conjunto é insuficiente se o caminho da solução também for necessário; Assim, ao invés de manter um conjunto de vértices candidatos, é necessário manter um conjunto de caminhos candidatos. Marco Antonio M. Carvalho (UFOP) BCC204 24 de julho de 2017 34 / 36

Exercício Jogo da velha Modele a resolução de um cubo mágico como um problema de busca em grafos de estados, detalhando: 1 O que são os estados; 2 O estado inicial e o estado final; 3 As transições; 4 A função de avaliação; 5 O fator de ramificação do problema; 6 Se estamos interessados somente no estado final ou no caminho que leva até o caminho final. Marco Antonio M. Carvalho (UFOP) BCC204 24 de julho de 2017 35 / 36

Dúvidas? Marco Antonio M. Carvalho (UFOP) BCC204 24 de julho de 2017 36 / 36