gesiss님이 가르쳐주신곳에 가서 원문을 번역하고 이해한것을 적어 봅니다.
http://www.cs.ualberta.ca/%7Eaixplore/search/IDA/

어째서 a*라고 말하는지는 모르겟구요 ,_,

a*알고리즘은 길을찾을때 g,h로 대표되는 한 길의 갈림길마다 소모된 길찾기 비용인 g와
그 g에서 남았다고 예상되는 목표지점까지의 예상 비용을 h로 잡고
각 길의 갈림길마다 g를 저장하고 갈수있는 모든길을 다 각각에게 주어진 g를 저장하면서
각길마다 소모 비용이 다르겟죠 목표지점 에 도착하는 방식인데요
이렇게 모든 길을 다 비교하고 나서
최소의 비용을 가지는 경로를 선택한다고 하네요 목표지점 도착시에는
g는 그 목표까지 든 총비용 h=0일때는 목표지점에 도착했다는것을 알수있는것이죠

보아하니 이런 내용이더라구요 ,_,: 결국 속도와는 전혀 무관함

A*( StartState, GoalState )

// Initial estimate of solution cost

g = 0

h = HeuristicEstimate( StartState, GoalState )

StartState.g = g

StartState.h = h

StartState.f = g + h


// Initialize the OpenList

Add StartState to OpenList


Done = false

while( not Done )

{

// Find the OpenList entry with the lowest f-score

ConsiderState = BestfScore( OpenList )

Remove ConsiderState from OpenList


// Consider each successor

for each successor S of ConsiderState

{

// g-value is the cost of getting from the

// StartState to ConsiderState plus the cost of

// going from ConsiderState to S

S.g = ConsiderState.g + Cost( ConsiderState, S )

S.h = Heuristic( S, GoalState )

S.f = g + h


// Check for a solution

if( S.h == 0 ) {

done = true

}

else {

Add S to OpenList

}

}

}

거기서 찾은 간단한 예제 소스입니다.