C++ Code for Sliding puzzle

temp·2022년 5월 8일
0

Algorithm

목록 보기
2/2
  1. Code 1: https://github.com/siddg97/Npuzzle
  • 맨하탄 거리
  • 세부실행과정 없음(Depth, Count, Time 등만)
  • no solution 고려
  1. Code 2: https://github.com/Subangkar/N-Puzzle-Problem-CPP-Implementation-using-A-Star-Search
  • Linear Conflict , Manhattan distance, Hamming Distance,
    • 단, Hamming은 정신 못차려 생략.
  • 세부실행과정 있음.
  • no solution 고려

실행(4x4 puzzle)

4×44\times 4도 쉽지 않음.

Code 1

puzzle1(1초, 53번)

  • 반복해도 마찬가지(1초 이내).
  • Code 2에 비해 수십배 빠르다.

puzzle2(8초, 52)

puzzle3(0.05초, 48번)

  • Code2에서 잘 작동하는 샘플

  • Code2에 비해 수십배 빠르다(답 동일).
  • 다만 아쉬운 건 역시 실행 과정이.. (따로 커스텀하면 되긴 함)

Code 2(과정 존재)

Same to Easy puzzle in code 1(53초, 53번)


  • 너무 느림(or 못구함)

puzzle2

  • 개못하네 ㅠ

puzzle 3(2-23초, 48번)

Code 2에서 답을 구할 수 있는 예제를 사용함.

세부 실행 과정

(계속)

  • 역시 Code 1에 비해 수십배 느리다(답은 동일).

중간 결론

  • Code1과 Code2의 차이점 분석
    • 보아하니 알고리즘 자체도 다를 것 같지만, 만약 알고리즘이 같은데도 불구하고 실행시간이 차이난다면, 실행 시간에 악영향을 끼치는 요소를 파악한 뒤 나중에 알고리즘 짤 때 주의할 필요가 있음.
  • Code1을 기반으로 알고리즘을 작성하고, 보완해나가되 Code2의 Print function들만 참고.
    • 성능은 구린데 출력 인터페이스가 이해를 돕는데 훌륭

0개의 댓글

관련 채용 정보