ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [인공지능] Hill climbing search
    인공지능 2020. 12. 2. 23:50
    728x90

    Local Search

    Path 에는 관심이 없고 Goal 자체를 찾는게 목적일 때 사용

    h(n) : heuristic 함수

    Hill-Climbing Search

    Steepest descent(ascent) 알고리즘 : 가장 가파른 알고리즘

    현재 노드의 후임자(successor) 중에서 가장 좋은 값이 현재 자신보다 좋으면 이동하는 알고리즘

    더 이상 자신보다 좋은 successor 를 발견하지 못하는 순간 종료

    8-queen example

    queen 을 옮겼을 때 서로 공격할 수 있는 queen 의 수를 h(n) 으로 사용한 결과 정답을 찾지 못하는 문제를 발견

    State-space landscape

    클 수록 좋은 값을 찾는 문제에서 Hill-Climbing 알고리즘의 문제점을 보여주는 landscape

    현재 위치에서 Greedy 하게 움직이다보니 global maximum 을 찾지 못함

     

    Local maximum : 주변에서는 제일 좋지만 global maximum 보다는 나쁜곳

    Plateaux, shoulder : 평평한 local maximum

    Ridges

    Sideway moves

    8-queen 문제의 경우 86% 확률로 정답을 찾지 못함

    goal 을 찾으면 평균 4번, 찾지 못하는 경우(Local maximum) 3번만에 알고리즘이 끝남

     

    Plateaux 에서도 움직일 수 있는 Sideway moves 를 허용한 8-queen 은 6%확률로 정답을 찾지 못함

    goal 을 찾으면 21번, 찾지 못하는 경우에는 64번만에 알고리즘이 끝남

     

    단 sideway moves 를 할 때 plateaux 에서만 무한으로 왔다갔다 할 수 있으므로 이동 횟수를 제한해야함

    Stochastic hill climbing

    h(n) 이 좋을수록 해당 노드로 이동할 확률은 높지만 100%는 아님

     

    100% 보장까진 아니지만 운이 좋다면 local maximum 문제를 회피할 수 있음

    First choice hill climbing

    hill-climbing 과 비슷하지만 기존의 것은 모든 successor를 만들어 두고 가장 최적의 것을 골랐음

    하지만 successor 가 엄청나게 많은 경우 이는 부담이므로 successor 를 생성하다가 자기 자신보다 좋은 것을 발견하면 바로 이동함

    Random restart hill climbing

    init state 의 위치를 바꿔가면서 수행하는 알고리즘

     

    global goal 을 찾을 확률 p, 평균 실행횟수 n

    1번 성공했을 때 평균 실패 횟수 = 1/p - 1 = (1 - p) / p

     

    8-queen sideway move 허용 안한 경우

    성공 시 평균 4회, 실패 시 평균 3회 알고리즘 수행.   p = 0.14

    falure = (1 - 0.14) / 0.14 = 약 6

    평균 알고리즘 시도 횟수 : 1(success) * 4 + 6(failure) * 3 = 약 22회

     

    8-queen sideway move 허용 한 경우

    성공 시 21회, 실패 시 평균 64회 알고리즘 수행. p = 0.96

    falure = (1 - 0.96) / 0.96 = 1/24 = 약 0.04

    평균 알고리즘 시도 횟수 : 1(success) * 21 + 0.04(failure) * 64 = 약 25회

     

    따라서 sideway move 허용 안한 경우가 더 효율적임

    Hill climbing 정리

    • Local max 와 plateaux가 적으면 좋은 알고리즘

    • 대부분의 알고리즘은 local max, plateaux 가 많음

    • 따라서 적당히 좋은 local-maximum 을 찾는것으로 타협

    • incomplete : 반드시 goal 을 찾는다는 보장은 없음

     

    댓글

Designed by Tistory.