public LinkedList<Entry> localSearch() { // Deep copy of a list this.neighbors_list = new LinkedList<Entry>(); for (Entry e : this.solution_list) { this.neighbors_list.add(e); } int iteration = 0; while (iteration++ < this.max_iterations) { this.removeFromSolution(); if (this.selectFromCandidates() != null) { // this.removeSelectedFromCandidates(); this.removeSelectedFromNeighbors(); System.out.println("ENTER"); } } int cost = 0; for (Entry e : this.neighbors_list) { cost += e.getCost(); System.out.println(e.toString()); } System.out.println(cost); return (this.neighbors_list); }
public Entry selectFromSolution() { int pos = this.rand.nextInt(this.solution_list.size()); Entry e = this.solution_list.get(pos); this.total_cost -= e.getCost(); return e; }