휴리스틱 기법

개요[편집 | 원본 편집]

선형계획법과 같은 최적해를 찾아내는 문제에서 인간의 직관이나 경험에 의해 최적해는 아니더라도 최적해에 비슷한 값을 찾아내는 기법을 의미한다. 대체로 한정된 시간이나 자원을 가진 상황에서 아주 정확하지는 않더라도 적당히 괜찮은 결과를 내는 것에 목적을 두는 것으로 인간의 직관이나 경험이라는 것이 일정한 알고리즘으로 설명되기는 어렵지만 생각 이상으로 빠른 시간 내에 쓸만한 결과를 도출해낼 수 있다는 것에 착안한 것이다.

알고리즘 방식은 완전한 합리성에 의거하여 정확한 분석과 계산에 의하여 최선의 답을 모색하는 합리적 연역적 연구방법인 반면, 휴리스틱 방식은 문제해법을 구하기 위한 명확한 절차가 없거나 있더라도 방대한 시간과 비용을 필요로하는 경우에 어떤 기준에 의거하여 차례차례 해법을 산출해 가는 경험적,귀납적 연구방법으로서 제한된 합리성에 의거하여 그럴 듯한 답에 이르게 하는 주먹구구식의 탐색규칙이다.

휴리스틱에 입각한 문제해결 과정은 인간의 계산능력 범위 내에서 채택가능한 해결책을 찾는 문제풀이 방법의 발견에 몰두함으로써 알고리즘 방식에 비하여 현실적이고 유연하며 효율적이다.

사용 사례[편집 | 원본 편집]

산업공학에서의 휴리스틱 기법[편집 | 원본 편집]

OR, 특히 복잡한 경로찾기 문제와 같은 경우에 많이 사용된다. 경로찾기 문제는 선형계획법을 사용하는 것이 일반적이지만 경로의 경우의 수가 너무 많아질 경우(노드와 링크가 복잡해질 경우) 변수의 수가 기하급수적으로 증가하여 어느 순간 컴퓨터의 연산 능력을 초과하여 버리는 경우가 발생한다. 이럴 경우 컴퓨터로 답을 구하는 것 보다 사람의 직관을 사용하는 것이 더 빠를 수 있다. 물론 컴퓨터를 갈아넣는 수준으로 계산능력을 증설하면 해결 가능하지만 필연적으로 경제성 문제가 따라붙기 때문에 어느 정도 선을 넘어서면 기계보다 사람을 갈아넣는 것이 더 싸게 먹히는 것. 대체로 대도시와 같이 복잡한 경로를 가진 곳에서의 여러 개의 목적지를 가지는 경로찾기 문제에서 이 기법이 많이 사용된다.

컴퓨터공학에서의 휴리스틱 기법[편집 | 원본 편집]

주로 인공지능검색엔진에 많이 사용된다.

주의사항[편집 | 원본 편집]

휴리스틱 기법을 사용할 경우에는 다음의 사항들을 우선 고려하여야 한다.

  • 컴퓨터로 최적해를 구할 수 있는 상황이라면 당연히 이걸 사용하는 것이 정확하다. 다만 지금 당장 컴퓨터가 없거나 시간의 제약이 촉박하여 급한대로 결정을 해야 한다면 일단 이 방법을 쓸 수밖에 없다.
  • 문제의 복잡성 : 휴리스틱을 사용하면 좋은 경우는 대체로 문제가 너무 복잡하여(혹은 경우의 수가 너무 많아) 컴퓨터로 프로그래밍을 하는 것 자체가 불가능하거나 아니면 직관적으로 딱 봐도 그거밖에 없는 아주 단순한 상황일 때가 적당하다. 적절히 통제된 조건이고 제약식과 선형식을 쉽게 도출해 낼 수 있다면 당연히 컴퓨터가 더 정확하다.
  • 휴리스틱이라고 하니까 뭔가 있어보이지만 이걸 다른 말로 표기하면 주먹구구가 된다. 경험이 많이 쌓여있거나 직관이 뛰어난 사람과 그렇지 않은 사람이 도출해 내는 결과는 완전히 다를 수 있다. 이걸 제대로 활용하려면 당연히 그만큼 경험치가 쌓여있어야 한다는 의미 쉽게 말해 초보자의 직관과 관련 분야 경력 10년 이상자의 휴리스틱은 완전히 다르다는 의미이다.
  • 시행착오의 문제 : 경우에 따라서는 시행착오를 허용하지 않는 상황이 발생할 수도 있다. 이 경우 휴리스틱 기법을 사용하는 것은 담당자에게 심각한 심리적 부담을 안겨줄 수 있다.

각주