2012-07-06 4 views
8

소해정 해결사를 구현해야합니다. 규칙 기반 에이전트를 구현하기 시작했습니다. 특정 규칙을 구현했습니다. 현재 셀 (주변 셀에 대한 정보 포함)에 가장 적합한 일치 규칙을 선택하기위한 휴리스틱 기능이 있습니다. 따라서 선택된 각 셀에 대해 8 개의 주변 셀이 셀을 열거 나 표시하거나 아무 것도하지 않기로 결정할 수 있습니다. 내말은. 현재 에이전트는 입력 된 일부 셀을 발견하고 주변 셀을 처리 할 것인지 결정합니다 (현재 에이전트는 알지 못하며 처리 할 셀을 결정하는 방법).AI Minesweeper 프로젝트

제 질문은 치료할 세포를 결정하기 위해 어떤 알고리즘을 구현할 것입니까?

첫 번째 이동의 경우 에이전트가 모퉁이 셀을 표시한다고 가정합니다 (또는 첫 번째 이동에 대한 규칙에 따라). 그 후에 무엇을해야합니까?

나는 어떤 종류의 검색을 구현해야한다는 것을 알고 있습니다. 문제가 아닌 많은 검색 알고리즘 (BFS, DFS, A-STAR 및 기타)을 알고 있습니다. 어떻게 이러한 검색을 사용할 수 있는지 이해할 수 없습니다.

인공 지능 : 현대적인 방법으로 구현해야합니다.

답변

8

여기서는 BFS, DFS 및 A *가 아마도 적합하지 않습니다. 이러한 알고리즘은 세계에 대한 완전한 지식이있는 경우 행동 방침을 계획하려는 경우 유용합니다. 지뢰 찾기에서는 그러한 지식이 없습니다.

대신 SAT 나 10 장의 기술을 사용하여 책 III 절의 논리적 추론 기술을 사용하려고합니다. 이렇게하면 광산이 사실을 사용하는 위치에 대한 결론을 이끌어 낼 수 있습니다. 다음 8 개의 정사각형 중 하나는 광산이며 다음 8 개의 정사각형 중 2 개는 광산입니다. " 각 단계에서이 작업을 수행하면 광산이 어디에 있는지 파악하거나 계속하기 전에 추측해야한다는 것을 알 수 있습니다.

희망이 도움이됩니다.

+0

나는 규칙에서 이러한 기술 중 일부를 구현했습니다. 특정 메서드를 구현했습니다 : treatCell (i_CellToTreat), 가장 적합한 규칙과 일치하고 실행합니다. 나는 드러난 세포를 다루는 순서와 그 중 어떤 것을 치료하기로 선택했는지는 알지 못한다. 현재는 드러내 진 세포를 모아 반복적으로 반복하여 치료한다. 작은 보드에서 잘 작동하지만 좀 더 나은 알고리즘을 구현해야합니다. – Nikita