문제 해결 ( Problem Solving ) 대표적으로 루마니아 문제 비행기를 타기위해 Arad에서 공항이있는 Bucharest로 가는 가장 최적의 경로 구하기. 문제 해결을 위한 핵심 2가지 요소 State : Agent의 상태 예제에서는 경유지. Action : Agent가 어떤 상태에서 어떤 상태로 이동하기 위한 행동. 예제에선 경유지간 이동하는 행위. 좀더 세밀한 4가지 요소 Initial State : 초기 상태를 정의. Arad Possible actions : 가능한 Action들을 정의. Successor function, f(state) = {(action, successor state), ...} 를 정의. (action, successor) 쌍으로 만드는 이유 : 문제에 따라 서로 다른 action이 같은 state와 successor state를 가질수도 있다. S(Arad) = {(Arad->Zerind, Zerind), (Arad->Timisoara, Timisoara), (Arad->Sibiu, Sibiu)} Goal test : 목표(Goal State)를 정의하고 각 State별로 Goal State임을 검사하는 방법을 정의 Goal state : Bucharest, Goal test : state = Bucharest 채스처럼 Goal State가 많은 경우. 조건함수를 사용해 implicit하게 정의. Goal test : Checkmate(state) Path cost : 어떤 path를 통틀어 각 action이 발생시키는 cost(Step cost)를 더한 값. 각 action별로 0이상의 Step cost, Sc(state, action, successor state)>=0 를 정의 사실상 Sc (action.state, action, action.successor) 즉 ,Sc(action)과 같다. 이때 음수의 cost를 정의하면 루프를 돌면...
현업 개발자의 실전 기록 — Java·Spring·JavaScript·알고리즘·머신러닝 개념 정리와 윈도우 문제 해결, Cubase 음악 작업 팁