Passeio do Cavalo

March 23, 2019 | Author: Victor Diniz | Category: Algorithms, Heuristic, C (Programming Language), Computer Science, Areas Of Computer Science
Share Embed Donate


Short Description

Trabalho prático de Matemática Discreta...

Description

DCC111 – Matemá Matemática tica Discreta Discreta

UFMG/ICEx/DCC Trabalho Prático Prático

1 o Semestre de 2014

Ciências Exatas & Engenharias Observações:

1. Comece a fazer este trabalho imediatamente. Você nunca terá tanto tempo para resolvê-lo quanto agora! 2. Este é um trabalho individual. 3.  Data de Entrega: até 28 de abril de 2014,  às 23:59 horas , ou antes. antes. Após essa data haverá haverá penalização penalização d por atraso: 2 , onde  d  é o número de dias atrasados. 4. Linguagem Linguagem de programação programação do trabalho: trabalho: lingu linguagem agem C padrão. 5. O seu trabalho deve compilar e executar em alguma máquina do ambiente computacional do Departamento de Ciência da Computação da UFMG, onde o monitor irá avaliá-lo. Basicamente, um ambiente utilizando Linux ou Windows. Procure saber quais são esses ambientes. 6. Envie este trabalho para o endereço eletrônico   [email protected]   tendo como assunto [MD 2014/1 2014/1 TP: "seu "seu nome nome comple completo" to"] ]  e como anexo um arquivo zip, descrito abaixo, com o nome TP_"SeuNomeCompleto".zip   onde o string  "SeuNomeCompleto"  é o seu nome completo sem espaços em

branco e sem acentos. Exemplo para o aluno Zoroastro Felizardo e Sortudo: •   Assunto:   [MD 2014/1 2014/1 TP: Zoroas Zoroastro tro Feliza Felizardo rdo e Sortud Sortudo] o] •  Arquivo zip:   TP_ ZoroastroFelizardoESortudo.zip ZoroastroFelizardoESortudo.zip

O arquivo zip deve conter três arquivos: (a)   passeio.c: arquivo fonte a ser compilado e executado pelo monitor; (b)   leiame.txt: deve dizer qual é o ambiente computacional para executar o seu TP bem como todas as instruções necessárias; (c)   passeio.saida: arquiv arquivoo de saída saída com os result resultado adoss solici solicitad tados os neste neste trabal trabalho, ho, confor conforme me descri descrito to abaixo. Você receberá uma mensagem mensagem de confirmaçã confirmaçãoo da submissão submissão.. É sua responsabilidad responsabilidadee fazer sua submissão dentro do prazo. 7.   Não envie arquivo executável na sua mensagem eletrônica.

Backtracking   e Contagem Uma área muito interessante de projeto de algoritmos é quando se quer achar soluções para problemas que não se conhece uma  regra fixa  de computação, ou seja, não se conhece um algoritmo que a partir de uma configuração inicial inicial determine determine o próximo próximo passo a ser dado que leve à solução solução final. Nesse caso, caso, uma possível possível alternati alternativva é a técnica de tentativa e erro, ou seja, tenta-se uma alternativa e, caso não seja viável, deve-se “desfazer” os passos executados e tenta-se um outro caminho. A partir das disciplinas de Algoritmos e Estruturas de Dados II e III, esse paradigma computacional e outros (por exemplo, divisão-e-conquista, programação dinâmica, técnica gulosa e   branch-and-bound ) serão estudados. Algoritmo Algoritmoss que usam a técnica técnica de tentati tentativa va e erro não seguem uma regra fixa de computação. computação. Em geral, os passos em direção à solução final são tentados e registrados numa estrutura de dados. Caso esses passos tomados não levem à solução final do problema, eles podem ser retirados e apagados do registro.

MD



2014/1

Trabalho Prático

1

Na técnica de tentativa e erro, a abordagem mais comum é decompor o processo em um número finito de tarefas parciais. Geralmente as tarefas são expressas naturalmente em termos recursivos e devem ser exploradas de forma exaustiva (a partir daquele caminho, não existe nenhuma possibilidade que deixou de ser avaliada). A construção de uma solução é obtida através de tentativas (ou pesquisas) que podem ser representadas por uma árvore de sub-tarefas. Muitas vezes as tentativas crescem exponencialmente e, nesses casos, deve-se usar uma heurística para evitar a pesquisa exaustiva, no caso de estarmos interessados em uma solução, não necessariamente a melhor delas. Uma heurística não garante a solução ótima mas tende a ser rápida. O objetivo aqui é mostrar como essa técnica recursiva funciona e não heurísticas, que, em geral, são dependentes do tipo de problema que se está estudando. A técnica de tentativa e erro pode ser melhor explicada através de um exemplo: O Passeio do Cavalo (Knight’s  Tour ). Esse é um problema muito interessante que sido estudado teoricamente e existem vários resultados publicados na literatura. Seja um tabuleiro n  ×  n com n2 posições e um cavalo que move seguindo as regras do xadrez. O cavalo é colocado numa posição inicial  ( x0 , y0 ). O objetivo do problema é encontrar, se existir, um passeio do cavalo com n2 − 1  movimentos tal que todas as posições do tabuleiro são visitadas uma única vez. Neste problema, os oito movimentos possíveis de um cavalo (identificado pelas letras A, B, C, D, E, F, G  e H), considerando um tabuleiro 5 × 5 e o cavalo posicionado inicialmente no centro desse tabuleiro, estão representados a seguir:

Cada letra representa um movimento válido do cavalo. Assim, o movimento G, por exemplo, significa avançar uma coluna para a direita e descer duas linhas. Uma possível solução para um tabuleiro  5 × 5  seria: 23 16 11 6 21

10 5 22 17 12

15 24 1 20 7

4 9 18 13 2

25 14 3 8 19

Para o exemplo acima, o cavalo, ao começar na posição indicada por 1, pode fazer qualquer um dos oito movimentos acima. O movimento G  é executado e o número dois é colocado nessa posição. A partir da segunda casa visitada, os movimentos A, E, F, G  e H  levariam o cavalo à uma posição inexistente e o movimento C  levaria o cavalo à posição inicial, que já foi visitada. Assim, somente os movimentos B  e D  podem ser executados e um deles deve ser escolhido. Esse processo deve continuar até possivelmente se chegar a uma solução. Este trabalho tem como objetivo a implementação do Passeio do Cavalo e sua avaliação. Como dado de entrada deve ser fornecido o tamanho  n  do tabuleiro (4 ≤  n  ≤ 6 ). Como resultado, pede-se a “impressão” (saída) de: Objetivo:

1. A geração dos Passeios do Cavalo, cada um começando em uma das n2 casas do tabuleiro. As casas são numeradas sequencialmente começando na posição (1, 1)  (canto superior esquerdo do tabuleiro). Para um tabuleiro de tamanho 5, a numeração das casas é a seguinte:

MD



2014/1

Trabalho Prático

2

1 6 11 16 21

2 7 12 17 22

3 8 13 18 23

4 9 14 19 24

5 10 15 20 25

2. A profundidade com que se consegue alcançar na árvore de possibilidades até a primeira vez que se chega a uma posição que não é possível caminhar mais e deve ser feito um retrocesso. Também deseja-se saber o número de possibilidades até esse momento. Por exemplo, para um tabuleiro  4 × 4, começando na posição (1, 1)  e sempre tentando as posições na ordem de A  a H, temos o seguinte passeio: Legenda: Casa visitada no  n -ésimo passo  {Identificação dos movimentos válidos}, sendo que o primeiro movimento que aparece é o que foi escolhido. 1 {GH} 10 {H} 5 {AH} 14 {}

4 {FG} 13 {FG} 2 {ABH} 7 {AC}

9 {E} 6 {FG} 11 {BE}

12 {E} 3 {DF} 8 {CD}

Neste caso, a primeira casa visitada (que tem o número 1) está no canto superior esquerdo. A partir dessa casa, só é possível executar dois movimentos: G e H. Como o primeiro movimento é escolhido, a segunda casa visitada recebe o número 2 e foi alcançada executando o movimento G. Ao se chegar à 14 casa visitada, não é possível prosseguir. Até esse momento, um limite superior para a quantidade de possibilidades, de acordo com a regra acima, é: a

2 × 3 × 2 × 2 × 2 × 2 × 2 × 2 × 1 × 1 × 2 × 1 × 2 = 2 8 × 3 = 768.

Ao não ser possível continuar, teríamos que retornar até à 13 casa, escolher o movimento G   e tentar prosseguir. Se ainda assim não for possível prosseguir, teríamos que retornar até à 11 casa, escolher o movimento E  e tentar continuar. Veja que nesse exemplo só existe uma alternativa na 12 casa, fazendo com seja necessário retornar até a primeira casa onde haja mais de uma possibilidade de movimento, que nesse momento é a 11 casa. a

a

a

a

MD



2014/1

Trabalho Prático

3

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF