올린글을 확인할 수 있도록 포스팅을
공개
로 설정해 주세요.
포인트는 운영자가 올린글을 검토후 지급됩니다. 검토요청이 누적된 상황에서는 포인트 지급에 상당한 지연이 발생할 수 있습니다.
AnAlgorithmOFMinimumCostHamilt
An Algorithm OF Minimum Cost Hamiltonian Circle
1. 전 제
Cost를 갖는 edge들에 대한 state space tree의 graph가 hamiltonian cycle이라면,
그 추가된 edge들에 대한 cost를 node로 하는 graph 또한 hamiltonian cycle이다. 1)1) Graph theory 참조.
2. 기본 전략
㈀ 주어진 Graph에 대해서 가장 낮은 cost를 갖는 edge2)2) edge는 hamiltonian circle를 만들 수는 가능성이 있을 때, edge를 추가한다.
를 추가시킨다.
㈁ Edge가 추가된 후 Graph가 hamiltonian cycle인지를 체크한다. 더 이상의 edge의 추가가 없으면 exit한다.
㈂ Hamiltonian cycle이면 edge들의 cost의 합을 저장한다. 이 저장된 값을 bounding 값으로 설정하고, 새로운 edge들의 cost가 이보다 큰지를 확인하면서(backtracking) 추가한다. 만약, 새로운 hemiltonian cycle가 생성된다면 새로운 hemiltonian cycle가 가지고 있는 cost의 합 을 새로운 bounding의 값을 재설정한다.
㈃ ㈁을 반복한다.
㈄ 모든 edge들이 visited되었을 때, 저장된 graph가 hamiltonian cycle이 되고, 종료한다.
3. Algorithm
Graph G;
struct EDGE added_edge[N];
int CostSum = 0; /* Graph에 추가된 edge들의 cost의 합 */
struct EDGE Hemil_Cycle; /* Hemiltonian cycle에 대한 타입설정 * /
....
[hwp/pdf]AnAlgorithmOFMinimumCostHamilt
포스팅 주소 입력
올린글을 확인할 수 있는 포스팅 주소를 입력해 주세요.
네이버,다음,티스토리,스팀잇,페이스북,레딧,기타 등 각각 4개(20,000p) 까지 등록 가능하며 총 80,000p(8,000원)까지 적립이 가능합니다.