나는 최근 Zoombinis의 논리 여행의 재 발표를 재생 하고 다양한 퍼즐을 해결할 수있는 컴퓨터 알고리즘을 구현하려고했습니다. 케이준 선장의 페리 보트 퍼즐에 접근하는 방법에 붙어 있습니다.
익숙하지 않은 사람들을 위해 Zoombini는 머리카락, 눈, 코 및 발의 4 가지 속성을 가진 생물입니다. 각 속성에는 5 가지 가능한 값이 있습니다. 예를 들어 Zoombini의 발은 바퀴, 롤러 스케이트, 운동화, 스프링 또는 프로펠러 일 수 있습니다. 지저분한 머리, 안경, 녹색 코 및 운동화가 포함 된 Zoombini의 예는 다음과 같습니다.
페리 보트 퍼즐에서 임무는 페리 보트의 16 석에 16 개의 Zoombinis 컬렉션을 배치하는 것입니다. 이 배치는 적어도 하나의 특징을 공유하는 Zoombinis가 두 개의 직교 인접 좌석을 점유해야한다는 규칙을 준수해야합니다. 두 개의 Zoombinis가 다른 머리카락, 다른 눈, 다른 코 및 다른 발을 가지면 서로 옆에 앉지 않을 수 있습니다.
좌석 배치는 레벨별로 변경됩니다. 구체적으로, 16 개의 시트가 4x4 그리드로 배열되는 "매우 단단한"레벨에 초점을 맞추겠습니다. 다음은 15 개의 Zoombinis가 합법적으로 장착되었지만 도크에 서있는 최종 Zoombini는 마지막 빈 좌석에 배치 할 수없는 예입니다. 왜냐하면 Zoombini와 오른쪽으로 기능을 공유하지 않기 때문입니다.
16이 있습니다! bin 좌석에 21 조 개의 Zoombinis 할당 가능. 따라서 가능한 모든 과제를 수행하는 것이 합법적이지 않은지 확인하십시오. 이 문제에 현명하게 접근하기 위해 사용할 수있는 휴리스틱은 무엇입니까?
Subgraph Isomorphism Problem
. 문제는 다른 그래프에서 하나의 그래프를 찾는 것입니다. 귀하의 경우 하위 그래프는 좌석 (가장자리는 인접)이며 부모 그래프는 확대 / 축소이며 연결은 공유 특성의 존재입니다. 일반적으로 문제는 NP- 완전이며 일반적으로 역 추적을 통해 이루어 지지만 일부 특수한 경우 (그래프가 매우 적합 할 수 있음) 다항식 또는 선형 솔루션도 가능합니다.