외규장각 도서 환수 모금 캠페인

AI 과제 - 8Puzzle 구현하기

Posted 2007. 10. 2. 21:02, Filed under: Study/Computer Science
이번 학기 첫번째 프로그래밍 과제- Search Tree를 탐색하는 방식으로 8-Puzzle을 푸는 것

8-puzzle 은 어릴 때 누구나 한번쯤 해보았을 8 개의 타일로 구성된 9칸짜리 판 위에 있는 1-8까지의 숫자를 순서대로 맞추는 퍼즐.

| 1 | 2 |   |                | 1 | 2 | 3 |   
| 3 | 4 | 5 |     →        | 4 | 5 | 6 |
| 6 | 7 | 8 |                | 7 | 8 |   |
 
시작 상태를 Root로 해서 변경 가능한 모든 상태를 탐색하면서 목표로하는 상태가 나올 때까지 트리를 탐색하는
것이 컴퓨터가 문제를 해결하는 과정인데, 이 과정에서 탐색 횟수를 줄이고 최소의 타일 이동으로 해답을 구할 수 있는 답안을 찾아야한다.

이를 위해 사용된 알고리즘은

1) BFS
2) IDS
3) A* Search

=====================

논리적으로 문제를 어떻게 해결해야하는지 알고 있는 경우에도 실제 구현에는 상당한 시간이 걸린다.
예상보다 훨씬 더..-_-

문서화도 만만치 않다.. 방학 때 과학기술 문서 작성 들으면서 뼈져리게 느꼈던건데..;;
그새 잊었나 ㅋ

이틀 반나절을 꼬박 코딩, 반나절 테스트, 반나절 문서화..
결국 제출기한을 한참 넘겨 오늘 오후에나 겨우 냈다.

다음부터는 좀 더 일찍 시작하고 여유있게, 침착하게 코딩하자.

프로그램을 짤 때 생산성을 높이는 방법은 단순한 것 같다.
설계니 개발방법론이니 알고리즘이니 하는건 코딩 이전의 문제.

코딩은 이미 있는 해결책을 프로그래밍 언어로 구현하는 것이니까
최대한 실수하지 않는 것이 빨리 프로그래밍하는 최고의 길인 것 같다.



Response : ,


Recent Posts

Recent Comments

Recent Trackbacks

Total hit (Today , Yesterday )

Admin Write Post