제가 소코반을 하면서 느낀건데 어떤 판을 하던 근본적으로
이 판에대한 해법이 반드시 존재한다는 믿음이 문제해결에
도움이 된다는겁니다. 이상하죠. 몇번 해보고 이건 거의 불가능하다고
포기하려고 하다가도 뭔가 해법이 있을거라는 생각을 자꾸하면서 판을
쳐다보면 길이 보이기 시작하죠.
또 한가지 heuristic은 마지막으로 박스가 들어가야하는 창고주변에서부터
단서를 찾아나가는게 도움이 된다는것입니다. 창고주변에서 움직일수 있는것들의
숫자는 한정이 되어있지만 그 주변부의 상태가 문제를 풀수 있는가
없는가에 중대한 영향을 미치죠. 마찬가지로 좁은 통로하나만이 어떤 지역적인
부위를 빠져나가는 유일한 길일때 거기를 하나의 sub-problem으로 생각해서
그 출구를 창고 입구로 생각해서 비슷한 heuristic을 사용할 수 있겠죠.
좀 난해한 경우는 이렇게 sub-problem으로 나눌 수 없는 경우인데, 여러개의
방이 chain으로 cyclic하게 연결되어있고 각각의 방 사이에 좁은 통로가 있을때
박스를 이방으로 옮겼다 저방으로 옮겼다해야 되는 경우가 있는데 이런것은
위와 같은 방법이 안통하겠죠.
소코반 해결에 어떤 방식을 사용하는지 모르겠지만 (P,S) 이렇게 문제 P와
인간이 푼 해법 S로 된 쌍을 많이 주고 learning하게 만들 수 있지 않을까요?
인간의 전법이 무엇인가를 배우는거죠. 단지 입력->해답의 mapping을 배우는게
아니라 말이죠.
---
D'oh!