func generateCandidateTypeB(current_solution Candidate) (c Candidate, swapped_node int) {
	neighbor := Candidate{}

	neighbor.Solution = make([]int, len(current_solution.Solution))
	neighbor.Hubs = make([]int, len(current_solution.Hubs))
	copy(neighbor.Solution, current_solution.Solution)
	copy(neighbor.Hubs, current_solution.Hubs)

	random_node_1, _ := selectRandomNodeAndHub(neighbor)
	random_node_2, _ := selectRandomNodeAndHub(neighbor)

	hub_node_1 := neighbor.Solution[random_node_1]
	neighbor.Solution[random_node_1] = neighbor.Solution[random_node_2]
	neighbor.Solution[random_node_2] = hub_node_1

	return neighbor, random_node_1
}
// swap two non hub nodes
swap two non hub nodes
// swap two non hub nodes
func generateCandidateTypeB(current_solution Candidate) (c Candidate, swapped_node int) {
	neighbor := Candidate{}
	neighbor.Solution = make([]int, len(current_solution.Solution))
	neighbor.Hubs = make([]int, len(current_solution.Hubs))
	copy(neighbor.Solution, current_solution.Solution)
	copy(neighbor.Hubs, current_solution.Hubs)
	random_node_1, _ := selectRandomNodeAndHub(neighbor)
	random_node_2, _ := selectRandomNodeAndHub(neighbor)
	hub_node_1 := neighbor.Solution[random_node_1]
	neighbor.Solution[random_node_1] = neighbor.Solution[random_node_2]
	neighbor.Solution[random_node_2] = hub_node_1
	return neighbor, random_node_1
}
func generateCandidateTypeB ( current_solution Candidate ) ( c Candidate , swapped_node int ) { neighbor := Candidate { } neighbor . Solution = make ( [ ] int , len ( current_solution . Solution ) ) neighbor . Hubs = make ( [ ] int , len ( current_solution . Hubs ) ) copy ( neighbor . Solution , current_solution . Solution ) copy ( neighbor . Hubs , current_solution . Hubs ) random_node_1 , _ := selectRandomNodeAndHub ( neighbor ) random_node_2 , _ := selectRandomNodeAndHub ( neighbor ) hub_node_1 := neighbor . Solution [ random_node_1 ] neighbor . Solution [ random_node_1 ] = neighbor . Solution [ random_node_2 ] neighbor . Solution [ random_node_2 ] = hub_node_1 return neighbor , random_node_1 }
swap two non hub nodes
swap two non hub nodes