UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE CENTRO DE CIÊNCIAS EXATAS E DA TERRA DEPARTAMENTO DE INFORMÁTICA E MATEMÁTICA APLICADA PROGRAMA DE PÓS-GRADUAÇÃO EM SISTEMAS E COMPUTAÇÃO MESTRADO ACADÊMICO EM SISTEMAS E COMPUTAÇÃO Uma Investigação de Algoritmos Exatos e Metaheurísticos Aplicados ao Nonograma Camila Nascimento de Oliveira Taumaturgo Natal-RN Fevereiro de 2013 Camila Nascimento de Oliveira Taumaturgo Uma Investigação de Algoritmos Exatos e Metaheurísticos Aplicados ao Nonograma Dissertação de Mestrado apresentado ao Programa de Pós-Graduação em Sistemas e Computação do Departamento de Informática e Matemática Aplicada da Universidade Federal do Rio Grande do Norte como requisito parcial para a obtenção do grau de Mestre em Sistemas e Computação. Linha de pesquisa: Algoritmos Experimentais Orientadora Prof.ª Dra. Elizabeth Ferreira Gouvêa Goldbarg PPgSC – Programa de Pós-Graduação em Sistemas e Computação DIMAp – Departamento de Informática e Matemática Aplicada CCET – Centro de Ciências Exatas e da Terra UFRN – Universidade Federal do Rio Grande do Norte Natal-RN Fevereiro de 2013 Dissertação de Mestrado sob o título Uma Investigação de Algoritmos Exatos e Metaheurísticos Aplicados ao Nonograma apresentado por Camila Nascimento de Oliveira Taumaturgo e aceita pelo Programa de Pós-Graduação em Sistemas e Computação do Departamento de Informática e Matemática Aplicada da Universidade Federal do Rio Grande do Norte, sendo aprovada por todos os membros da banca examinadora abaixo especificada: __________________________________________ Prof.ª Dra. Elizabeth Ferreira Gouvêa Goldbarg Presidente DIMAp – Departamento de Informática e Matemática Aplicada UFRN – Universidade Federal do Rio Grande do Norte __________________________________________ Prof. Dr. Marco César Goldbarg Examinador interno à Instituição DIMAp – Departamento de Informática e Matemática Aplicada UFRN – Universidade Federal do Rio Grande do Norte __________________________________________ Prof.ª Dra. Iloneide Carlos de Oliveira Ramos Examinadora externa ao Programa DEST – Departamento de Estatística UFRN – Universidade Federal do Rio Grande do Norte __________________________________________ Prof. Dr. Antônio Carlos Gay Thomé Examinador externo à Instituição Departamento de Ciência da Computação UFRJ – Universidade Federal do Rio de Janeiro Natal-RN, 01 de fevereiro de 2013. Dedicatória Dedico este trabalho ao meu esposo, Renato Taumaturgo. Reno, muito obrigada pelo seu carinho, apoio e atenção. Sem você esta fase da minha vida não teria sido tão bonita e repleta de alegrias. Te amo. Agradecimentos Quero agradecer primeiramente a Deus, por me ter me concedido tantas graças, por ter me dado forças, amor e ter colocado na minha vida pessoas muito especiais que tornaram meus dias mais fáceis e prazerosos. Em especial, quero agradecer e dedicar este trabalho ao meu amado esposo Renato, por sempre estar ao meu lado e disposto a me ajudar, por compreender minhas preocupações e angústias durante todo o trabalho. Obrigada por ter abdicado de suas férias para estar ao me lado no fim desta fase tão importante na minha vida. Não posso deixar de agradecer aos meus familiares mais próximos. Aos meus irmãos pela confiança e admiração ao meu trabalho. Ao meu pai que, sendo professor e mestre, me inspirou nesta jornada. Em especial, à minha mãe, pelo carinho, paciência e pela torcida; sei que ela é minha maior fã, e sua dedicação me inspira a me tornar uma profissional e mãe amorosa e dedicada. E aos meus sobrinhos, principalmente Ana Lu, que entendeu todas as vezes que eu disse que ela não poderia dormir na minha casa porque eu estava terminando meu Mestrado. Quero agradecer aos meus sogros e às minhas duas cunhadas pela amizade e pelo carinho. Eles realmente são minha família, e agradeço a Deus por ter posto eles na minha vida. Quero agradecer aos meus amigos da UFRN. A Juliana Araújo, por sempre estar feliz ao meu lado, me dando apoio e me incentivando. A Everton Cavalcante, pelos seus conselhos e sua amizade, e eu sei que ele sempre está disposto a me ajudar em qualquer situação; muito obrigada! A Alba Sandyra, minha amiga da UFRN mais antiga, que sempre tem conselhos sábios, é sincera e fiel; obrigada, Albinha, pela sua amizade. Aos colegas do LAE quero agradecer pelos momentos de descontração e pelas novas amizades que fiz durante o Mestrado, e espero que essas amizades sejam eternas. Em especial, agradeço a Silvia, que iniciou o trabalho com os Nonogramas, me concedeu tudo que havia pesquisado e sempre esteve disposta a me ajudar e a tirar minhas dúvidas. Com certeza, sem a ajuda de Silvia, meu Mestrado teria sido mais complicado. Por último, e não menos importante, quero agradecer à minha orientadora Elizabeth Goldbarg, pelas conversas, orientações e amizade; obrigada por tudo, professora. Quero também agradecer ao professor Marco Goldbarg pelas ótimas dicas ao meu trabalho e pela confiança em mim. Ainda que eu caminhe por um vale tenebroso, nenhum mal temerei, pois estás junto a mim. Salmo 22,4 Uma Investigação de Algoritmos Exatos e Metaheurísticos Aplicados ao Nonograma Autora: B.Sc. Camila Nascimento de Oliveira Taumaturgo Orientadora: Prof.ª Dra. Elizabeth Ferreira Gouvêa Goldbarg RESUMO O Nonograma é um jogo lógico cujo problema de decisão associado é NP-completo. Ele possui aplicação em problemas de identificação de padrões e de compactação de dados, dentre outros. O jogo consiste em determinar uma alocação de cores em pixels distribuídos em uma matriz N M atendendo restrições em linhas e colunas. Um Nonograma é codificado através de vetores cujos elementos especificam o número de pixels existentes em cada coluna e linha de uma figura, sem especificar suas coordenadas. Este trabalho apresenta abordagens exatas e heurísticas para solucionar o Nonograma. A Busca em Profundidade foi uma das abordagens exatas escolhida, por ser um exemplo típico de algoritmo de força bruta de fácil implementação. Outra abordagem exata implementada foi baseada no algoritmo Las Vegas, através do qual se pretende investigar se a aleatoriedade introduzida pelo algoritmo Las Vegas traria algum benefício em relação à Busca em Profundidade. O Nonograma também é transformado em um Problema de Satisfação de Restrições. Três abordagens heurísticas são propostas: uma Busca Tabu e dois algoritmos Memético. Uma nova abordagem para o cálculo da função objetivo é proposta neste trabalho. As abordagens são testadas em 234 casos de teste de tamanho entre 5 x 5 e 100 x 100, incluindo Nonogramas lógicos e aleatórios. Palavras-chave: Nonograma. Busca em Profundidade. Las Vegas. Problema de Satisfação de Restrições. Busca Tabu. Memético. Exact and Metaheuristic Algorithms Research Applied to Nonogram Author: Camila Nascimento de Oliveira Taumaturgo, B.Sc. Supervisor: Prof. Elizabeth Ferreira Gouvêa Goldbarg, Ph.D. ABSTRACT Nonogram is a logical puzzle whose associated decision problem is NP-complete. It has applications in pattern recognition problems and data compression, among others. The puzzle consists in determining an assignment of colors to pixels distributed in a N M matrix that satisfies line and column constraints. A Nonogram is encoded by a vector whose elements specify the number of pixels in each row and column of a figure without specifying their coordinates. This work presents exact and heuristic approaches to solve Nonograms. The depth first search was one of the chosen exact approaches because it is a typical example of brute search algorithm that is easy to implement. Another implemented exact approach was based on the Las Vegas algorithm, so that we intend to investigate whether the randomness introduce by the Las Vegas-based algorithm would be an advantage over the depth first search. The Nonogram is also transformed into a Constraint Satisfaction Problem. Three heuristics approaches are proposed: a Tabu Search and two memetic algorithms. A new function to calculate the objective function is proposed. The approaches are applied on 234 instances, the size of the instances ranging from 5 x 5 to 100 x 100 size, and including logical and random Nonograms. Keywords: Nonogram. Depth First Search. Las Vegas. Constraint Satisfaction Problem. Tabu Search. Memetic. Lista de Figuras Figura 1 – Imagem binária com suas projeções horizontal e vertical (Fonte: Batenburg, 2005) 19 Figura 2 – Esquerda: Descrição de um Nonograma. Direita: Solução correspondente do Nonograma (Fonte: Pic-a-Pix) ............................................................................................. 20 Figura 3 – Exemplo de um Nonograma preto-e-branco e sua solução ....................................... 24 Figura 4 – Nonograma Colorido .................................................................................................. 24 Figura 5 – (a) Dado um puzzle. (b) Três alocações possíveis de blocos para a linha 1. (c) Duas alocações possíveis de blocos para a linha 2. (d) Duas alocações possíveis de blocos para a linha 3. (e) Uma alocação de bloco para a linha 4. ............................................................. 35 Figura 6 – Transformando o Nonograma em cláusulas lógicas para as linhas............................ 47 Figura 7 – Possibilidades da linha 1 ............................................................................................. 49 Figura 8 – Possibilidades da linha 2 ............................................................................................. 49 Figura 9 – Possibilidades da linha 3 ............................................................................................. 50 Figura 10 – Possibilidade da linha 4 ............................................................................................ 50 Figura 11 – Possibilidades da linha 6 ........................................................................................... 50 Figura 12 – Um exemplo de DFS. (a) Dado um puzzle. (b) Três possíveis soluções para a linha 1. (c) Duas soluções possíveis para a linha 2. (d) Duas soluções possíveis para a linha 3. (e) Uma solução possível para a linha 4. (f) Árvore de busca de (a). ....................................... 51 Figura 13 – Passo 1 da busca em profundidade com Backtracking ............................................ 51 Figura 14 – Passo 2 da busca em profundidade com Backtracking ............................................ 52 Figura 15 – Passo 3 da busca em profundidade com Backtracking ............................................ 52 Figura 16 – Passo 4 da busca em profundidade com Backtracking ............................................ 52 Figura 17 – Passo 5 da busca em profundidade com Backtracking ............................................ 53 Figura 18 – Passo 6 da busca em profundidade com Backtracking ............................................ 53 Figura 19 – Passo 7 da busca em profundidade com Backtracking ............................................ 53 Figura 20 – Passo 8 da busca em profundidade com Backtracking ............................................ 53 Figura 21 – Sorteia-se uma possibilidade para a primeira linha. ................................................ 54
Description: