3-optimal을 이용하여, 규칙을 찾아서 교점 교환을 이용하게
되었습니다. 교환할 두 값이 바로 옆에 있을 경우와 떨어져있을 때 하나의 숫자가가장 앞이나 가장 뒤 혹은 두 가지 조건을 모두 가지는 경우에 따라 cost 계산 값을 달리하도록 하였습니다. 이렇게 얻어진 cost를 in_cost에서 out_cost를 빼어서큰 값을 찾아서 top배열에 순차적으로 가장 이득을 보는 cost 값과 num 배열에 그값이 나오게 하기위해 어떤 교점을 교환하였는지를 저장시키도록 하였습니다. 이렇게 두 개의 교점교환으로 인해 가장 좋은 해를 구했으면 top5안에 있는 값들을 이용해 타부의 검사를 거쳐 두 교점을 빼내어 스왑을 시키고 타부 배열에 저장시키게 하였습니다. 이렇게 3개까지 축적된 타부를 피한 최적의 교점을 교환하여 반복 시행함으로써 최적의 값을 구할 수 있었습니다. 저는 for 구문을 이용하여 2000회 반복하여 그중에 최적의 값을 찾았습니다.
File list:
Network50.txt
tabu.hwp