GithubHelp home page GithubHelp logo

bravonatalie / missionaries_and_cannibals_problem Goto Github PK

View Code? Open in Web Editor NEW
0.0 4.0 0.0 16 KB

Trabalho da disciplina de Inteligência Artificial na Universidade Federal de Juiz de Fora.

Python 100.00%

missionaries_and_cannibals_problem's Introduction

Problema dos Missionários e Canibais

Trabalho de I.A. UFJF 2019/3

Configurar e rodar

Execute os comandos abaixo:

## instalar python e PIP
apt-get install python3 python3-pip

# instalar graphviz para gerar os grafos
apt-get install libgraphviz-dev graphviz

# instalar dependencias python do projeto
pip3 install -r requirements.txt

# Executar o projeto
python3 main.py

O problema

O problema dos missionários e canibais é um problema famoso de IA, usuamente definico como se segue.

Três missionários e três canibais estão em um lado do rio, junto com um bote que tem capacidade de no máximo duas pessoas. O objetivo é atravessar para a outra margem do rio os seis integrantes do grupo atendendo as seguintes restrições:

  • o bote não pode ter mais de duas ou menos de uma pessoa ao trafegar;
  • Não pode ter em qualquer margem um número maior de canibais do que de missionários, senão os missionários serão atacados.

Tendo esse problema como base, o objetivo deste trabalho será resolver uma versão ampliada desse problema (ex.: 5 missionários e 5 canibais).

Modelagem do Problema

Para representar o estado atual do problema será utilizado um vetor [m, c, b], em que os elementos representam respectivamente o número de missionários, canibais e barcos no lado errado do rio. As ações tomadas serão representadas usando adição e subtração de vetor para manipular o vetor estado.

Consideramos como ações todas as possibilidades que um bote tem de fazer a travessia. Seja a menor instância que será considerada para o problema [3, 3, 1], as ações de travessia são:[1, 0, 1], [0, 1, 1], [2, 0, 1], [0, 2, 1] e [1, 1, 1].

  • Espaço de estados: 0 <= m, c, b <= N, onde N = |c| = |m|
  • Estado inicial:[m, c, b]
  • Estado Final: [0, 0, 0]
  • Custo do caminho: 1 por travessia
  • Função de sucessores:

missionaries_and_cannibals_problem's People

Contributors

bravonatalie avatar maxjf1 avatar souzajbr avatar

Watchers

 avatar  avatar  avatar  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.