00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #include "two_opt_next.h"
00013 #include "graph.h"
00014
00015 bool TwoOptNext :: operator () (TwoOpt & __move, const Route & __route)
00016 {
00017 if (__move.first == Graph :: size () - 4 && __move.second == __move.first + 2)
00018 {
00019 return false ;
00020 }
00021 else
00022 {
00023 __move.second ++ ;
00024 if (__move.second == Graph :: size () - 1)
00025 {
00026 __move.first ++ ;
00027 __move.second = __move.first + 2 ;
00028 }
00029
00030 return true ;
00031 }
00032 }