Giter Club home page Giter Club logo

passeio-do-cavalo's Introduction

Passeio do Cavalo - heurística de Warnsdoff

Implementação de um algoritmo de backtracking para o problema do passeio do cavalo em C para um tabuleiro 8x8 (tamanho ajustável através do parâmetro N).

Há um setup inicial, onde é criado o tabuleiro, e uma tabela de consulta de quantas casas são visitáveis a partir de cada posição.

A função passo itera recursivamente cada movimento, cuja ordem de tentativa é ordenada a partir da tabela de casas visitáveis, implementando assim a heurística de Warnsdoff.

A cada passo tenta-se movimentar o cavalo para uma das casas disponíveis. Caso não haja casas não vizitadas, o passo anterior é retrocedido, e há uma tentativa diferente de movimento.

Há uma função de timeout que fora implementada antes dessa heurística, pois os casos demoravam mais que alguns minutos em média, no caso de tabuleiros NxN. Após a implementação da heurística o tempo médio de cada caso 8x8 caiu para alguns microsegundos.

Como especificado, ao final de cada chamada da função passeio, é escrita a matriz do tabuleiro resolvido, seguida de quantas casas foram avançadas e quantas foram retrocedidas.

O arquivo main.c testa todos os casos possíveis para a posição inicial do tabuleiro, e imprime na tela o tempo gasto para cada caso. Foi verificado que todos os casos foram satisfeitos, mas a implementação não passa em um dos testes do arquivo verificar.c, exibindo a saída:

passeio-do-cavalo's People

Contributors

samuel-brum avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.