Optimized container management system

In optimized container management system, a booking request with customer locations, booking time, container type, movement mode, depot locations and depot locations stock information are received as input in a solver in a container management system received in a container management system. Based on the movement mode of booking request received by customer, solver algorithm is invoked to build a bipartite graph. A bipartite graph with nodes representing customer locations and depot locations are generated, based on the movement mode. Edges between the customer locations and the depot locations are generated based on a container balancing criteria of a solver algorithm. For remaining booking request, edges between the customer locations and the depot locations are generated based on a cost minimization criteria of the solver algorithm. The depot locations are assigned to the corresponding customer locations based on satisfying the container balancing criteria and the cost minimization criteria.

FIELD

Illustrated embodiments generally relate to data processing, and more particularly to container management system.

BACKGROUND

Container shipping companies manage a balance between supply and demand of containers in various locations. Various operations in container management system include managing transportation of empty containers, and assigning customers to a specific location for pick up and return of containers. Returned containers have an impact on pickup of containers. There may be situations where a feasible pickup location cannot be identified for a customer, or returned containers exceed the capacity of a certain depot location. As a result, the container shipping companies may not be able to fulfill customer request, or pay high transportation cost for the empty container repositioning. When customer locations are not tracked, optimizing pick-up, return and street turn of containers are challenging.

DETAILED DESCRIPTION

Embodiments of techniques for optimized container management system are described herein. In the following description, numerous specific details are set forth to provide a thorough understanding of the embodiments. A person of ordinary skill in the relevant art will recognize, however, that the embodiments can be practiced without one or more of the specific details, or with other methods, components, materials, etc. In some instances, well-known structures, materials, or operations are not shown or described in detail.

A depot is a location owned or managed by a container shipping company where containers are stored. The depot may be inside a harbor or in a city. The depot has a safety stock and a maximum stock threshold. The empty containers stocked in the depot have to be maintained higher than the safety stock, and lower than the maximum stock threshold. A vessel is used for transporting containers between depots. The containers may be transported between depots using two types of routing methods based on the type and combination of means of transport used. The first method referred to as inland moving, is a direct service or lane service using one of the means of transport such as trucks, trains or barges. The second method referred to as intermodal transportation uses a combination of services from trucks, trains, barges, etc.

Container management involves operation costs such as handling cost, transportation cost, fixed cost, and storage cost. Handling cost is the expense related to labor such as loading/unloading containers from one means of transport to another means of transport. Transportation cost is the expense involved in moving containers between various locations. When a customer uses a haulage contractor for movement of containers it is referred to as merchant haulage. When a container shipping company uses its own haulage contractor to provide movement of containers to the customers it is referred to as carrier haulage. Based on whether merchant haulage or carrier haulage is used transportation cost varies. If merchant haulage is used, the customer pays the transportation cost. If carrier haulage is used, the shipping company pays the transportation cost. Storage cost is the expense for storing empty containers in depots, which is generally calculated by the number of days a container stays in a depot location.

FIG. 1is a block diagram illustrating container's transport lifecycle in container management system100, according to one embodiment. A booking request may be received in a container management system from a shipper for pick-up of a container. Container yard A102is a depot location where containers are available for pick-up. Shipper104picks up container from the container yard A102. The shipper104uses the container to transport items from port A106in city A to port B108in city B. The container with items is loaded to a vessel110in port A106. Port A is also referred to as port of loading departure. The container arrives at port B108also referred to as port of discharge. From port B108the container with items is discharged or delivered to consignee112. The consignee112may return the container to port B108. From port B108the container is moved to depot container yard B114where the container is stored until another pick-up. The booking request is received as an input in the container management system, and the booking request is fulfilled when a depot location with containers is identified as output. In a typical container management system the volume of booking requests received is high in denominations of millions of booking requests per day.

FIG. 2is a block diagram illustrating process flow200in container management system, according to one embodiment. Transport management enterprise application202creates and manages booking orders or booking requests, freight bookings, transportation services, transportation costs, etc. Data associated with booking requests are received as input from the transport management enterprise application202to solver204, in container management system201. Solver204may include pick-up solver, return solver and street-turn solver. Solver may be an algorithm or software applications implementing program logic in a programming language. Depending on the booking request received appropriate solver algorithm may be invoked. Transport management enterprise application202provides input such as means of transport, transportation cost, etc., to solver204. Customer information, container stock configuration information, cost information and supply and demand plan information are received as input in the solver204, in the container management system201. Based on the received input, the pick-up, return and street-turn solver fulfills the booking requests by generating or suggesting optimal schedules and routes with depot locations and customer locations. Customer information and configure module206provides inputs such as route information, booking information, depot location stock information, safety stock and maximum stock configure information and cost information to the solver204. For example, a booking request that describes the fields related to booking information for a customer request is shown in booking request table I with various parameters below:

TABLE 1NameDescriptionBooking IDA unique number to tag the bookingCustomerThe location of customerlocationStart timeA time when a customer can start transportingthe empty containersBookingA time when an empty container need totimebe arrived at a depotContainerType of a container, e.g. Twenty-foot Equivalent Unittype(TEU) or Forty-foot Equivalent Unit (FEU)QuantityNumber of containersModePick-up, return or street turn
The unique number to identify the booking is specified in booking ID parameter. Location of the customer is specified in customer location parameter. Start time parameter indicates a time when a customer can start transporting the empty containers. Booking time is a time when the empty container is required to arrive at a depot location. Container type parameter indicates the type of container for example, twenty-foot equivalent unit (TEU), forty-foot equivalent unit (FEU). Quantity parameter indicates the number of containers required to meet customer request. Mode parameter or movement mode indicates the mode of service required by the customer in the booking request such as container pick-up, container return, or street turn of containers.

Cost associated with a depot location is available in a depot cost table. For example, Table 2 shows various cost related parameters associated with a depot location.

TABLE 2NameDescriptionLocationLocation nameContainerType of a container, e.g. Twenty-foot EquivalenttypeUnit (TEU) or Forty-foot Equivalent Unit (FEU)Storage costThe cost to store a unit of container in a depotper unitHandling costThe cost to load/unload a container,per unitrelated to depot location
Location name of the depot is specified in the location parameter. Container type parameter indicates the type of container, for example, twenty-foot equivalent unit (TEU), forty-foot equivalent unit (FEU). Cost to store a unit of container in a depot is specified in storage cost per unit parameter. Cost to load and unload a container in a depot location is specified in handling cost per unit parameter.

Route information associated with a booking request is available in route information table with various parameters as shown below in Table 3:

TABLE 3NameDescriptionFrom locationStart location of a tripTo locationDestination of a tripMode ofMeans of transportationtransportationDurationThe period of time between Fromlocation and To locationCostThe total cost when a container istransported on the route
Start location of a trip is specified in ‘from location’ parameter, and destination of the trip is specified in ‘to location’ parameter. Means of transport is specified in the mode of transportation parameter. The period of time for transportation between ‘from location’ and ‘to location’ is specified in duration parameter. Total cost involved when the container is transported in the route is specified in cost parameter.

Input provided by supply and demand plan module208is specified in the supply demand plan table with various parameters as shown below:

TABLE 4NameDescriptionTimeThe time of supply and demand dataLocationLocation nameContainerType of a container, e.g. Twenty-foot EquivalenttypeUnit (TEU) or Forty-foot Equivalent Unit (FEU)SupplyNumber of available containersDemandNumber of required containers
Time of supply and demand data is the time interval between supply and demand of containers taking place in certain location, and is specified in parameter time. Location name of the supply and demand plan is specified in the location. Number of available containers is specified in parameter supply, and the number of required containers is specified in the demand parameter.

Stock information of the containers are available in the stock configurations table as shown below in Table 5:

TABLE 5NameDescriptionLocationLocation nameContainerType of a container, e.g. Twenty-foot EquivalenttypeUnit (TEU) or Forty-foot Equivalent Unit (FEU)SafetyThe quantity of number of containers needs to bestockmaintained in a depot to avoid the risk of stock outdue to the uncertainty of supply of demandMaximumMaximum capacity of a depotstock
Safety stock indicates the minimum number of containers required to be maintained in a depot location to avoid the risk of stock out due to the uncertainty of supply and demand. Maximum capacity of the depot location is specified in maximum stock parameter. SQL preprocessor and constraint generator module210, included in the container management system201gathers the input information from the supply and demand plan module208, and generates a mathematical model based on this information. Solver204, receives the mathematical model generated by the SQL preprocessor and constraint generator module210, and generates optimal schedules and routes212corresponding to the booking request. For pick-up of containers, optimal schedule may be identified if a depot location with quantity of containers greater than the safety stock of containers is identified. Similarly, for return of containers, optimal schedule may be identified if a depot location with quantity of containers less than the safety stock of containers is identified. Optimal schedule may also be identified if operation cost such as transportation cost, storage cost, handling cost, etc., of a depot location is minimum. Optimal schedule may also be identified based on the shortest distance between the depot locations. Booking requests that are fulfilled are specified in fulfilled bookings214. The SQL preprocessor and constraint generator module210and the solver204are executing in an in-memory database216.

The fulfilled bookings are specified in a route result table with various parameters as shown below in Table 6.

TABLE 6NameDescriptionRoute IDID is used in the solverBooking IDA unique number to tag the bookingFrom locationStart location of a tripTo locationDestination of a tripFrom timeStart time of a tripTo timeEnd time of a tripContainerType of a container, e.g. Twenty-foot EquivalentTypeUnit (TEU) or Forty-foot Equivalent Unit (FEU)QuantityThe number of containers transported on the routeStorage costStorage cost on the routeHandling costHandling cost on the routeTransportationTranspiration cost on the routecostTotal costTotal cost of three costs abovemodePick-up, return or street turn
Route ID is used to identify a route for fulfilling the booking request, and booking ID is a unique number used to tag a booking. Start location of a trip is specified in ‘from location’, and destination of the trip is specified in ‘to location’. Start time of the trip is specified in ‘from time’ and the end time of the trip is specified in ‘to time’. Number of containers transported in the route is specified in quantity parameter. Sum of storage cost, handling cost and transportation cost associated with the route is specified in the total cost. Mode indicates the mode of booking request such as container pick-up, container return or street-turn of containers.

FIG. 3AandFIG. 3Bin combination illustrates an exemplary use case300A of assigning customer location to depot location by solver in the customer management system during container pick up, according to one embodiment. Customer locations C1302and C2304, and depot locations D1306, D2308, D3310and D4312are considered. Booking requests are received from customers in customer location C1 and customer location C2 for pick-up of containers. Pick-up solver algorithm is executed to identify pick-up depot locations corresponding to customer locations C1302and C2304. Pick-up solver algorithm has two stages or criteria, a first balancing stage or balancing criteria, and a second cost minimization stage or cost minimization criteria. The first balancing criterion of the pick-up solver algorithm is executed to fulfill the booking requests. If some booking requests referred to as remaining booking requests are not fulfilled with the first balancing criteria, are executed with the second cost minimization criteria of the pick-up solver algorithm. If some of the remaining booking requests are unfulfilled after the execution of the second cost minimization criteria, they are referred to as unfulfilled booking request. Such unfulfilled booking requests are reported as an alert or error in a graphical user interface of the container management system. For identifying the pick-up depot location, a bipartite graph is constructed between customer locations and depot locations. Based on the first balancing criteria, an edge is added to the bipartite graph between a customer location and a depot location when quantity of surplus containers is greater than the quantity of safety stock of containers. In this exemplary use case, quantity of surplus containers in depot location D1306is ‘10’, and the quantity of safety stock of containers is ‘5’. Since the quantity of surplus containers ‘10’ in depot location D1306is greater than the quantity of safety stock of containers ‘5’, an edge is added to the bipartite graph between customer location C1302and depot location D1306. Similarly, since the quantity of surplus containers ‘10’ in depot location D2308is greater than the quantity of safety stock of containers ‘5’, an edge is added to the bipartite graph between customer location C1302and depot location D2308. Based on the second cost minimization criteria, an edge is added to the bipartite graph between the customer locations and the depot locations, based on the remaining booking request where the quantity of surplus containers is greater than ‘0’ according to optimal schedule and route. Accordingly, edges are generated between customer location C1302and depot location D3310, between customer location C2304and depot location D3310, and between customer location C2304and depot location D4312.

Based on the bipartite graph, table300B is generated as shown inFIG. 3B. The edge between the customer location C1302and the depot location D1306, is represented with a notation C1→D1 as shown in314. For the representation C1→D1314, the quantity of surplus containers in depot location ‘D1’ ‘10’ is greater than the quantity of safety stock of containers ‘5’, accordingly a result of balancing criteria ‘yes’316is determined for the balancing criteria when surplus>safety stock. Cost of the transportation between the customer location C1302and the depot location D1306is ‘10’318. For the representation of edge with notation C1→D2 as shown in320, result of balancing criteria ‘yes’322is indicated for the balancing criteria surplus>safety stock, and the transportation cost is ‘20’324. For the representation of edge between C1→D3326, result of balancing criteria ‘no’328is determined for surplus>safety stock, since the quantity of surplus containers in depot location ‘D3’ ‘5’ is not greater than the quantity of safety stock of containers ‘5’. Cost of the transportation between the customer location C1302and the depot location D3310is ‘10’330. For the representation of edge with notation C2→D3 as shown in332, result of balancing criteria ‘no’334is indicated for surplus>safety stock, since the quantity of surplus containers in depot location ‘D3’‘5’ is not greater than the quantity of safety stock of containers ‘5’. Cost of transportation between C2 and D3 is ‘10’336. For the representation of edge with notation C2→D4 as shown in338, result of balancing criteria ‘no’340is indicated for surplus>safety stock, since the quantity of surplus containers in depot location ‘D3’ ‘5’ is not greater than the quantity of safety stock of containers ‘5’. Cost of transportation between C2 and D4 is ‘15’342. For customer location C1302depot location D1306is assigned because balancing constraint surplus is greater than safety stock, and the cost is minimum in comparison to depot location D2308as well. For customer location C2304depot location D3310is assigned because although balancing constraint is not fulfilled, the cost is minimum in comparison to depot location D4312. Therefore, identifying optimal pick-up depot locations fulfills the booking requests from customers in customer location C1 and customer location C2 for pick-up of containers.

FIG. 4is a flow chart illustrating execution of pick-up solver algorithm to assign customer location to depot location, according to one embodiment. At402, depot locations and customer locations corresponding to a booking request are received as input. At404, pick-up solver algorithm is invoked to build a bipartite graph with nodes representing the customer locations and the depot locations. At406, the balancing stage of the pick-up solver algorithm is invoked/execute to generate edges between the customer locations and the depot locations when a container balancing criteria is satisfied. The container balancing criteria may be satisfied when the quantity of surplus containers is greater than safety stock of containers. At408, the depot locations are assigned to the corresponding customer locations based on satisfying the container balancing criteria. At410, it is determined whether there are remaining booking requests to be fulfilled. At412, upon determining that there are remaining booking requests to be fulfilled, in cost minimization stage, for the remaining booking requests, edges between the remaining customer locations and the depot locations are generated when a cost minimization criteria is satisfied. At414, the depot locations are assigned to the customer locations based on satisfying the cost minimization criteria. At416, it is determined whether there are unfulfilled booking requests. Upon determining that there are unfulfilled booking requests, at418, an alert with unfulfilled booking request is displayed.

FIG. 5AandFIG. 5Bin combination illustrates an exemplary use case500A of assigning customer locations to depot locations by solver in the container management system during container return, according to one embodiment. Customer locations C1502and C2504, and depot locations D1506, D2508, D3510and D4512are considered. Booking requests are received from customers in customer location C1 and customer location C2 for return of containers. Return solver algorithm is executed to identify return depot locations corresponding to customer locations C1502and C2504to return containers. A bipartite graph is generated between the customer locations and the depot locations. Return solver algorithm has two stages or criteria, a first balancing stage or balancing criteria, and a second cost minimization stage or cost minimization criteria. The first balancing criterion of the pick-up solver algorithm is executed to fulfill the booking requests. If some booking requests referred to as remaining booking requests are not fulfilled with the first balancing criteria, are executed with the second cost minimization criteria of the pick-up solver algorithm. If some of the remaining booking requests are unfulfilled after the execution of the second cost minimization criteria, they are referred to as unfulfilled booking request. Such unfulfilled booking requests are reported as an alert or error in a graphical user interface of the container management system. Based on the first balancing criteria, an edge is added to the bipartite graph between the customer location and the depot location when there is a shortage of containers or the number of surplus containers drops below safety stock. For example, in the example user case the quantity of surplus containers in depot location D2508is ‘2’, which is less than the quantity of safety stock of containers ‘5’. Therefore, an edge is added to the bipartite graph between customer location C1502and depot location D2508. Based on the second cost minimization criteria, an edge is added to the bipartite graph between the customer locations and the depot locations, based on the remaining booking order where the quantity of surplus containers in the depot location is less than the maximum stock of containers, and there is remaining space in the depot location. Quantity of surplus containers in the depot location D1506is ‘20’, and the quantity of safety stock of containers is ‘5’. The quantity of surplus containers ‘20’ in the depot location D1506is not less than the quantity of safety stock of containers ‘5’, but less than the maximum stock of containers i.e., ‘100’, and there is remaining space in the depot location D1506. Therefore, an edge is added to the bipartite graph between the customer location C1502and the depot location D1506. Similarly, edges are generated between the customer location C2504and the depot location D3510, and between customer location C2504and depot location D4512.

Based on the bipartite graph, table500B is constructed as shown inFIG. 5B. The edge between C1502and the depot location D1506, is represented as C1→D1514. For the representation C1→D1514, the quantity of surplus containers ‘20’516in depot location ‘D1’ is not less than the quantity of safety stock of containers ‘5’, but less than maximum stock of containers ‘100’, accordingly a result of balancing criteria ‘no’518is marked for the balancing criteria surplus<safety stock. Cost of the transportation between the customer location C1502and the depot location D1506is ‘10’520. For the representation of edge C1→D2522, the quantity of surplus containers ‘2’524in depot location D2508is less than the quantity of safety stock of containers ‘5’, accordingly result of balancing criteria ‘yes’526is indicated for surplus<safety stock. Cost of transportation between C1 and D2 is ‘20’528. For the edge between C1→D3530, result of balancing criteria ‘no’532is indicated for the balancing criteria surplus<safety stock, since the quantity of surplus containers ‘35’534in depot location D3510is not less than the quantity of safety stock of containers ‘5’, but less than maximum stock of containers ‘100’. For the edge C2→D3536, result of balancing criteria ‘no’538is indicated for the balancing criteria surplus<safety stock, since the quantity of surplus containers ‘35’540in depot location D3510is less than the quantity of safety stock of containers ‘5’. Cost of transportation between C2 and D3 is ‘10’542. For the edge C2→D4544, result of balancing criteria ‘no’546is indicated for the balancing criteria surplus<safety stock, since the quantity of surplus containers ‘40’548in depot location D4512is not less than the quantity of safety stock of containers ‘5’. Cost of transportation between C2 and D4 is ‘15’550. For customer location C1502, depot location D2508is assigned because considering the balancing constraint, surplus is less than safety stock, i.e., there is a shortage of containers in depot D2508. Accordingly, a selection is placed corresponding to edge representation C1→D2 as shown in522. For customer location C2504, depot location D3510is assigned because, although the balancing constraint is not fulfilled, the cost is minimum in depot location D3510in comparison to depot location D4512. Accordingly, a selection is placed corresponding to edge representation C2→D3 as shown in536. Therefore, identifying optimal return depot locations fulfills the booking requests from customers in customer location C1 and customer location C2 for return of containers.

FIG. 6is a flow chart illustrating execution of return solver algorithm to assign customer location to depot location, according to one embodiment. At602, depot locations and customer locations corresponding to a booking request are received as input. At604, return solver algorithm is invoked to build a bipartite graph with nodes representing the customer locations and the depot locations. At606, balancing stage of the return solver algorithm is executed to generate edges between the customer locations and the depot locations when a container balancing criteria is satisfied. In the container balancing criteria, quantity of surplus containers is lesser than safety stock of containers. At608, the depot locations corresponding to the customer locations are assigned based on the balancing criteria, therefore fulfilling a booking request. At610, it is determined whether there are remaining booking requests to be fulfilled. Upon determining that there are remaining booking requests to be fulfilled, at612, in cost minimization stage, edges between the customer locations and the depot locations are generated when a cost minimization criteria is satisfied. At614, the depot locations are assigned to the customer locations based on satisfying the cost minimization criteria. At616, it is determined whether there are unfulfilled booking requests. Upon determining that there are unfulfilled booking requests, at618, an alert with unfulfilled booking request is displayed.

FIG. 7illustrates an exemplary use case700of pairing customer locations for pick-up and return of containers by solver in the container management system during street turn of containers, according to one embodiment. In scenario710, terminal702is a container terminal where containers are transshipped between different transport vehicles during transportation. Loaded container is transported from terminal702to customer A at customer location704, indicated by an arrow marked ‘full’. When the container is unloaded at customer location704, customer A returns empty container to the terminal702. Similarly, loaded container is transported from terminal702to customer B at customer location706, and an arrow marked ‘full’ indicates this. When the container is unloaded at customer location706, customer A returns empty container to the terminal702. In scenario710, customer A and customer B pick up and return the containers individually at the terminal702. In scenario720, customer A intends to return the container and customer B intends to pick-up the container. With the street turn solver algorithm, customer A is paired with customer B i.e., return and pick-up are paired. Accordingly, the empty container returned by customer A may be picked-up by customer B instead of customer A returning the container to terminal702. Customer A retains the empty container at customer location704until customer B picks it up.

FIG. 8is an exemplary use case800, illustrating execution of street-turn solver algorithm to identify customer location pairs, according to one embodiment. Customer locations C1802, C2804, C3806, C4808, C5810, C6812, C7816and C8818are considered. Street-turn solver algorithm is executed to pair customer locations such that a container pick-up customer location is paired with container return customer location. In the customer locations being paired, one customer location is a pick-up location and the other customer location is a return location. Based on movement mode of customer, a flag is specified. Some customers may choose to move and return containers, while some customers may remain or stay in their location for other customers to pick-up containers from them. This determines the movement mode of customers. For example, if the movement mode of the customer indicates that the customer location is return location, a flag ‘yes’ is specified, and if the movement mode of customer indicates that the customer location is pick-up location, a flag ‘no’ is specified. An edge is generated between customer locations C1802and C6812, since (a) container pick-up time of C6812is within a one-hour tolerable limit of container return C1802, and (b) container type of container locations C1802and C6812are identical or similar. Similarly, edges are generated between customer locations C1802and C7816, C2804and C5810, C3806and C8818, C4808and C6812. These edges satisfy both the criteria that container pick-up time and container return time are within one-hour tolerable time limit, and the container type is similar or identical the customer locations. The paired customer locations are filtered to identify the customer location pairs with a shortest possible route and minimum transportation cost. For example, the paired customer locations C1802and C6812, C1802and C7816, C2804and C5810, C3806and C8818, C4808and C6812, are filtered to identify the customer location pairs with the shortest possible route and minimum transportation cost. The routes and transportation cost of the customer location pairs are compared with other customer location pairs to identify the customer location pairs with shortest possible route and minimum transportation cost. The customer location pairs C2804and C5810, and C1802and C7816are filtered and identified as the customer location pairs with shortest possible route and minimum transportation cost.

FIG. 9is a flow chart900, illustrating execution of street turn solver algorithm to pair customer locations, according to one embodiment. At902, booking request, movement mode, container type, etc., are received as input from customers. At904, based on the movement mode, customer locations for container pick-up and customer locations for container return are identified. The identified customer locations are flagged correspondingly. For example, customer locations for container return may be flagged ‘yes’, and customer locations for container return may be flagged ‘no’. At906, customer locations are paired based on the flags. For example, pairing may be performed between customers with a corresponding ‘yes’ and ‘no’ flag. At908, the paired customer locations with identical container type requirements are filtered. At910, the paired customers are filtered based on a booking time interval. The booking time interval is the interval between the time customer returns the container and the booking time of next customer to pick-up the container. At912, the filtered paired customers are joined with shortest route and minimum transportation cost to determine the selected paired customers for street turn.

FIG. 10is a flow chart illustrating optimized container management system, according to one embodiment. At1002, booking requests with customer locations, booking time, container type, movement mode, depot locations and depot locations stock information are received as input in a solver in a container management system. At1004, a bipartite graph with nodes representing customer locations and depot locations are generated. At1006, a pick-up solver algorithm is executed in the solver in the container management system when the movement mode is container pick-up. At1008, edges between the customer locations and the depot locations are generated based on a container balancing criteria where quantity of surplus containers is greater than quantity of safety stock of containers in the depot location. At1010, a return solver algorithm is executed in the solver in the container management system when the movement mode is container return. At1012, edges between the customer locations and the depot locations are generate based on a container balancing criteria where quantity of surplus containers is lesser than quantity of safety stock of containers in the depot locations. At1014, based on the generated bipartite graph with edges satisfying the container balancing criteria, depot locations corresponding to the customer are identified and assigned to fulfill the booking requests.

FIG. 11is a block diagram of an exemplary computer system1100. The computer system1100includes a processor1105that executes software instructions or code stored on a computer readable storage medium1155to perform the above-illustrated methods. The computer system1100includes a media reader1140to read the instructions from the computer readable storage medium1155and store the instructions in storage1110or in random access memory (RAM)1115. The storage1110provides a large space for keeping static data where at least some instructions could be stored for later execution. The stored instructions may be further compiled to generate other representations of the instructions and dynamically stored in the RAM1115. The processor1105reads instructions from the RAM1115and performs actions as instructed. According to one embodiment, the computer system1100further includes an output device1125(e.g., a display) to provide at least some of the results of the execution as output including, but not limited to, visual information to users and an input device1130to provide a user or another device with means for entering data and/or otherwise interact with the computer system1100. Each of these output devices1125and input devices1130could be joined by one or more additional peripherals to further expand the capabilities of the computer system1100. A network communicator1135may be provided to connect the computer system1100to a network1150and in turn to other devices connected to the network1150including other clients, servers, data stores, and interfaces, for instance. The modules of the computer system1100are interconnected via a bus1145. Computer system1100includes a data source interface1120to access data source1160. The data source1160can be accessed via one or more abstraction layers implemented in hardware or software. For example, the data source1160may be accessed by network1150. In some embodiments the data source1160may be accessed via an abstraction layer, such as a semantic layer.

The above descriptions and illustrations of embodiments, including what is described in the Abstract, is not intended to be exhaustive or to limit the one or more embodiments to the precise forms disclosed. While specific embodiments of, and examples for, the one or more embodiments are described herein for illustrative purposes, various equivalent modifications are possible within the scope, as those skilled in the relevant art will recognize. These modifications can be made in light of the above detailed description. Rather, the scope is to be determined by the following claims, which are to be interpreted in accordance with established doctrines of claim construction.