P–GES contains p co-operating components. First, an initial solution σ is constructed, in which every request is served by a single truck. Attempts to reduce the number of routes (K) are then carried out until the computation time exceeds τM—a random route r is removed, and its requests are put into the ejection pool (EP). The penalty counters P for all requests are reset. Then, a request hin is taken from the EP to be put back into σ. If there are more feasible insertions of hin, a random one is drawn. Otherwise, an infeasible solution is squeezed—a random infeasible route r is affected by local moves (out-relocate and out-exchange) to decrease its penalty. σ0 with the minimum penalty replaces σ (if its penalty is smaller). If the squeeze fails, P[hin] is increased, and other requests are ejected. The solution with the minimum sum of the counters of ejected requests replaces σ, and is finally perturbed by out-relocates and out-exchanges. The processes co-operate every τcoop sec. Each co-operation is started by P1, which sends its best σ to the next process in the ring (P2) (Fig. 1). It compares the received solution with its best one, and sends the better one (with a lower K) to the next P, and so forth. Processes asynchronously wait for completion of started operations. We use a two-step data passing: first, only K is sent, along with the information whether σ will be sent next (i.e., if K has changed).
P–GES contains p co-operating components. First, an initial solution σ is constructed, in which every request is served by a single truck. Attempts to reduce the number of routes (K) are then carried out until the computation time exceeds τM—a random route r is removed, and its requests are put into the ejection pool (EP). The penalty counters P for all requests are reset. Then, a request hin is taken from the EP to be put back into σ. If there are more feasible insertions of hin, a random one is drawn. Otherwise, an infeasible solution is squeezed—a random infeasible route r is affected by local moves (out-relocate and out-exchange) to decrease its penalty. σ0 with the minimum penalty replaces σ (if its penalty is smaller). If the squeeze fails, P[hin] is increased, and other requests are ejected. The solution with the minimum sum of the counters of ejected requests replaces σ, and is finally perturbed by out-relocates and out-exchanges. The processes co-operate every τcoop sec. Each co-operation is started by P1, which sends its best σ to the next process in the ring (P2) (Fig. 1). It compares the received solution with its best one, and sends the better one (with a lower K) to the next P, and so forth. Processes asynchronously wait for completion of started operations. We use a two-step data passing: first, only K is sent, along with the information whether σ will be sent next (i.e., if K has changed).
การแปล กรุณารอสักครู่..
