CSP
Problema de Satisfação de Restrições
Data de entrega: 21 de setembro
O objetivo deste exercício-programa é o de implementar e estudar o comportamento de algumas variações do algoritmo de satisfação de restrições (CSP) visto em sala de aula. O problema que será resolvido é o das 8-rainhas.
Problema: dispor 8 rainhas em um tabuleiro de chadrez de modo que nenhuma rainha ataque a outra.
Você deve formular o problema como CSP, da seguinte forma:
(b) Escolha qualquer linha não ameaçada da próxima coluna. Essa também é uma estratégia de busca em profundidade geral mas que gera somente sucessores que descrevam estados sem violação de restrições. Ocorre uma falha sempre que não for possível gerar sucessores de um nó sem violação e, neste caso, o algoritmo expande o próximo nó da lista.
(c) Escolha qualquer linha não ameaçada da próxima coluna mas faça BACKTRACKING (o algoritmo DFS falha e seleciona o próximo nó da lista de sucessores) se alguma coluna à direita não possuir mais nenhuma linha não ameaçada (ou seja, se restar alguma coluna com todas suas linhas ameaçadas). Essa é estratégia forward checking (sem uso de heurísticas) e que verifica se algum domínio das variáveis restantes se tornou vazio, para isso, essa estratégia deve fazer a "manutenção" dos domínios de cada variável.
(d) Escolha a COLUNA que estiver MAIS ameaçada e em seguida escolha a linha que gera menos ameaças às colunas restantes. Essa é a estratégia forward checking (estratégia c) melhorada com a aplicação das seguintes heurísticas de CSP:
h2. escolha do valor menos restritivo
Você deverá entregar um relatório comparando o desempenho das estratégias acima. Para isso, você deve contar o número de nós gerados durante a execução de todas as estratégias.
Dicas: