• No results found

Solution method

3.4

Solution method

The model presented in the previous section can be solved by the MIP-solver in a commercial solver such as CPLEX. However, it takes CPLEX 90 minutes to solve a problem with 42 time periods, 3 ships, 6 ports, and 11 cargos. Most of the rescheduling problems in the industry will be much larger than this example. In addition, the time available for deciding on a suitable solution will be in the range 60 to 120 minutes. Hence, given the size of the real rescheduling problems and the time available for solving them, we develop a heuristic as the most viable approach to solving the problems.

The developed heuristic is a Large Neighborhood Search (LNS) heuristic. LNS is a general heuristic search paradigm that was originally proposed by Shaw (1998). It closely resembles the Ruin and Recreate heuristic presented by Schrimpf et al. (2000). The basic idea behind LNS is to improve the initial solution by repeatedly destroying and repairing parts of the solution. Rather than generating an initial solution, the original schedule is used as the initial solution. This approach is used due to the complexity of generating a feasible initial solution and because the original schedule was a good solution at the time of its creation. Though the original schedule is no longer operable due to the disruptions, good alternative solutions closely related to the original schedule are likely to exist, which makes the original schedule a good starting point for the search for good solutions.

In the context of rescheduling in liner shipping the disruptions make the current ships’ schedules inoperable and the purpose of the LNS is to create a new feasible schedule for the ships and new routings for the cargos. Our method contains two phases, construction and repair, which are repeated until a given computing time is reached. The aim of the construction phase is to construct a feasible schedule for all ships involved while taking into account the disruptions. In most cases this will lead to the destruction of cargo routings. The aim of the repair phase is to repair the cargo routings by changing the schedules which must retain feasibility. In order to diversify the search, randomness is included in both the construction and repair phase. For each

iteration of the construction phase there will be multiple iterations of the repair phase. For the purpose of the LNS, each disruption can only be concerned with one ship or one port. Since an actual disruption may affect several ships and ports, disruptions are split into one disruption for each ship or port affected. A nationwide strike in South Africa will for example lead to the closure of multiple ports which will be handled as one disruption for each affected port. In addition, there may be ships caught in the closed ports that are unable to depart which will be handled as a separate disruption for each ship. Due to this split of the actual disruptions, the LNS views each disruption as affecting either a ship or a port.

3.4.1

Construction phase

In the construction phase, the focus is on constructing a feasible schedule for the ships taking into account the disruptions. We start by randomly sorting the disruptions in order to obtain a different ordering each time the construction phase is performed. Then, starting with the original ship schedule, we try to construct a feasible schedule for each ship by advancing, delaying, and canceling port calls. When canceling a port call, the new schedule is achieved by connecting the previous port call with the subsequent port call. We consider one ship at the time and we check whether the schedule is feasible after taking the disruptions into account. During the construction phase we do not allow the amount of time set aside for a port call to be below two time periods. In addition, port calls not affected by the disruptions cannot be changed.

Each disruption either pertains to a ship or to a port. If a disruption pertains to a ship, there are four relevant scenarios for the placement of port calls vis-a-vis the disruption.

i) The ship is disrupted for the entire time that the port call should have taken place. We remove the port call from the schedule and create a leg connecting the previous port call with the subsequent port call.

3.4. SOLUTION METHOD 125 ii) The port call is before and during the disruption. We attempt to advance the port call by taking the following actions: moving waiting time, increasing the speed, decreasing the length of the port call. If these actions fail to advance the port call sufficiently for it to take place before the disruption, then the port call is canceled and we create a leg connecting the previous port call with the subsequent port call. iii) The disruption happens between two port calls. The speed is increased to make up for the time lost due to the disruption. Once the speed reaches the maximum speed and if the schedule is still infeasible, the length of the forward port call is diminished. If the schedule is still infeasible after the speed has been increased to the maximum and the length of the port call has been diminished to two time periods, then the port call is canceled and we create a leg connecting the previous port call with the subsequent port call.

iv) The port call is planned to take place during and after the disruption. We attempt to delay the arrival at the port to after the disruption is over. This is done by decreasing the speed before the port call and increasing the speed after the port call. In addition, the length of the port call can be diminished. If the schedule is still infeasible, the port call is canceled and a leg is created connecting the previous port call with the subsequent port call.

If a disruption pertains to a port, we consider the inbound and outbound legs connected to the disrupted port.

i) We begin by advancing the port call in an effort to finish it before the disruption commences. We start by decreasing the waiting time for the current port call. We proceed by increasing the speed of the ship on the inbound leg, the speed is increased until feasibility is obtained or until the speed reaches the upper limit for the ship’s speed.

ii) If advancing the port call does not ensure feasibility, we attempt to delay the port call so that it begins after the disruption is over. We decrease the speed on the

inbound leg until either feasibility is obtained or the speed reaches the lower limit for the ship’s speed. Feasibility is not obtained unless the speed on the outbound leg does not surpass the upper limit for ship’s speed while arriving at the subsequent port on time. If feasibility is not obtained, we maintain the low speed and further delay the arrival at the port by increasing the waiting time. This is done as long as the subsequent port can be reached on time using the maximum speed for the ship.

iii) If the schedule is still infeasible, we remove the port call and connect the previous port and the subsequent port.

Before proceeding to the next phase of the LNS a new solution is found by using the LP solver in CPLEX. We are using the LP solver rather than the MIP solver because the ship-related arcs are already established, and hence the LP solver is used solely for the cargo routings.

3.4.2

Repair phase

In the second phase, the repair phase, the focus is on making the solution feasible with respect to the cargos that cannot be accommodated after the construction phase. In order for the solution to remain feasible with respect to the ships, none of the existing port calls are moved or deleted. Instead the repair phase uses four procedures in an attempt to increase the length of the existing port calls and the possibility of adding new port calls between existing ones. The port calls are extended as this provides additional time for loading (discharging) cargo.

1) The procedure advances the start of the port call by diminishing the waiting time before the port call.

2) The procedure delays the departure of the port call by diminishing the waiting time before the next port call.

3.4. SOLUTION METHOD 127 3) The procedure delays the departure of the port call by increasing the outbound

speed.

4) The procedure advances the start of the port call by increasing the inbound speed. These four procedures are used in different order depending on the problem at hand. However, in all cases the procedures related to waiting times are used first as these are not associated with any cost, whereas increasing the speed adds to the cost of sailing. The existing port calls can be extended with as little as one time period. Likewise, new port calls can be created for cargo volumes requiring as little as one time period for the port call.

The repair phase starts by randomly sorting both cargos and ships in order to treat the cargos and the ships in a different order each time the repair phase is performed. The cargos not yet accommodated are either onboard a ship at the beginning of the planning period or they become available during the planning period. Since there is no origin port for the onboard cargo the two types of cargo are dealt with separately.

Onboard cargo For the onboard cargo, there are three ways of changing the sched- ules to accommodating more cargo.

1) If the ship on which the cargo is onboard calls the destination port of the cargo, an attempt is made to lengthen the port call.

2) The cargo is sought transshipped. This is done by discharging the cargo from the current ship in a port (the transshipment port) and then having another ship transport it from that transshipment port to the destination port. In order for a transshipment to take place, the current ship must depart the transshipment port before the second ship arrives. The three port calls are lengthened as needed and possible.

3) If part of the cargo is still not accommodated, then an attempt is made for the current ship to make an inducement call to the destination port.

Cargo that becomes available For the cargo that becomes available during the planning period there are four ways of changing the schedule to accommodate more cargo.

1) If a ship calls both the origin and the destination port of the cargo, then an attempt is made to lengthen the two port calls to accommodate more cargo.

2) An attempt is made to transship the cargo. For this purpose two ships are needed. The first ship must call the origin of the cargo after the cargo becomes available but before calling the transshipment port. The second ship must call the established transshipment port after the first ship has departed and before calling the destination port of the cargo. All four port calls are lengthened as needed.

3) For all ships that call the origin port of the cargo after the cargo becomes available, an attempt is made to insert a port call to the destination port after the port call at the origin port. The port call is extended to the degree needed.

4) For all ships that call the destination port of the cargo after the cargo becomes available, an attempt is made to insert a port call to the origin port of the cargo prior to the port call at the destination port. The inserted port call has to commence after the cargo becomes available.

Based on the schedule achieved through the previous steps a final attempt is made to accommodate the remaining cargo by extending the port calls to the origin and/or destination ports. This is done to take full advantage of the newly added port calls. The solution for the current iteration is found by employing the LP solver in CPLEX.

Related documents