Passeio do Cavalo

4
Trabalho Prático UFMG/ICEx/DCC  DCC111 Matemática Discret a Ciências Exa t as & Engenharias 1 o Semestre de 2014 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. Após essa data hav erá penaliza ção por atraso:  2 d , onde  d  é o número de dias atrasados. 4. Linguagem de programação do trabalho : lingu 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 201 4/1 TP: "seu nome comple 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 201 4/1 TP: Zoroastro Fel izardo e Sor tud o]  Arquivo zip:  TP_ 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: arquivo de saí da com os res ult ados sol ici tad os nes te tra bal ho, conforme des crito abaixo. V ocê receberá uma mensagem de conr mação da submissão . É sua responsabilidad e 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 xa de computação, ou seja, não se conhece um algoritmo que a partir de uma conguração inici al determi ne o pró ximo passo a ser dado que leve à soluç ão nal. Nesse caso, uma possíve l alternati v a é 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. Algor itmo s que usam a técnica de ten tativa e erro não seguem uma regra xa de computa ção. Em geral, os passos em direção à solução nal são tentados e registrados numa estrutura de dados. Caso esses passos tomados não levem à solução nal do problema, eles podem ser retirados e apagados do registro. MD   2014/1  Trabalho Prático  1

description

Trabalho prático de Matemática Discreta

Transcript of Passeio do Cavalo

  • 5/21/2018 Passeio do Cavalo

    1/3

    Trabalho Prtico

    UFMG/ICEx/DCC DCC111 Matemtica Discreta

    Cincias Exatas & Engenharias 1o

    Semestre de 2014

    Observaes:

    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. Aps essa data haver penalizaopor atraso: 2d, onde d o nmero de dias atrasados.

    4. Linguagem de programao do trabalho: linguagem C padro.

    5. O seu trabalho deve compilar e executar em alguma mquina do ambiente computacional do Departamentode Cincia da Computao da UFMG, onde o monitor ir avali-lo. Basicamente, um ambiente utilizandoLinux ou Windows. Procure saber quais so esses ambientes.

    6. Envie este trabalho para o endereo eletrnico [email protected] tendo como assunto

    [MD 2014/1 TP: "seu nome completo"] e como anexo um arquivo zip, descrito abaixo, com o nome

    TP_"SeuNomeCompleto".zip onde o string "SeuNomeCompleto" o seu nome completo sem espaos embranco e sem acentos.

    Exemplo para o aluno Zoroastro Felizardo e Sortudo:

    Assunto: [MD 2014/1 TP: Zoroastro Felizardo e Sortudo]

    Arquivo zip: TP_ ZoroastroFelizardoESortudo.zip

    O arquivo zip deve conter trs 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

    instrues necessrias;(c) passeio.saida: arquivo de sada com os resultados solicitados neste trabalho, conforme descrito

    abaixo.

    Voc receber uma mensagem de confirmao da submisso. sua responsabilidade fazer sua submissodentro do prazo.

    7. No envie arquivo executvel na sua mensagem eletrnica.

    Backtracking e Contagem

    Uma rea muito interessante de projeto de algoritmos quando se quer achar solues para problemas que no seconhece uma regra fixade computao, ou seja, no se conhece um algoritmo que a partir de uma configuraoinicial determine o prximo passo a ser dado que leve soluo final. Nesse caso, uma possvel alternativa atcnica de tentativa e erro, ou seja, tenta-se uma alternativa e, caso no seja vivel, deve-se desfazer os passosexecutados 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, diviso-e-conquista, programao dinmica, tcnica gulosae branch-and-bound) sero estudados.

    Algoritmos que usam a tcnica de tentativa e erro no seguem uma regra fixa de computao. Em geral, os

    passos em direo soluo final so tentados e registrados numa estrutura de dados. Caso esses passos tomadosno levem soluo final do problema, eles podem ser retirados e apagados do registro.

    MD 2014/1 Trabalho Prtico 1

  • 5/21/2018 Passeio do Cavalo

    2/3

    Na tcnica de tentativa e erro, a abordagem mais comum decompor o processo em um nmero finito de tarefasparciais. Geralmente as tarefas so expressas naturalmente em termos recursivos e devem ser exploradas de formaexaustiva (a partir daquele caminho, no existe nenhuma possibilidade que deixou de ser avaliada). A construode uma soluo obtida atravs de tentativas (ou pesquisas) que podem ser representadas por uma rvore desub-tarefas. Muitas vezes as tentativas crescem exponencialmente e, nesses casos, deve-se usar uma heursticapara evitar a pesquisa exaustiva, no caso de estarmos interessados em uma soluo, no necessariamente a melhordelas. Uma heurstica no garante a soluo tima mas tende a ser rpida. O objetivo aqui mostrar comoessa tcnica recursiva funciona e no heursticas, que, em geral, so dependentes do tipo de problema que se estestudando.

    A tcnica de tentativa e erro pode ser melhor explicada atravs de um exemplo: O Passeio do Cavalo (KnightsTour). Esse um problema muito interessante que sido estudado teoricamente e existem vrios resultados publi-cados na literatura.

    Seja um tabuleiro n n com n2 posies e um cavalo que move seguindo as regras do xadrez. O cavalo colocado numa posio inicial (x0, y0). O objetivo do problema encontrar, se existir, um passeio do cavalo comn2 1movimentos tal que todas as posies do tabuleiro so visitadas uma nica vez.

    Neste problema, os oito movimentos possveis de um cavalo (identificado pelas letras A, B, C, D, E, F, Ge H),considerando um tabuleiro55e o cavalo posicionado inicialmente no centro desse tabuleiro, esto representadosa seguir:

    Cada letra representa um movimento vlido do cavalo. Assim, o movimento G, por exemplo, significa avanar

    uma coluna para a direita e descer duas linhas.Uma possvel soluo para um tabuleiro 5 5seria:

    23 10 15 4 25

    16 5 24 9 14

    11 22 1 18 3

    6 17 20 13 8

    21 12 7 2 19

    Para o exemplo acima, o cavalo, ao comear na posio indicada por 1, pode fazer qualquer um dos oitomovimentos acima. O movimento G executado e o nmero dois colocado nessa posio. A partir da segunda

    casa visitada, os movimentosA

    ,E

    ,F

    ,G

    eH

    levariam o cavalo uma posio inexistente e o movimentoC

    levariao cavalo posio inicial, que j foi visitada. Assim, somente os movimentos Be Dpodem ser executados e umdeles deve ser escolhido. Esse processo deve continuar at possivelmente se chegar a uma soluo.

    Objetivo: Este trabalho tem como objetivo a implementao do Passeio do Cavalo e sua avaliao. Como dadode entrada deve ser fornecido o tamanho n do tabuleiro (4 n 6).

    Como resultado, pede-se a impresso (sada) de:

    1. A gerao dos Passeios do Cavalo, cada um comeando em uma das n2 casas do tabuleiro. As casas sonumeradas sequencialmente comeando na posio (1, 1) (canto superior esquerdo do tabuleiro). Para umtabuleiro de tamanho 5, a numerao das casas a seguinte:

    MD 2014/1 Trabalho Prtico 2

  • 5/21/2018 Passeio do Cavalo

    3/3

    1 2 3 4 5

    6 7 8 9 10

    11 12 13 14 15

    16 17 18 19 20

    21 22 23 24 25

    2. A profundidade com que se consegue alcanar na rvore de possibilidades at a primeira vez que se chegaa uma posio que no possvel caminhar mais e deve ser feito um retrocesso. Tambm deseja-se saber onmero de possibilidades at esse momento. Por exemplo, para um tabuleiro 4 4, comeando na posio(1, 1)e sempre tentando as posies na ordem de Aa H, temos o seguinte passeio:

    Legenda: Casa visitada no n-simo passo{Identificao dos movimentos vlidos}, sendo que o primeiromovimento que aparece o que foi escolhido.

    1 {GH} 4 {FG} 9 {E} 12 {E}

    10 {H} 13 {FG} 6 {FG} 3 {DF}

    5 {AH} 2 {ABH} 11 {BE} 8 {CD}

    14 {} 7 {AC}

    Neste caso, a primeira casa visitada (que tem o nmero 1) est no canto superior esquerdo. A partir dessacasa, s possvel executar dois movimentos: G e H. Como o primeiro movimento escolhido, a segundacasa visitada recebe o nmero 2 e foi alcanada executando o movimento G. Ao se chegar 14a casa visitada,no possvel prosseguir. At esse momento, um limite superior para a quantidade de possibilidades, deacordo com a regra acima, :

    2322222211212 = 28 3 = 768.

    Ao no ser possvel continuar, teramos que retornar at 13a casa, escolher o movimento G e tentarprosseguir. Se ainda assim no for possvel prosseguir, teramos que retornar at 11a casa, escolher o

    movimento E e tentar continuar. Veja que nesse exemplo s existe uma alternativa na 12a casa, fazendocom seja necessrio retornar at a primeira casa onde haja mais de uma possibilidade de movimento, quenesse momento a 11a casa.

    MD 2014/1 Trabalho Prtico 3