• Nenhum resultado encontrado

Passeio do Cavalo

N/A
N/A
Protected

Academic year: 2021

Share "Passeio do Cavalo"

Copied!
3
0
0

Texto

(1)

Trabalho

Trabalho PráPráticotico

UFMG/ICEx/DCC

UFMG/ICEx/DCC DCC111 DCC111 – – MaMatemátemática tica DiscretDiscretaa

C

Ciiêênncciiaas s EExxaattaas s & & EEnnggeennhhaarriiaas s 11oo Semestre de 2014Semestre de 2014 Observações

Observações::

1. Comece a fazer este trabalho imediatamente. Você nunca terá tanto tempo para resolvê-lo quanto agora! 1. Comece a fazer este trabalho imediatamente. Você nunca terá tanto tempo para resolvê-lo quanto agora! 2. Este é um trabalho individual.

2. Este é um trabalho individual. 3.

3. Data de Entrega Data de Entrega: até 28 de abril de 2014,: até 28 de abril de 2014, às 23:59 horas às 23:59 horas, ou , ou antantes. es. Após essa data Após essa data havhaverá penalizaerá penalizaçãoção

por atraso:

por atraso: 22dd, onde, onde d d é o número de dias atrasados. é o número de dias atrasados.

4.

4. LinguLinguagem de programagem de programação do trabalhoação do trabalho: : lingulinguagem C padrão.agem C padrão.

5. O seu trabalho deve compilar e executar em alguma máquina do ambiente computacional do Departamento 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 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.

Linux ou Windows. Procure saber quais são esses ambientes. 6. Envie este trabalho para o endereço eletrônico

6. Envie este trabalho para o endereço eletrônico   esub.para.loureiro@gmail.com  esub.para.loureiro@gmail.com   tendo como assunto  tendo como assunto [MD

[MD 2012014/1 4/1 TP: TP: "se"seu u nomnome e comcomplepleto"to"]] e como anexo um arquivo zip, descrito abaixo, com o nome e como anexo um arquivo zip, descrito abaixo, com o nome TP_"SeuNomeCompleto".zip

TP_"SeuNomeCompleto".zip  onde o string  onde o string "SeuNomeCompleto" "SeuNomeCompleto" é o seu nome completo sem espaços em é o seu nome completo sem espaços em

branco e sem acentos. branco e sem acentos.

Exemplo para o aluno Zoroastro Felizardo e Sortudo: Exemplo para o aluno Zoroastro Felizardo e Sortudo:

••  Assunto:  Assunto:  [MD   [MD 2012014/1 4/1 TP: TP: ZorZoroasoastro tro FelFelizaizardo rdo e e SorSortudtudo]o] •• Arquivo zip: Arquivo zip:  TP_  TP_ ZoroastroFelizaZoroastroFelizardoESortudo.ziprdoESortudo.zip

O arquivo zip deve conter três arquivos: O arquivo zip deve conter três arquivos:

(a)

(a)  passeio.c  passeio.c: arquivo fonte a ser compilado e executado pelo monitor;: arquivo fonte a ser compilado e executado pelo monitor;

(b)

(b)  leiame.txt  leiame.txt: deve dizer qual é o ambiente computacional para executar o seu TP bem como todas as: deve dizer qual é o ambiente computacional para executar o seu TP bem como todas as

instruções necessárias; instruções necessárias; (c)

(c)  passeio.saida  passeio.saida: : arqarquivuivo o de de saísaída da com os com os resresultultadoados s solsoliciicitadtados os nesneste te tratrabalbalho, ho, conconforforme me desdescricritoto

abaixo. abaixo. V

Você receberá uma ocê receberá uma mensmensagem de agem de confirconfirmaçãmação o da da submsubmissãoissão. . É É sua responsabisua responsabilidadlidade e fazer sua submissãofazer sua submissão dentro do prazo.

dentro do prazo. 7.

7.  Não envie arquivo executável na sua mensagem eletrônica.  Não envie arquivo executável na sua mensagem eletrônica.

Backtracking 

Backtracking 

  e Contagem

  e Contagem

Uma área muito interessante de projeto de algoritmos é quando se quer achar soluções para problemas que não se Uma área muito interessante de projeto de algoritmos é quando se quer achar soluções para problemas que não se conhece uma

conhece uma regra fixa regra fixa de computação, ou seja, não se conhece um algoritmo que a partir de uma configuração de computação, ou seja, não se conhece um algoritmo que a partir de uma configuração

inici

inicial determial determine o ne o própróximo passo a ser ximo passo a ser dado que leve à dado que leve à soluçsolução final. ão final. Nesse casoNesse caso, , uma possíveuma possível l altealternatirnativva é a é aa técnica de tentativa e erro, ou seja, tenta-se uma alternativa e, caso não seja viável, deve-se “desfazer” os passos 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, 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 esse paradigma computacional e outros (por exemplo, divisão-e-conquista, programação dinâmica, técnica gulosa ee  branch-and-bound   branch-and-bound ) serão estudados.) serão estudados.

Algor

Algoritmoitmos s que usam a que usam a técntécnica de ica de tententatitativa e erro va e erro não seguem uma regra fixa não seguem uma regra fixa de computade computação. ção. Em geral, osEm geral, os passos em direção à solução final são tentados e registrados numa estrutura de dados. Caso esses passos tomados 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.

não levem à solução final do problema, eles podem ser retirados e apagados do registro.

MD

(2)

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

publi-cados 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 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 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 movimentosB e D podem ser executados e um

deles deve ser escolhido. Esse processo deve continuar até possivelmente se chegar a uma solução.

Objetivo: 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:

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:

(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 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} 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 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 movimentoG. Ao se chegar à 14a

casa visitada, não é possível prosseguir. Até esse momento, um limite superior para a quantidade de possibilidades, de acordo com a regra acima, é:

2 × 3 × 2 × 2 × 2 × 2 × 2 × 2 × 1 × 1 × 2 × 1 × 2 = 28

× 3 = 768.

Ao não ser possível continuar, teríamos que retornar até à 13a

casa, escolher o movimento G  e tentar

prosseguir. Se ainda assim não for possível prosseguir, teríamos que retornar até à 11a

casa, escolher o movimento E e tentar continuar. Veja que nesse exemplo só existe uma alternativa na 12a

casa, fazendo com seja necessário retornar até a primeira casa onde haja mais de uma possibilidade de movimento, que nesse momento é a 11a

casa.

Referências

Documentos relacionados

Na apropriação do PROEB em três anos consecutivos na Escola Estadual JF, foi possível notar que o trabalho ora realizado naquele local foi mais voltado à

Pensar a formação continuada como uma das possibilidades de desenvolvimento profissional e pessoal é refletir também sobre a diversidade encontrada diante

2.1. O passatempo destina-se a todos as pessoas singulares que, após a compra de uma lata da bebida energética Red Bull, coloquem em redbull.pt/buraka o código existente

(2010), podem servir como casos sentinela para infecções humanas numa área geográfica restrita. Devido ao fenómeno da globalização que ocorre actualmente, é crucial haver

“De outra parte, em se tratando de arguição de negativa de prestação jurisdicional, o prequestionamento tem de estar revelado nos embargos de declaração, ou seja, a parte

5) “Estado da arte” do desenvolvimento local sertaginense. “A Sertã continua a ser pequenina e com pouca população. O setor turístico tem vindo a melhorar e temos

potest, est quo maius cogitari potest. Sed certe hoc esse non potest. Existit ergo procul dubio aliquid quo maius cogitari non valet, et in intellectu et in re. Quod utique sic

- Métodos não hormonais de contracepção (como por exemplo a camisinha) deverão ser utilizados durante o primeiro mês após a primeira injeção e até quatro semanas após a