Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/euyogi/prototipo-lightsoutpddl
Exemplo de programa que utiliza planejadores PDDL para resolver um problema. lights-out💡💡
https://github.com/euyogi/prototipo-lightsoutpddl
ia ipc lights-out lights-out-game madagascar pddl planning
Last synced: about 2 months ago
JSON representation
Exemplo de programa que utiliza planejadores PDDL para resolver um problema. lights-out💡💡
- Host: GitHub
- URL: https://github.com/euyogi/prototipo-lightsoutpddl
- Owner: euyogi
- Created: 2023-10-05T23:09:03.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-02-14T17:49:57.000Z (11 months ago)
- Last Synced: 2024-02-15T06:25:56.895Z (11 months ago)
- Topics: ia, ipc, lights-out, lights-out-game, madagascar, pddl, planning
- Language: C++
- Homepage:
- Size: 56.6 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Prototipo-LightsOutPDDL
Este Ă© um programa em que ele lĂŞ da entrada padrĂŁo um mapa do puzzle lights-out no seguinte estilo:
```python
DLD
LdL
DLD
```Representando o seguinte mapa do jogo:
E o programa dirá as respectivas células que devem ser clicadas para resolver o puzzle com base no plano gerado
por um planejador PDDL, nesse caso o plano terá apenas um passo e será (1, 1).Mapa:
No mapa D representa uma célula desligada, d uma célula desligada com uma lâmpada quebrada, L uma célula ligada, l uma célula ligada com uma lâmpada quebrada.
No jogo, ao clicar em uma célula desligada ou ligada, esta e as adjascentes serão invertidas.
No caso de clicar em uma quebrada as adjascentes serão invertidas mas a clicada não.O puzzle esta resolvido quando todas as células estão desligadas.
Funcionamento:
Para funcionar é necessário um planejador PDDL, e nesse caso como extraio cada passo do plano gerado, só funcionará com o
planejador Madagascar. Porém, ajustes na leitura do plano podem ser feitos para se adaptar a outro planejador.Também é necessário especificar o caminho correspondente do planejador no código.
Para executar o programa também é necessário compilá-lo em um .exe com um compilador C++ após as mudanças acima terem sido realizadas.
Para executar o validador é necessário remover as linhas em que os arquivos problema e plano são removidos, pois ele faz a validação
do plano gerado a partir desses dois arquivos.Performance:
Está ajustado para resolver os planos de forma rápida, assim nĂŁo necessariamente teremos planos Ăłtimos (menor quantidade de passos possĂvel)
mas em compensação a geração dos planos não deve demorar muito com o crescimento da complexidade dos mapas.
Feito por: Yogi Nam de Souza Barbosa