WO2025166206A1 - Method for two-level transportation network design using a construction heuristic - Google Patents
Method for two-level transportation network design using a construction heuristicInfo
- Publication number
- WO2025166206A1 WO2025166206A1 PCT/US2025/014090 US2025014090W WO2025166206A1 WO 2025166206 A1 WO2025166206 A1 WO 2025166206A1 US 2025014090 W US2025014090 W US 2025014090W WO 2025166206 A1 WO2025166206 A1 WO 2025166206A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- vessel
- services
- service
- ports
- candidate
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/04—Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
- G06Q10/047—Optimisation of routes or paths, e.g. travelling salesman problem
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/08—Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
- G06Q10/083—Shipping
- G06Q10/08355—Routing methods
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/40—Business processes related to the transportation industry
Definitions
- the present disclosure relates generally to network design. More particularly, the present disclosure relates to computing systems, methods, and platforms that perform two-level transportation network design using a construction heuristic.
- Machine learning is a field of computer science that includes the building and training (e.g., via application of one or more learning algorithms) of analytical models that are capable of making useful predictions or inferences on the basis of input data.
- Machine learning is based on the idea that systems can learn from data, identify patterns, and make decisions with minimal human intervention.
- Network design in which a semipermanent topology is created.
- the network design may be the schedule of port calls made by vessels, and in trucking the network design may be the schedule of visits by a truck to sources, destinations, and intermediate distribution centers.
- a second problem is network flow in which goods are assigned to vessels or vehicles.
- the network flow may be the assignment of shipping containers to vessels, and in trucking the network flow may be the assignment of packages or pallets to trucks.
- a computer- implemented method for transportation network design can be performed by one or more computing devices and can include obtaining, by one or more computing devices, a plurality of vessel services, each vessel service of the plurality of vessel services associated with a number of ports.
- the number of ports can be two ports.
- the computer- implemented method can further include, for each respective vessel service of the plurality of vessel services and for each respective candidate port of a plurality of candidate ports: inserting, by the one or more computing devices, the respective candidate port to the respective vessel service; and adding, by the one or more computing devices, the respective vessel service with the respective candidate port to a group of vessel services with candidate ports inserted.
- the computer-implemented method can further include, for each respective vessel service of the plurality of vessel services: evaluating, by the one or more computing devices, each vessel service of the group of vessel services with candidate ports inserted to determine a highest performing vessel services in the group of vessel services with candidate ports; and sampling, by the one or more computing devices, a subset of vessel services from the group of vessel services with candidate ports, wherein the plurality of vessel services comprises the subset of vessel services.
- the computer-implemented method can further include outputting, by the one or more computing devices, the highest performing vessel service.
- a computing system for transportation network design can include one or more processors.
- the computing system can further include one or more non-transitory computer-readable media that collectively store instructions that, when executed by the one or more processors, cause the computing system to perform operations.
- the operations can include obtaining a plurality of vessel services, each vessel service of the plurality of vessel services associated with two ports.
- the operations can further include, for each respective vessel service of the plurality of vessel services and for each respective candidate port of a plurality of candidate ports: inserting the respective candidate port to the respective vessel service; and adding the respective vessel service with the respective candidate port to a group of vessel services with candidate ports inserted.
- the operations can further include for each respective vessel service of the plurality of vessel services: evaluating each vessel service of the group of vessel services with candidate ports inserted to determine highest performing vessel services in the group of vessel services with candidate ports; and sampling a subset of vessel services from the group of vessel services with candidate ports, wherein the plurality of vessel services comprises the subset of vessel services.
- the operations can further include outputting the highest performing vessel service.
- one or more non-transitory computer-readable media can collectively store instructions that, when executed by one or more processors of a computing system, cause the computing system to perform operations.
- the operations can include obtaining a plurality of vessel services, each vessel service of the plurality of vessel services associated with two ports.
- the operations can further include, for each respective vessel service of the plurality of vessel services and for each respective candidate port of a plurality of candidate ports: inserting the respective candidate port to the respective vessel service; and adding the respective vessel service with the respective candidate port to a group of vessel services with candidate ports inserted.
- the operations can further include for each respective vessel service of the plurality of vessel services: evaluating each vessel service of the group of vessel services with candidate ports inserted to determine highest performing vessel services in the group of vessel services with candidate ports; and sampling a subset of vessel services from the group of vessel services with candidate ports, wherein the plurality of vessel services comprises the subset of vessel services.
- the operations can further include outputting the highest performing vessel service.
- Figure 1 depicts graphical diagrams of example vessel service lines for routing containers between ports according to example embodiments of the present disclosure.
- Figure 2 depicts a block diagram of two-level transportation network design using a construction heuristic according to example embodiments of the present disclosure.
- Figure 3 depicts a block diagram of two-level transportation network design using a construction heuristic according to example embodiments of the present disclosure.
- Figure 4A depicts a block diagram of an example computing system that performs two-level transportation network design using a construction heuristic according to example embodiments of the present disclosure.
- Figure 4B depicts a block diagram of an example computing device that performs two-level transportation network design using a construction heuristic according to example embodiments of the present disclosure.
- Figure 4C depicts a block diagram of an example computing device that performs two-level transportation network design using a construction heuristic according to example embodiments of the present disclosure.
- Figure 5 depicts a block diagram of an example model according to example embodiments of the present disclosure.
- Figure 6 depicts a flow chart diagram of an example method to perform two- level transportation network design using a construction heuristic according to example embodiments of the present disclosure.
- the present disclosure is directed to computing systems, methods, and platforms for two-level transportation network design using a construction heuristic.
- the present disclosure is directed to a technique for optimizing network design and network flow simultaneously.
- the liner shipping network design and scheduling problem is a complex optimization problem that seeks to find the optimal design and scheduling of a liner shipping network with a goal of minimizing the total cost of operating the network while meeting as much of the cargo demand between ports as possible.
- the liner shipping network design and scheduling problem can be solved to decide which ports to serve, how many vessels to use, and how to schedule the vessels to minimize the cost of operating the network while maximizing the revenue for fulfilling cargo demand.
- the present disclosure implements a heuristic approach to solve the liner shipping network design problem specifically.
- the present disclosure uses a port insertion heuristic to enforce a specific vessel service structure and a metaheuristic to guide the incremental insertion of ports and produce diverse vessel services.
- the heuristic can enforce an outbound-inbound structure on each vessel service and choose the position of inserting a new port such that the additional distance or the additional operating cost is minimized.
- the structure defined by the heuristic can reduce the search space to a scale that makes it possible to do an exhaustive search over all port insertions, so the locally optimal port to insert for a given vessel service can be found.
- a vessel service can include a cyclic sequence of port calls operated by the same class of vessels.
- a vessel class can be characterized by its capacity in forty-foot equivalent units (e.g., containers), a minimum and a maximum speed, the ability to go through certain legs or ports (e.g., due to its measurements).
- a metaheuristic to generate a new vessel service starts with a population of vessel services that only visit two ports each.
- each possible port can be inserted using the heuristic as described and the resulting vessel service can be added to the next population, all vessel services of the new population can be evaluated, the best N vessel services of the new population can be kept, and a sample of a subset of them can be selected, and repeat until a limit (e.g., a maximum number of used vessel services) is reached.
- the best vessel service out of all populations can then be selected and added to the existing vessel services.
- This metaheuristic can be run multiple times, starting with no vessel services and incrementally adding vessel services until the number of vessels is reached. Diversity in vessel services, in terms of both structure and quality, can be increased or decreased by sampling a subset of all vessel services of the new population.
- This approach can be extended with vessel service selection based on a K- shortest path heuristic.
- the main metaheuristic can be run multiple times first to generate a diverse set of vessel services, then all vessel services can be added to a pool to select the best subset of them. As a result, good, diverse vessel services can be obtained quickly.
- the metaheuristic approach can be broken down into several components: a service construction with an input of existing vessel services and an output of a new vessel service, a port insertion heuristic with an input of a vessel service and a new port and an output of a vessel service calling new port, an evaluation with an input of vessel services and an output of profit, a cost calculation with an input of vessel services and an output of costs, and demand routing with an input of vessel services and an output of demand paths and revenue.
- a demand may be a weekly quantity of containers for a particular origin-destination pair of ports.
- Example embodiments of the present disclosure provide a number of technical effects and benefits. For instance, computing resources can be saved by solving the linear shipping network design and scheduling problem with a metaheuristic that takes less compute time to evaluate vessel services to determine the highest performing vessel service, cost, or revenue.
- the search space is also reduced to a scale that makes it possible to do an exhaustive search over all port insertions, so the locally optimal port to insert for a vessel service can be found.
- the problem can be viewed as a two-stage problem to create vessel services and assign demand container paths to maximize profit (i.e., demand revenue minus vessel service costs), subject to vessel availability, vessel capacity, and maximum transit time, as non-limiting examples.
- the present disclosure implements a heuristic approach to generate a service line (e.g., a vessel service) with maximum profit given a vessel class, the number of available vessels, a fixed sailing speed, and an initial port.
- the value or profit of a service line can be defined as demand revenue minus total cost.
- FIG. 1 depicts graphical diagrams of example vessel service lines for routing containers 204 between ports 202 according to example embodiments of the present disclosure.
- a vessel service 208 and 210 can include a cyclic sequence of port calls 202 operated by the same class of vessels.
- a service line e.g., vessel service 208 and 210) is generally constructed with an outbound trip and an inbound trip, such that the ends of the trips are connected. Each trip, outbound and inbound, should contain a port 202 no more than one time, which avoids going back and forth between ports too many times.
- an outbound trip may be from Qingdao to Shanghai to Ningbo to Colon to Savannah, and the inbound trip may be from Worcester to Washington to Boston to New York to Colon to Qingdao.
- a service line can be constructed by starting with two initial ports A and B, which translates to an outbound trip [A, B] and an inbound trip [B, A], [0028]
- One aspect of evaluating a vessel service network is the demand routing from which the revenue of the vessel service network can be inferred.
- a container path 212 can fulfill a demand 206 by routing a container 204 along a service line (e.g., vessel service 208 or 210) starting with a port 202 where the container 204 is located to a port 202 where the demand 206 for the container 204 is located.
- a service line e.g., vessel service 208 or 2
- Two routing options are greedy routing and heuristic column generation based on routing.
- Greedy routing is a fast routing option that does not consider transshipments (e.g., a container 204 can be transshipped between vessel services 208 and 210) and demands 206 are fulfilled in order of revenue per container 204 as long as there is capacity on the vessel.
- Figure 2 depicts a block diagram of two-level transportation network design using a construction heuristic according to example embodiments of the present disclosure.
- the construction heuristic can be composed of two heuristics: a main heuristic that can add ports in a specific outbound-inbound manner and a metaheuristic that can explore different port insertions to escape local optima. For instance, the metaheuristic can be added to the basic evaluation of the greedy routing to extend the initial service line with port insertions.
- Figure 2 illustrates adding new ports in several ways 200. Given an existing service line (e.g., vessel service 208 or 210) and a new port, several extensions can be considered.
- One extension 214 to the service line is to add a port to the end of the outbound trip, so the outbound trip is [A, B, C] and the inbound trip is [C, B, A],
- Another extension 216 is to add a port to the end of the inbound trip, which is the beginning of the outbound trip, so the outbound trip is [C, A, B] and the inbound trip is [B, A, C],
- Another extension 218 is to add a port between two consecutive ports of the outbound trip, such that the additional sailing time or cost is minimized (e.g., to limit search space), so the outbound trip is [A, C, B] and the inbound trip is [B, A],
- Another extension 220 is to add a port between two consecutive ports of the inbound trip, such that the additional sailing time or cost is minimized (e.g., to limit search space), so the outbound trip is [A, B] and the inbound trip is [B, C, A],
- a port insertion may be valid when the new
- Figure 3 depicts a block diagram of two-level transportation network design using a construction heuristic according to example embodiments of the present disclosure.
- the metaheuristic can be population-based, and iteratively add ports 222 and sample 226 from the best N results 224 per iteration. Due to the randomized nature of the metaheuristic, each run of the algorithm can generate a different service line (e.g., vessel service 208 or 210). This can be combined with parameters like the maximum service line length to generate a diverse set of solutions.
- Example pseudocode to iteratively add ports and sample from the best N results per iteration may be:
- the service set can include the plurality of vessel services, and each vessel service can be associated with first_port and second_port in some implementations.
- the best service can keep track of the best vessel service ever seen.
- the best n can keep track of the best N new service lines (e.g., vessel services) generated during an iteration.
- performing the insertions can be parallelized.
- the new service can insert candidate ports to a service line and add to best n if valid.
- the service lines in best n can be evaluated to determine the highest performing service lines and best n can be randomly sampled before the best service is returned.
- a sequence of vessel services that work well together can be generated.
- the following example algorithm can be implemented to generate service lines: 1. Find two ports with the highest remaining revenue between them (e.g., remaining container demand X revenue per container)
- Update demands e.g. subtract newly fulfilled demand
- Update available vessels e.g., subtract used vessels
- the greedy service line generation may stop even when there is still fulfillable demand with lower potential revenue than the highest.
- a greedy-sampling network generation can overcome this limitation by implementing greedy sampling with service line generation and a demand acceptance threshold.
- the following example algorithm can be implemented to generate service lines:
- Update demands e.g., subtract newly fulfilled demand
- Update available vessels e.g., subtract used vessels
- Heuristic column generation based demand routing is a near optimal option that considers transshipments where, for each demand, the K-shortest demand paths in the vessel service network are determined and a packing LP is solved to select the best combination of demand paths.
- a near optimal routing solution can be obtained by calculating the K-shortest demand paths (i.e., columns) for each commodity demand and then solving a packing MIP maximizing the revenue. The cost can be evaluated with a linear pass through the port calls.
- API Application Programming Interface
- an example shipping network design API can address the complex challenges of the Liner Shipping Network Design and Scheduling Problem (LSNDSP).
- LSNDSP Liner Shipping Network Design and Scheduling Problem
- This problem can include both the design and scheduling of a liner shipping network that aims to minimize operational costs while maximizing operational success with regards to shipping commodities between ports.
- the network design subproblem can include determining which ports are serviced by the network, allocating the number of vessels for each route, and establishing the routes that vessels will follow.
- the scheduling subproblem can focus on creating sailing schedules that consider various factors such as the time required to sail between ports, the time taken to load and unload cargo, and the demands for transportation between different ports.
- the API can employ advanced optimization techniques to address the LSNDSP at a scale that has previously been unmanageable.
- the API can integrate solutions for network design, scheduling, and container routing into a unified framework, which can significantly enhance the efficiency and profitability of shipping operations.
- Methods used in this approach can include a variety of algorithmic strategies. For instance, column generation can be utilized where only a subset of variables is considered initially, with new variables introduced progressively to refine the solution. This technique can be complemented by software tools developed to predict the most effective columns to generate, enhancing the efficiency of the process.
- an example API can implement two primary strategies for solving the problem: Double Column Generation and CP-SAT.
- Double Column Generation considers network design and container routing as interlinked problems, applying algorithms to generate feasible options and then using linear programming to select the optimal solution.
- CP-SAT based on constraint programming, also demonstrates effectiveness in medium-sized networks.
- heuristic strategies involving large and variable neighborhood searches are applied. These strategies fix parts of the solution or explore multiple neighborhoods simultaneously, reducing the search space and improving solution quality. This is particularly beneficial for large-scale problems, such as those involving global shipping networks.
- an example API can receive inputs that describe various elements for network design and scheduling. These elements can include ports with specific costs and restrictions related to vessel classes, vessel classes with defined capacities and fleet sizes, and/or leg candidates that represent potential connections between ports over given durations compatible with specific vessel classes. Additionally, the demands between ports can be specified, including freight rates and optional transit time restrictions. Optionally, existing vessel services can also be inputted to the system.
- the output of the API can be a structured response that provides details on vessel services and commodity demand paths.
- Vessel service schedules can be outlined as sequences of leg candidates, each with specified departure times and assigned vessel classes.
- Commodity demand paths can be described through sequences of vessel service legs, facilitating a comprehensive understanding of the routing and scheduling within the network.
- the API can improve transportation network design by offering a structured method to handle the complexities of shipping logistics. By providing detailed inputs and receiving structured outputs, users can effectively plan and optimize shipping routes and schedules, potentially leading to improved operational efficiency and increased revenue.
- the API’s ability to incorporate existing vessel services into its calculations allows for enhanced flexibility and adaptability in network planning and execution.
- a deadline determines the maximum wall time that a call to the API should take.
- a user can set both client and server deadlines.
- a server deadline is the more useful one as it informs the backend server of how much time it has to receive a request, run the underlying solver, and return a response.
- client deadlines are useful to set the maximum time that the client application (i.e., the application calling the OR API) is going to wait for a response, before timing out.
- the following example code snippet sets both a client and a server deadline in the session headers of the request.
- the client deadline is set to 60 seconds.
- the server deadline should be less than the client deadline to account for communication overhead.
- the server deadline is set to be 95% of the client deadline, but this can vary depending on the application. Notice that the API key was also moved to the session headers to make the session. post(%) call cleaner.
- the freight rate can encompass various metrics that are significant to the liner shipping company. These metrics can include the economic value of the goods being transported, the environmental impact of the shipping operations, and customer satisfaction levels. To address scenarios where a demand is not met, a penalty can be incorporated into the freight rate, providing a financial incentive to fulfill all service demands whenever possible.
- the model can handle demands that have the same origin-demand pairs but differ in other specifications. This flexibility allows for a more nuanced approach to managing shipping demands, accommodating variations in shipping requirements under similar origin-destination scenarios.
- leg candidates can include vessel class-specific costs and restrictions, such as those imposed by draft limitations for canals or by international laws.
- leg candidates provide a clear and unambiguous definition of port connections. This clarity can improve the precision and reliability of network design and scheduling, ensuring that operational decisions are based on well-defined and consistent information.
- Figure 4 A depicts a block diagram of an example computing system 100 that performs two-level transportation network design using a construction heuristic according to example embodiments of the present disclosure.
- the system 100 includes a user computing device 102, a server computing system 130, and a training computing system 150 that are communicatively coupled over a network 180.
- the user computing device 102 can be any type of computing device, such as, for example, a personal computing device (e.g., laptop or desktop), a mobile computing device (e.g., smartphone or tablet), a gaming console or controller, a wearable computing device, an embedded computing device, or any other type of computing device.
- a personal computing device e.g., laptop or desktop
- a mobile computing device e.g., smartphone or tablet
- a gaming console or controller e.g., a gaming console or controller
- a wearable computing device e.g., an embedded computing device, or any other type of computing device.
- the user computing device 102 includes one or more processors 112 and a memory 114.
- the one or more processors 112 can be any suitable processing device (e.g., a processor core, a microprocessor, an ASIC, an FPGA, a controller, a microcontroller, etc.) and can be one processor or a plurality of processors that are operatively connected.
- the memory 114 can include one or more non -transitory computer-readable storage media, such as RAM, ROM, EEPROM, EPROM, flash memory devices, magnetic disks, etc., and combinations thereof.
- the memory 114 can store data 116 and instructions 118 which are executed by the processor 112 to cause the user computing device 102 to perform operations.
- the user computing device 102 can store or include one or more machine-learned models 120.
- the machine-learned models 120 can be or can otherwise include various machine-learned models such as neural networks (e.g., deep neural networks) or other types of machine-learned models, including non-linear models and/or linear models.
- Neural networks can include feed-forward neural networks, recurrent neural networks (e.g., long short-term memory recurrent neural networks), convolutional neural networks or other forms of neural networks.
- Some example machine-learned models can leverage an attention mechanism such as self-attention.
- some example machine-learned models can include multi-headed self-attention models (e.g., transformer models).
- Example machine-learned models 120 are discussed with reference to Figure 5.
- the one or more machine-learned models 120 can be received from the server computing system 130 over network 180, stored in the user computing device memory 114, and then used or otherwise implemented by the one or more processors 112.
- the user computing device 102 can implement multiple parallel instances of a single machine-learned model 120.
- one or more machine-learned models 140 can be included in or otherwise stored and implemented by the server computing system 130 that communicates with the user computing device 102 according to a client-server relationship.
- the machine-learned models 140 can be implemented by the server computing system 130 as a portion of a web service (e.g., an image service).
- a web service e.g., an image service.
- one or more models 120 can be stored and implemented at the user computing device 102 and/or one or more models 140 can be stored and implemented at the server computing system 130.
- the user computing device 102 can also include one or more user input components 122 that receives user input.
- the user input component 122 can be a touch-sensitive component (e.g., a touch-sensitive display screen or a touch pad) that is sensitive to the touch of a user input object (e.g., a finger or a stylus).
- the touch-sensitive component can serve to implement a virtual keyboard.
- Other example user input components include a microphone, a traditional keyboard, or other means by which a user can provide user input.
- the server computing system 130 includes one or more processors 132 and a memory 134.
- the one or more processors 132 can be any suitable processing device (e.g., a processor core, a microprocessor, an ASIC, an FPGA, a controller, a microcontroller, etc.) and can be one processor or a plurality of processors that are operatively connected.
- the memory 134 can include one or more non-transitory computer-readable storage media, such as RAM, ROM, EEPROM, EPROM, flash memory devices, magnetic disks, etc., and combinations thereof.
- the memory 134 can store data 136 and instructions 138 which are executed by the processor 132 to cause the server computing system 130 to perform operations.
- the server computing system 130 includes or is otherwise implemented by one or more server computing devices. In instances in which the server computing system 130 includes plural server computing devices, such server computing devices can operate according to sequential computing architectures, parallel computing architectures, or some combination thereof.
- the server computing system 130 can store or otherwise include one or more machine-learned models 140.
- the models 140 can be or can otherwise include various machine-learned models.
- Example machine-learned models include neural networks or other multi-layer non-linear models.
- Example neural networks include feed forward neural networks, deep neural networks, recurrent neural networks, and convolutional neural networks.
- Some example machine-learned models can leverage an attention mechanism such as self-attention.
- some example machine-learned models can include multi-headed self-attention models (e.g., transformer models).
- Example models 140 are discussed with reference to Figure 5.
- the user computing device 102 and/or the server computing system 130 can train the models 120 and/or 140 via interaction with the training computing system 150 that is communicatively coupled over the network 180.
- the training computing system 150 can be separate from the server computing system 130 or can be a portion of the server computing system 130.
- the training computing system 150 includes one or more processors 152 and a memory 154.
- the one or more processors 152 can be any suitable processing device (e.g., a processor core, a microprocessor, an ASIC, an FPGA, a controller, a microcontroller, etc.) and can be one processor or a plurality of processors that are operatively connected.
- the memory 154 can include one or more non-transitory computer-readable storage media, such as RAM, ROM, EEPROM, EPROM, flash memory devices, magnetic disks, etc., and combinations thereof.
- the memory 154 can store data 156 and instructions 158 which are executed by the processor 152 to cause the training computing system 150 to perform operations.
- the training computing system 150 includes or is otherwise implemented by one or more server computing devices.
- the training computing system 150 can include a model trainer 160 that trains the machine-learned models 120 and/or 140 stored at the user computing device 102 and/or the server computing system 130 using various training or learning techniques, such as, for example, backwards propagation of errors.
- a loss function can be backpropagated through the model(s) to update one or more parameters of the model(s) (e.g., based on a gradient of the loss function).
- Various loss functions can be used such as mean squared error, likelihood loss, cross entropy loss, hinge loss, and/or various other loss functions.
- Gradient descent techniques can be used to iteratively update the parameters over a number of training iterations.
- performing backwards propagation of errors can include performing truncated backpropagation through time.
- the model trainer 160 can perform a number of generalization techniques (e.g., weight decays, dropouts, etc.) to improve the generalization capability of the models being trained.
- the model trainer 160 can train the machine-learned models 120 and/or 140 based on a set of training data 162.
- the training examples can be provided by the user computing device 102.
- the machine-learned model 120 provided to the user computing device 102 can be trained by the training computing system 150 on user-specific data received from the user computing device 102. In some instances, this process can be referred to as personalizing the model.
- the model trainer 160 includes computer logic utilized to provide desired functionality.
- the model trainer 160 can be implemented in hardware, firmware, and/or software controlling a general purpose processor.
- the model trainer 160 includes program files stored on a storage device, loaded into a memory and executed by one or more processors.
- the model trainer 160 includes one or more sets of computer-executable instructions that are stored in a tangible computer-readable storage medium such as RAM, hard disk, or optical or magnetic media.
- the network 180 can be any type of communications network, such as a local area network (e.g., intranet), wide area network (e.g., Internet), or some combination thereof and can include any number of wired or wireless links.
- communication over the network 180 can be carried via any type of wired and/or wireless connection, using a wide variety of communication protocols (e.g., TCP/IP, HTTP, SMTP, FTP), encodings or formats (e.g., HTML, XML), and/or protection schemes (e.g., VPN, secure HTTP, SSL).
- Figure 4A illustrates one example computing system that can be used to implement the present disclosure.
- the user computing device 102 can include the model trainer 160 and the training dataset 162.
- the models 120 can be both trained and used locally at the user computing device 102.
- the user computing device 102 can implement the model trainer 160 to personalize the models 120 based on user-specific data.
- Figure 4B depicts a block diagram of an example computing device 10 that performs two-level transportation network design using a construction heuristic according to example embodiments of the present disclosure.
- the computing device 10 can be a user computing device or a server computing device.
- the computing device 10 includes a number of applications (e.g., applications 1 through N). Each application contains its own machine learning library and machine- learned model(s). For example, each application can include a machine-learned model.
- Example applications include a text messaging application, an email application, a dictation application, a virtual keyboard application, a browser application, etc.
- each application can communicate with a number of other components of the computing device, such as, for example, one or more sensors, a context manager, a device state component, and/or additional components.
- each application can communicate with each device component using an API (e.g., a public API).
- the API used by each application is specific to that application.
- Figure 4C depicts a block diagram of an example computing device 50 that performs two-level transportation network design using a construction heuristic according to example embodiments of the present disclosure.
- the computing device 50 can be a user computing device or a server computing device.
- the computing device 50 includes a number of applications (e.g., applications 1 through N). Each application is in communication with a central intelligence layer.
- Example applications include a text messaging application, an email application, a dictation application, a virtual keyboard application, a browser application, etc.
- each application can communicate with the central intelligence layer (and model(s) stored therein) using an API (e.g., a common API across all applications).
- the central intelligence layer includes a number of machine-learned models. For example, as illustrated in Figure 4C, a respective machine-learned model can be provided for each application and managed by the central intelligence layer. In other implementations, two or more applications can share a single machine-learned model.
- the central intelligence layer can provide a single model for all of the applications.
- the central intelligence layer is included within or otherwise implemented by an operating system of the computing device 50.
- the central intelligence layer can communicate with a central device data layer.
- the central device data layer can be a centralized repository of data for the computing device 50. As illustrated in Figure 4C, the central device data layer can communicate with a number of other components of the computing device, such as, for example, one or more sensors, a context manager, a device state component, and/or additional components. In some implementations, the central device data layer can communicate with each device component using an API (e.g., a private API).
- an API e.g., a private API
- FIG. 5 depicts a block diagram of an example model 500 according to example embodiments of the present disclosure.
- the model 500 receives a set of inputs comprising vessel services 502, the vessel services 502 being associated with ports 504.
- the ports 504 can be associated with a demand for a container where the container is routed to the ports 504 via at least part of one or more of the vessel services 502.
- the model 500 can obtain the vessel services 502, where each vessel service of the vessel service 502 associated with two ports of the ports 504.
- the vessel services 502 can include an outbound trip from a first port of the two ports to a second port of the two ports and an inbound trip from the second port to the first port.
- the model 500 can insert candidate ports to the vessel service (e.g., inserting the candidate port at a location between the two ports to minimize additional travel time for the vessel service, or switching an order of ports of the vessel service) and add the vessel service with the candidate port to a group of vessel services 506 with candidate ports inserted into the vessel services.
- the model 500 can evaluate the group of vessel services 506 to determine the highest performing vessel services in the group of vessel services 506 and sample a subset of vessel services 508 from the group of vessel services 506 (e.g., random sampling). As a result, the model 500 can output the highest performing vessel service 510 (e.g., the vessel service with the lowest operating cost).
- the model 500 may output the highest performing vessel service 510 after stopping evaluation of the vessel services in the group of vessel services 506 when a maximum number of used vessel services is reached or when a predetermined amount of time is reached.
- Figure 6 depicts a flow chart diagram of an example method to perform transportation network design according to example embodiments of the present disclosure.
- Figure 6 depicts steps performed in a particular order for purposes of illustration and discussion, the methods of the present disclosure are not limited to the particularly illustrated order or arrangement.
- the various steps of the method 600 can be omitted, rearranged, combined, and/or adapted in various ways without deviating from the scope of the present disclosure.
- a computing system obtains a plurality of vessel services, each vessel service of the plurality of vessel services associated with two ports.
- each vessel service of the plurality of vessel services can include an outbound trip from a first port of the two ports to a second port of the two ports and an inbound trip from the second port to the first port.
- the computing system for each respective vessel service of the plurality of vessel services and for each respective candidate port of a plurality of candidate ports: inserts the respective candidate port to the respective vessel service, and adds the respective vessel service with the respective candidate port to a group of vessel services with candidate ports inserted.
- inserting the respective candidate port to the respective vessel service can include inserting the respective candidate port at a location between the two ports.
- inserting the respective candidate port at the location between the two ports can include inserting the respective candidate port at a position that minimizes additional travel time for the respective vessel service.
- inserting the respective candidate port to the respective vessel service can include switching an order of ports of the respective vessel service.
- the candidate ports are associated with a demand for a container, wherein the container is routed to the candidate ports via at least part of one or more vessel services from among the plurality of vessel services.
- the computing system for each respective vessel service of the plurality of vessel services: evaluates each vessel service of the group of vessel services with candidate ports inserted to determine highest performing vessel services in the group of vessel services with candidate ports, and samples a subset of vessel services from the group of vessel services with candidate ports, wherein the plurality of vessel services comprises the subset of vessel services.
- sampling the subset of vessel services from the group of vessel services with candidate ports can include performing a random sampling technique on the group of vessel services with candidate ports.
- the computing system can stop evaluation of each vessel service of the group of vessel services with candidate ports inserted when a maximum number of used vessel services is reached. In other examples, the computing system can stop evaluation of each vessel service of the group of vessel services with candidate ports inserted when a predetermined amount of time is reached.
- the computing system outputs the highest performing vessel service.
- the highest performing vessel service can include a vessel service with a lowest operating cost.
- the computing system can output a profit associated with the highest performing vessel service, wherein the highest performing vessel service comprises a vessel service with a maximum profit given a vessel class, a number of available vessels, a fixed sailing speed, and an initial port.
- the technology described herein may be implemented on various computing systems, each suitable for distinct aspects of transportation network design.
- personal computers and workstations can utilize the software, equipped with CPUs, RAM, storage drives, and networking hardware, operating under systems such as Windows, macOS, or Linux.
- mobile devices including smartphones and tablets that comprise processors, memory, and wireless communication capabilities, can support mobile-specific applications under iOS or Android. This configuration provides a platform for the management and monitoring of transportation networks while mobile.
- Server systems which can include individual servers in data centers as well as extensive cloud computing networks, provide solutions for managing the complex calculations and data processing involved in transportation network design. These servers are characterized by their powerful processing capabilities, extensive memory, and significant storage capacity, which can be beneficial for server-side computations.
- Embedded systems can be applied in various fields, including loT devices, automotive systems, and industrial applications within the transportation sector. These systems typically operate on specialized hardware and can include real-time operating systems tailored for designated tasks, such as managing traffic in real-time and tracking vehicles.
- Hybrid systems can employ the combined resources of multiple interconnected computers to manage large datasets and complex tasks, which is beneficial in optimizing extensive transportation networks.
- Hybrid systems integrate elements from various computing environments. They can utilize cloud servers for heavy-duty processing, mobile devices for interface and control, and embedded systems for direct hardware interaction, thus offering a comprehensive solution for transportation network design.
- Each system can be equipped with requisite hardware and software components, such as processors, memory, storage, networking capabilities, operating systems, and particular applications, to facilitate the implementation of the technology.
- the choice of a suitable computing system may depend on factors including necessary processing power, data management requirements, user interface preferences, and the specific environment of the transportation network’s operation.
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Economics (AREA)
- Human Resources & Organizations (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Marketing (AREA)
- Tourism & Hospitality (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Entrepreneurship & Innovation (AREA)
- Development Economics (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Primary Health Care (AREA)
- Game Theory and Decision Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
Provided are computing systems, methods, and platforms that perform two-level transportation network design using a construction heuristic. A computing system uses the construction heuristic to optimize network design and network flow simultaneously (e.g., the optimal design and scheduling of a liner shipping network with a goal of minimizing the total cost of operating the network while meeting as much of the cargo demand between ports as possible). The heuristic can guide the incremental insertion of ports, produce diverse vessel services, choose the position of inserting a new port, and generate a service line (e.g., a vessel service) with maximum profit given a vessel class, the number of available vessels, a fixed sailing speed, and an initial port.
Description
METHOD FOR TWO-LEVEL TRANSPORTATION NETWORK DESIGN USING A
CONSTRUCTION HEURISTIC
RELATED APPLICATIONS
[0001] The present application is based on and claims priority to United States Provisional Application Number 63/549,260 having a filing date of February 2, 2024. Application claims priority to and the benefit of each of such applications and incorporates all such applications herein by reference in their entirety.
FIELD
[0002] The present disclosure relates generally to network design. More particularly, the present disclosure relates to computing systems, methods, and platforms that perform two-level transportation network design using a construction heuristic.
BACKGROUND
[0003] Machine learning is a field of computer science that includes the building and training (e.g., via application of one or more learning algorithms) of analytical models that are capable of making useful predictions or inferences on the basis of input data. Machine learning is based on the idea that systems can learn from data, identify patterns, and make decisions with minimal human intervention.
[0004] Large transportation networks, such as ocean shipping or long-haul trucking, can have two problems to solve simultaneously. One such problem that is ideally solved simultaneously is network design in which a semipermanent topology is created. For instance, in ocean shipping, the network design may be the schedule of port calls made by vessels, and in trucking the network design may be the schedule of visits by a truck to sources, destinations, and intermediate distribution centers. A second problem is network flow in which goods are assigned to vessels or vehicles. For instance, in ocean shipping, the network flow may be the assignment of shipping containers to vessels, and in trucking the network flow may be the assignment of packages or pallets to trucks.
[0005] However, in large transportation networks, both problems - network design and network flow - can be computationally difficult to solve to near-optimality. Therefore, improved techniques are desired to solve the joint problem by optimizing over network design and network flow simultaneously.
SUMMARY
[0006] Aspects and advantages of embodiments of the present disclosure will be set forth in part in the following description, or can be learned from the description, or can be learned through practice of the embodiments.
[0007] According to an example embodiment of the present disclosure, a computer- implemented method for transportation network design can be performed by one or more computing devices and can include obtaining, by one or more computing devices, a plurality of vessel services, each vessel service of the plurality of vessel services associated with a number of ports. For example, the number of ports can be two ports. The computer- implemented method can further include, for each respective vessel service of the plurality of vessel services and for each respective candidate port of a plurality of candidate ports: inserting, by the one or more computing devices, the respective candidate port to the respective vessel service; and adding, by the one or more computing devices, the respective vessel service with the respective candidate port to a group of vessel services with candidate ports inserted. The computer-implemented method can further include, for each respective vessel service of the plurality of vessel services: evaluating, by the one or more computing devices, each vessel service of the group of vessel services with candidate ports inserted to determine a highest performing vessel services in the group of vessel services with candidate ports; and sampling, by the one or more computing devices, a subset of vessel services from the group of vessel services with candidate ports, wherein the plurality of vessel services comprises the subset of vessel services. The computer-implemented method can further include outputting, by the one or more computing devices, the highest performing vessel service.
[0008] According to another example embodiment of the present disclosure, a computing system for transportation network design can include one or more processors. The computing system can further include one or more non-transitory computer-readable media that collectively store instructions that, when executed by the one or more processors, cause the computing system to perform operations. The operations can include obtaining a plurality of vessel services, each vessel service of the plurality of vessel services associated with two ports. The operations can further include, for each respective vessel service of the plurality of vessel services and for each respective candidate port of a plurality of candidate ports: inserting the respective candidate port to the respective vessel service; and adding the respective vessel service with the respective candidate port to a group of vessel services with candidate ports inserted. The operations can further include for each respective vessel service
of the plurality of vessel services: evaluating each vessel service of the group of vessel services with candidate ports inserted to determine highest performing vessel services in the group of vessel services with candidate ports; and sampling a subset of vessel services from the group of vessel services with candidate ports, wherein the plurality of vessel services comprises the subset of vessel services. The operations can further include outputting the highest performing vessel service.
[0009] According to another example embodiment of the present disclosure, one or more non-transitory computer-readable media can collectively store instructions that, when executed by one or more processors of a computing system, cause the computing system to perform operations. The operations can include obtaining a plurality of vessel services, each vessel service of the plurality of vessel services associated with two ports. The operations can further include, for each respective vessel service of the plurality of vessel services and for each respective candidate port of a plurality of candidate ports: inserting the respective candidate port to the respective vessel service; and adding the respective vessel service with the respective candidate port to a group of vessel services with candidate ports inserted. The operations can further include for each respective vessel service of the plurality of vessel services: evaluating each vessel service of the group of vessel services with candidate ports inserted to determine highest performing vessel services in the group of vessel services with candidate ports; and sampling a subset of vessel services from the group of vessel services with candidate ports, wherein the plurality of vessel services comprises the subset of vessel services. The operations can further include outputting the highest performing vessel service. [0010] These and other features, aspects, and advantages of various embodiments of the present disclosure will become better understood with reference to the following description and appended claims. The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate example embodiments of the present disclosure and, together with the description, serve to explain the related principles.
BRIEF DESCRIPTION OF THE DRAWINGS
[0011] Detailed discussion of implementations directed to one of ordinary skill in the art is set forth in the specification, which makes reference to the appended figures, in which: [0012] Figure 1 depicts graphical diagrams of example vessel service lines for routing containers between ports according to example embodiments of the present disclosure.
[0013] Figure 2 depicts a block diagram of two-level transportation network design using a construction heuristic according to example embodiments of the present disclosure.
[0014] Figure 3 depicts a block diagram of two-level transportation network design using a construction heuristic according to example embodiments of the present disclosure. [0015] Figure 4A depicts a block diagram of an example computing system that performs two-level transportation network design using a construction heuristic according to example embodiments of the present disclosure.
[0016] Figure 4B depicts a block diagram of an example computing device that performs two-level transportation network design using a construction heuristic according to example embodiments of the present disclosure.
[0017] Figure 4C depicts a block diagram of an example computing device that performs two-level transportation network design using a construction heuristic according to example embodiments of the present disclosure.
[0018] Figure 5 depicts a block diagram of an example model according to example embodiments of the present disclosure.
[0019] Figure 6 depicts a flow chart diagram of an example method to perform two- level transportation network design using a construction heuristic according to example embodiments of the present disclosure.
[0020] Reference numerals that are repeated across plural figures are intended to identify the same features in various implementations.
DETAILED DESCRIPTION
Overview
[0021] Generally, the present disclosure is directed to computing systems, methods, and platforms for two-level transportation network design using a construction heuristic. In particular, the present disclosure is directed to a technique for optimizing network design and network flow simultaneously. The liner shipping network design and scheduling problem is a complex optimization problem that seeks to find the optimal design and scheduling of a liner shipping network with a goal of minimizing the total cost of operating the network while meeting as much of the cargo demand between ports as possible. In other words, the liner shipping network design and scheduling problem can be solved to decide which ports to serve, how many vessels to use, and how to schedule the vessels to minimize the cost of operating the network while maximizing the revenue for fulfilling cargo demand. However, cargo routing, which determines which demands to meet and which routes to assign to cargo in order to maximize revenue, can be a challenging component of the problem.
[0022] The present disclosure implements a heuristic approach to solve the liner shipping network design problem specifically. In particular, the present disclosure uses a port insertion heuristic to enforce a specific vessel service structure and a metaheuristic to guide the incremental insertion of ports and produce diverse vessel services. For instance, demand routing, which is used for evaluation, can be based on a K-shortest path heuristic, which yields optimal results if K is high enough (e.g., K = 15) and can be much faster than a column generation approach or a full mixed-integer programming (MIP) approach. The heuristic can enforce an outbound-inbound structure on each vessel service and choose the position of inserting a new port such that the additional distance or the additional operating cost is minimized. The structure defined by the heuristic can reduce the search space to a scale that makes it possible to do an exhaustive search over all port insertions, so the locally optimal port to insert for a given vessel service can be found.
[0023] A vessel service can include a cyclic sequence of port calls operated by the same class of vessels. A vessel class can be characterized by its capacity in forty-foot equivalent units (e.g., containers), a minimum and a maximum speed, the ability to go through certain legs or ports (e.g., due to its measurements). Given one or more existing vessel services, a metaheuristic to generate a new vessel service starts with a population of vessel services that only visit two ports each. Then, for each vessel service in the current population, each possible port can be inserted using the heuristic as described and the resulting vessel service can be added to the next population, all vessel services of the new population can be evaluated, the best N vessel services of the new population can be kept, and a sample of a subset of them can be selected, and repeat until a limit (e.g., a maximum number of used vessel services) is reached. The best vessel service out of all populations can then be selected and added to the existing vessel services. This metaheuristic can be run multiple times, starting with no vessel services and incrementally adding vessel services until the number of vessels is reached. Diversity in vessel services, in terms of both structure and quality, can be increased or decreased by sampling a subset of all vessel services of the new population. This approach can be extended with vessel service selection based on a K- shortest path heuristic. In some implementations, the main metaheuristic can be run multiple times first to generate a diverse set of vessel services, then all vessel services can be added to a pool to select the best subset of them. As a result, good, diverse vessel services can be obtained quickly.
[0024] The metaheuristic approach can be broken down into several components: a service construction with an input of existing vessel services and an output of a new vessel
service, a port insertion heuristic with an input of a vessel service and a new port and an output of a vessel service calling new port, an evaluation with an input of vessel services and an output of profit, a cost calculation with an input of vessel services and an output of costs, and demand routing with an input of vessel services and an output of demand paths and revenue. A demand may be a weekly quantity of containers for a particular origin-destination pair of ports.
[0025] Example embodiments of the present disclosure provide a number of technical effects and benefits. For instance, computing resources can be saved by solving the linear shipping network design and scheduling problem with a metaheuristic that takes less compute time to evaluate vessel services to determine the highest performing vessel service, cost, or revenue. The search space is also reduced to a scale that makes it possible to do an exhaustive search over all port insertions, so the locally optimal port to insert for a vessel service can be found.
Construction Heuristic Framework
[0026] The problem can be viewed as a two-stage problem to create vessel services and assign demand container paths to maximize profit (i.e., demand revenue minus vessel service costs), subject to vessel availability, vessel capacity, and maximum transit time, as non-limiting examples. The present disclosure implements a heuristic approach to generate a service line (e.g., a vessel service) with maximum profit given a vessel class, the number of available vessels, a fixed sailing speed, and an initial port. The value or profit of a service line can be defined as demand revenue minus total cost.
[0027] Figure 1 depicts graphical diagrams of example vessel service lines for routing containers 204 between ports 202 according to example embodiments of the present disclosure. A vessel service 208 and 210 can include a cyclic sequence of port calls 202 operated by the same class of vessels. A service line (e.g., vessel service 208 and 210) is generally constructed with an outbound trip and an inbound trip, such that the ends of the trips are connected. Each trip, outbound and inbound, should contain a port 202 no more than one time, which avoids going back and forth between ports too many times. For example, an outbound trip may be from Qingdao to Shanghai to Ningbo to Colon to Savannah, and the inbound trip may be from Savannah to Charleston to Boston to New York to Colon to Qingdao. A service line can be constructed by starting with two initial ports A and B, which translates to an outbound trip [A, B] and an inbound trip [B, A],
[0028] One aspect of evaluating a vessel service network is the demand routing from which the revenue of the vessel service network can be inferred. A container path 212 can fulfill a demand 206 by routing a container 204 along a service line (e.g., vessel service 208 or 210) starting with a port 202 where the container 204 is located to a port 202 where the demand 206 for the container 204 is located. Two routing options are greedy routing and heuristic column generation based on routing. Greedy routing is a fast routing option that does not consider transshipments (e.g., a container 204 can be transshipped between vessel services 208 and 210) and demands 206 are fulfilled in order of revenue per container 204 as long as there is capacity on the vessel. With greedy routing, it is possible to calculate a lower bound on the demand revenue by fulfilling demands in order of revenue per container and updating the residual capacities of legs after each fulfillment, which can be implemented in O(A3) or O N2 log A) where N is the number of port calls.
[0029] Figure 2 depicts a block diagram of two-level transportation network design using a construction heuristic according to example embodiments of the present disclosure. The construction heuristic can be composed of two heuristics: a main heuristic that can add ports in a specific outbound-inbound manner and a metaheuristic that can explore different port insertions to escape local optima. For instance, the metaheuristic can be added to the basic evaluation of the greedy routing to extend the initial service line with port insertions. Figure 2 illustrates adding new ports in several ways 200. Given an existing service line (e.g., vessel service 208 or 210) and a new port, several extensions can be considered. One extension 214 to the service line is to add a port to the end of the outbound trip, so the outbound trip is [A, B, C] and the inbound trip is [C, B, A], Another extension 216 is to add a port to the end of the inbound trip, which is the beginning of the outbound trip, so the outbound trip is [C, A, B] and the inbound trip is [B, A, C], Another extension 218 is to add a port between two consecutive ports of the outbound trip, such that the additional sailing time or cost is minimized (e.g., to limit search space), so the outbound trip is [A, C, B] and the inbound trip is [B, A], Another extension 220 is to add a port between two consecutive ports of the inbound trip, such that the additional sailing time or cost is minimized (e.g., to limit search space), so the outbound trip is [A, B] and the inbound trip is [B, C, A], A port insertion may be valid when the new port does not exist in the corresponding trip. The total possible insertions are 4 * P where P is the number of ports. In some implementations, instead of improving existing service lines, new service lines can be created from scratch. [0030] Figure 3 depicts a block diagram of two-level transportation network design using a construction heuristic according to example embodiments of the present disclosure.
The metaheuristic can be population-based, and iteratively add ports 222 and sample 226 from the best N results 224 per iteration. Due to the randomized nature of the metaheuristic, each run of the algorithm can generate a different service line (e.g., vessel service 208 or 210). This can be combined with parameters like the maximum service line length to generate a diverse set of solutions. Example pseudocode to iteratively add ports and sample from the best N results per iteration may be:
GenerateServiceLine(first_port, second_port): best service = ServiceLine(first_port, second_port) service_set = [(profit(best_service), best_service)] until service_set is empty: best n = LimitedSortedSet with size limit N for each service in service_set: for each insertion, port in insertions x ports: new_service = make_insert(service, insertion, port) if is_valid(new_service): b est n . add(profit(new_servi ce), new_servi ce) if best_n.has_elements() and profit(best_n.best()) > profit(b est servi ce) : best_service = best_n.best() service set = randomly sample K elements out of best n return best service
The service set can include the plurality of vessel services, and each vessel service can be associated with first_port and second_port in some implementations. The best service can keep track of the best vessel service ever seen. The best n can keep track of the best N new service lines (e.g., vessel services) generated during an iteration. In some implementations, performing the insertions can be parallelized. The new service can insert candidate ports to a service line and add to best n if valid. The service lines in best n can be evaluated to determine the highest performing service lines and best n can be randomly sampled before the best service is returned.
[0031] In another example, instead of generating a single vessel service (e.g., service line), a sequence of vessel services that work well together can be generated. For greedy service line generation, the following example algorithm can be implemented to generate service lines:
1. Find two ports with the highest remaining revenue between them (e.g., remaining container demand X revenue per container)
2. Generate a new service line out of the two ports maximizing total profit a. Given the two ports, generate a service line for each of the remaining vessel classes and for each speed in [min speed, . . . , avg speed, . . . , max_speed] b. If the total profit is negative (i.e., a loss), then stop c. Return the service line with the maximum profit
3. Add the new service line to the list of vessel services
4. Update demands (e.g. subtract newly fulfilled demand)
5. Update available vessels (e.g., subtract used vessels)
6. Go to step 1
[0032] The greedy service line generation may stop even when there is still fulfillable demand with lower potential revenue than the highest. A greedy-sampling network generation can overcome this limitation by implementing greedy sampling with service line generation and a demand acceptance threshold. The following example algorithm can be implemented to generate service lines:
1. Find two ports with the highest remaining revenue between them (e.g., remaining container demand X revenue per container)
2. For all remaining demands that have a revenue greater than or equal to a threshold, generate all service lines out of the two demand ports a. Given the two ports, generate a service line for each of the remaining vessel classes and for each speed in [min speed, . . . , avg speed, . . . , max_speed] b. Return all service lines with positive profit
3. Sample from the generated service lines and add the new service line to the list of vessel services
4. Update demands (e.g., subtract newly fulfilled demand)
5. Update available vessels (e.g., subtract used vessels)
6. Go to step 1
[0033] Adding the heuristic column generation can improve evaluation by generating K-shortest paths per demand and solving a packing linear programming (LP) problem for an optimal routing solution. Heuristic column generation based demand routing is a near optimal option that considers transshipments where, for each demand, the K-shortest demand paths in
the vessel service network are determined and a packing LP is solved to select the best combination of demand paths. With heuristic column generation based demand routing, a near optimal routing solution can be obtained by calculating the K-shortest demand paths (i.e., columns) for each commodity demand and then solving a packing MIP maximizing the revenue. The cost can be evaluated with a linear pass through the port calls.
Example Application Programming Interface (API)
[0034] In some implementations, an example shipping network design API can address the complex challenges of the Liner Shipping Network Design and Scheduling Problem (LSNDSP). This problem can include both the design and scheduling of a liner shipping network that aims to minimize operational costs while maximizing operational success with regards to shipping commodities between ports. The network design subproblem can include determining which ports are serviced by the network, allocating the number of vessels for each route, and establishing the routes that vessels will follow. Concurrently, the scheduling subproblem can focus on creating sailing schedules that consider various factors such as the time required to sail between ports, the time taken to load and unload cargo, and the demands for transportation between different ports.
[0035] In some implementations, the API can employ advanced optimization techniques to address the LSNDSP at a scale that has previously been unmanageable. The API can integrate solutions for network design, scheduling, and container routing into a unified framework, which can significantly enhance the efficiency and profitability of shipping operations.
[0036] Methods used in this approach can include a variety of algorithmic strategies. For instance, column generation can be utilized where only a subset of variables is considered initially, with new variables introduced progressively to refine the solution. This technique can be complemented by software tools developed to predict the most effective columns to generate, enhancing the efficiency of the process.
[0037] Furthermore, an example API can implement two primary strategies for solving the problem: Double Column Generation and CP-SAT. Double Column Generation considers network design and container routing as interlinked problems, applying algorithms to generate feasible options and then using linear programming to select the optimal solution. CP-SAT, based on constraint programming, also demonstrates effectiveness in medium-sized networks.
[0038] In some implementations, to enhance scalability, heuristic strategies involving large and variable neighborhood searches are applied. These strategies fix parts of the solution or explore multiple neighborhoods simultaneously, reducing the search space and improving solution quality. This is particularly beneficial for large-scale problems, such as those involving global shipping networks.
[0039] Additionally, the inclusion of transit times, often omitted in previous models due to their complexity, significantly improves the quality of the solutions provided by the API. This consideration ensures more accurate scheduling and routing, which is advantageous for optimizing operational efficiency.
[0040] More particularly, an example API can receive inputs that describe various elements for network design and scheduling. These elements can include ports with specific costs and restrictions related to vessel classes, vessel classes with defined capacities and fleet sizes, and/or leg candidates that represent potential connections between ports over given durations compatible with specific vessel classes. Additionally, the demands between ports can be specified, including freight rates and optional transit time restrictions. Optionally, existing vessel services can also be inputted to the system.
[0041] The output of the API can be a structured response that provides details on vessel services and commodity demand paths. Vessel service schedules can be outlined as sequences of leg candidates, each with specified departure times and assigned vessel classes. Commodity demand paths can be described through sequences of vessel service legs, facilitating a comprehensive understanding of the routing and scheduling within the network. [0042] The API can improve transportation network design by offering a structured method to handle the complexities of shipping logistics. By providing detailed inputs and receiving structured outputs, users can effectively plan and optimize shipping routes and schedules, potentially leading to improved operational efficiency and increased revenue. The API’s ability to incorporate existing vessel services into its calculations allows for enhanced flexibility and adaptability in network planning and execution.
[0043] The following example showcases how to call the example API with the Python requests library, using an API key for authentication.
# exampl e.py import j son import requests
def run_example():
> Calls the OR API to solve a shift scheduling problem.
# Endpoint for the workforce scheduling solver in the OR API. end_point =
"https://optimization.googleapis.eom/vl/shipping:designShippingNetwork"
# Read the API Key from a JSON file with the format:
# {"key": "your_api_key"} with open("credentials.json") as f: credentials = json.load(f) api_key = credentials ["key"]
# Load the JSON file with the request. with open("example_request.json", "r") as f: j son request = j son.load(f)
# Call the API post method. response = requests. post(f '{end_point}?key={api_key}", j son=j son_request)
# Process the response. if response, ok: solution = j son. loads(response. content) with open("example_response.json", "w") as f: json.dump(solution, f, indent=2) print(solution) else: error = j son. loads(response.content)["error"] print(f Status code {error["code"]{: {errorfmessage"]}') if name == " main ": run_example()
[0044] In some implementations, a deadline determines the maximum wall time that a call to the API should take. A user can set both client and server deadlines. In the context of
the OR API, a server deadline is the more useful one as it informs the backend server of how much time it has to receive a request, run the underlying solver, and return a response. In contrast, client deadlines are useful to set the maximum time that the client application (i.e., the application calling the OR API) is going to wait for a response, before timing out.
[0045] The following example code snippet sets both a client and a server deadline in the session headers of the request. The client deadline is set to 60 seconds. The server deadline should be less than the client deadline to account for communication overhead. In the example, the server deadline is set to be 95% of the client deadline, but this can vary depending on the application. Notice that the API key was also moved to the session headers to make the session. post(...) call cleaner.
# Call the API post method, session = requests. Session() client deadline seconds = 60 server deadline seconds = 0.95 * client deadline seconds session. headers = { "Content-Type" : "application/j son", "Connection": "keep-alive", "Keep-Alive": f'timeout={client_deadline_seconds}, max=l", "X-Server-Timeout" : f'{server_deadline_seconds}", "X-Goog-Api-Key": api_key, } response = session.post(end_point, j son=j son request, timeout=client_deadline_seconds) [0046] In some implementations, to manage vessel class compatibility at specific ports due to constraints such as draft limitations or international laws, users can specify costs in the corresponding port only for the allowed vessel class. This can effectively restrict certain vessel classes from operating in ports where they are not permitted, thereby ensuring compliance with regulatory requirements and physical limitations.
[0047] When aiming to forbid transshipment at particular ports, one can set the transshipment cost to an infinite value, or a prohibitively high number. This approach effectively prevents the economic feasibility of transshipment activities at these ports, thereby directing such operations to more suitable locations.
[0048] Regarding demands, the freight rate can encompass various metrics that are significant to the liner shipping company. These metrics can include the economic value of the goods being transported, the environmental impact of the shipping operations, and
customer satisfaction levels. To address scenarios where a demand is not met, a penalty can be incorporated into the freight rate, providing a financial incentive to fulfill all service demands whenever possible.
[0049] The model can handle demands that have the same origin-demand pairs but differ in other specifications. This flexibility allows for a more nuanced approach to managing shipping demands, accommodating variations in shipping requirements under similar origin-destination scenarios.
[0050] Leg candidates offer several advantages over traditional port connections.
They allow for the modeling of multiple trajectories between the same two ports and support arbitrary cost functions for different velocities on the same trajectory. Additionally, leg candidates can include vessel class-specific costs and restrictions, such as those imposed by draft limitations for canals or by international laws. Unlike physical port connections, which can be ambiguous and subject to various interpretations regarding operations, leg candidates provide a clear and unambiguous definition of port connections. This clarity can improve the precision and reliability of network design and scheduling, ensuring that operational decisions are based on well-defined and consistent information.
Example Devices and Systems
[0051] Figure 4 A depicts a block diagram of an example computing system 100 that performs two-level transportation network design using a construction heuristic according to example embodiments of the present disclosure. The system 100 includes a user computing device 102, a server computing system 130, and a training computing system 150 that are communicatively coupled over a network 180.
[0052] The user computing device 102 can be any type of computing device, such as, for example, a personal computing device (e.g., laptop or desktop), a mobile computing device (e.g., smartphone or tablet), a gaming console or controller, a wearable computing device, an embedded computing device, or any other type of computing device.
[0053] The user computing device 102 includes one or more processors 112 and a memory 114. The one or more processors 112 can be any suitable processing device (e.g., a processor core, a microprocessor, an ASIC, an FPGA, a controller, a microcontroller, etc.) and can be one processor or a plurality of processors that are operatively connected. The memory 114 can include one or more non -transitory computer-readable storage media, such as RAM, ROM, EEPROM, EPROM, flash memory devices, magnetic disks, etc., and
combinations thereof. The memory 114 can store data 116 and instructions 118 which are executed by the processor 112 to cause the user computing device 102 to perform operations. [0054] In some implementations, the user computing device 102 can store or include one or more machine-learned models 120. For example, the machine-learned models 120 can be or can otherwise include various machine-learned models such as neural networks (e.g., deep neural networks) or other types of machine-learned models, including non-linear models and/or linear models. Neural networks can include feed-forward neural networks, recurrent neural networks (e.g., long short-term memory recurrent neural networks), convolutional neural networks or other forms of neural networks. Some example machine-learned models can leverage an attention mechanism such as self-attention. For example, some example machine-learned models can include multi-headed self-attention models (e.g., transformer models). Example machine-learned models 120 are discussed with reference to Figure 5. [0055] In some implementations, the one or more machine-learned models 120 can be received from the server computing system 130 over network 180, stored in the user computing device memory 114, and then used or otherwise implemented by the one or more processors 112. In some implementations, the user computing device 102 can implement multiple parallel instances of a single machine-learned model 120.
[0056] Additionally or alternatively, one or more machine-learned models 140 can be included in or otherwise stored and implemented by the server computing system 130 that communicates with the user computing device 102 according to a client-server relationship. For example, the machine-learned models 140 can be implemented by the server computing system 130 as a portion of a web service (e.g., an image service). Thus, one or more models 120 can be stored and implemented at the user computing device 102 and/or one or more models 140 can be stored and implemented at the server computing system 130.
[0057] The user computing device 102 can also include one or more user input components 122 that receives user input. For example, the user input component 122 can be a touch-sensitive component (e.g., a touch-sensitive display screen or a touch pad) that is sensitive to the touch of a user input object (e.g., a finger or a stylus). The touch-sensitive component can serve to implement a virtual keyboard. Other example user input components include a microphone, a traditional keyboard, or other means by which a user can provide user input.
[0058] The server computing system 130 includes one or more processors 132 and a memory 134. The one or more processors 132 can be any suitable processing device (e.g., a processor core, a microprocessor, an ASIC, an FPGA, a controller, a microcontroller, etc.)
and can be one processor or a plurality of processors that are operatively connected. The memory 134 can include one or more non-transitory computer-readable storage media, such as RAM, ROM, EEPROM, EPROM, flash memory devices, magnetic disks, etc., and combinations thereof. The memory 134 can store data 136 and instructions 138 which are executed by the processor 132 to cause the server computing system 130 to perform operations.
[0059] In some implementations, the server computing system 130 includes or is otherwise implemented by one or more server computing devices. In instances in which the server computing system 130 includes plural server computing devices, such server computing devices can operate according to sequential computing architectures, parallel computing architectures, or some combination thereof.
[0060] As described above, the server computing system 130 can store or otherwise include one or more machine-learned models 140. For example, the models 140 can be or can otherwise include various machine-learned models. Example machine-learned models include neural networks or other multi-layer non-linear models. Example neural networks include feed forward neural networks, deep neural networks, recurrent neural networks, and convolutional neural networks. Some example machine-learned models can leverage an attention mechanism such as self-attention. For example, some example machine-learned models can include multi-headed self-attention models (e.g., transformer models). Example models 140 are discussed with reference to Figure 5.
[0061] The user computing device 102 and/or the server computing system 130 can train the models 120 and/or 140 via interaction with the training computing system 150 that is communicatively coupled over the network 180. The training computing system 150 can be separate from the server computing system 130 or can be a portion of the server computing system 130.
[0062] The training computing system 150 includes one or more processors 152 and a memory 154. The one or more processors 152 can be any suitable processing device (e.g., a processor core, a microprocessor, an ASIC, an FPGA, a controller, a microcontroller, etc.) and can be one processor or a plurality of processors that are operatively connected. The memory 154 can include one or more non-transitory computer-readable storage media, such as RAM, ROM, EEPROM, EPROM, flash memory devices, magnetic disks, etc., and combinations thereof. The memory 154 can store data 156 and instructions 158 which are executed by the processor 152 to cause the training computing system 150 to perform
operations. In some implementations, the training computing system 150 includes or is otherwise implemented by one or more server computing devices.
[0063] The training computing system 150 can include a model trainer 160 that trains the machine-learned models 120 and/or 140 stored at the user computing device 102 and/or the server computing system 130 using various training or learning techniques, such as, for example, backwards propagation of errors. For example, a loss function can be backpropagated through the model(s) to update one or more parameters of the model(s) (e.g., based on a gradient of the loss function). Various loss functions can be used such as mean squared error, likelihood loss, cross entropy loss, hinge loss, and/or various other loss functions. Gradient descent techniques can be used to iteratively update the parameters over a number of training iterations.
[0064] In some implementations, performing backwards propagation of errors can include performing truncated backpropagation through time. The model trainer 160 can perform a number of generalization techniques (e.g., weight decays, dropouts, etc.) to improve the generalization capability of the models being trained. In particular, the model trainer 160 can train the machine-learned models 120 and/or 140 based on a set of training data 162.
[0065] In some implementations, if the user has provided consent, the training examples can be provided by the user computing device 102. Thus, in such implementations, the machine-learned model 120 provided to the user computing device 102 can be trained by the training computing system 150 on user-specific data received from the user computing device 102. In some instances, this process can be referred to as personalizing the model. [0066] The model trainer 160 includes computer logic utilized to provide desired functionality. The model trainer 160 can be implemented in hardware, firmware, and/or software controlling a general purpose processor. For example, in some implementations, the model trainer 160 includes program files stored on a storage device, loaded into a memory and executed by one or more processors. In other implementations, the model trainer 160 includes one or more sets of computer-executable instructions that are stored in a tangible computer-readable storage medium such as RAM, hard disk, or optical or magnetic media.
[0067] The network 180 can be any type of communications network, such as a local area network (e.g., intranet), wide area network (e.g., Internet), or some combination thereof and can include any number of wired or wireless links. In general, communication over the network 180 can be carried via any type of wired and/or wireless connection, using a wide
variety of communication protocols (e.g., TCP/IP, HTTP, SMTP, FTP), encodings or formats (e.g., HTML, XML), and/or protection schemes (e.g., VPN, secure HTTP, SSL).
[0068] Figure 4A illustrates one example computing system that can be used to implement the present disclosure. Other computing systems can be used as well. For example, in some implementations, the user computing device 102 can include the model trainer 160 and the training dataset 162. In such implementations, the models 120 can be both trained and used locally at the user computing device 102. In some of such implementations, the user computing device 102 can implement the model trainer 160 to personalize the models 120 based on user-specific data.
[0069] Figure 4B depicts a block diagram of an example computing device 10 that performs two-level transportation network design using a construction heuristic according to example embodiments of the present disclosure. The computing device 10 can be a user computing device or a server computing device.
[0070] The computing device 10 includes a number of applications (e.g., applications 1 through N). Each application contains its own machine learning library and machine- learned model(s). For example, each application can include a machine-learned model. Example applications include a text messaging application, an email application, a dictation application, a virtual keyboard application, a browser application, etc.
[0071] As illustrated in Figure 4B, each application can communicate with a number of other components of the computing device, such as, for example, one or more sensors, a context manager, a device state component, and/or additional components. In some implementations, each application can communicate with each device component using an API (e.g., a public API). In some implementations, the API used by each application is specific to that application.
[0072] Figure 4C depicts a block diagram of an example computing device 50 that performs two-level transportation network design using a construction heuristic according to example embodiments of the present disclosure. The computing device 50 can be a user computing device or a server computing device.
[0073] The computing device 50 includes a number of applications (e.g., applications 1 through N). Each application is in communication with a central intelligence layer.
Example applications include a text messaging application, an email application, a dictation application, a virtual keyboard application, a browser application, etc. In some implementations, each application can communicate with the central intelligence layer (and model(s) stored therein) using an API (e.g., a common API across all applications).
[0074] The central intelligence layer includes a number of machine-learned models. For example, as illustrated in Figure 4C, a respective machine-learned model can be provided for each application and managed by the central intelligence layer. In other implementations, two or more applications can share a single machine-learned model. For example, in some implementations, the central intelligence layer can provide a single model for all of the applications. In some implementations, the central intelligence layer is included within or otherwise implemented by an operating system of the computing device 50.
[0075] The central intelligence layer can communicate with a central device data layer. The central device data layer can be a centralized repository of data for the computing device 50. As illustrated in Figure 4C, the central device data layer can communicate with a number of other components of the computing device, such as, for example, one or more sensors, a context manager, a device state component, and/or additional components. In some implementations, the central device data layer can communicate with each device component using an API (e.g., a private API).
Example Model Arrangements
[0076] Figure 5 depicts a block diagram of an example model 500 according to example embodiments of the present disclosure. In some implementations, the model 500 receives a set of inputs comprising vessel services 502, the vessel services 502 being associated with ports 504. The ports 504 can be associated with a demand for a container where the container is routed to the ports 504 via at least part of one or more of the vessel services 502. For instance, the model 500 can obtain the vessel services 502, where each vessel service of the vessel service 502 associated with two ports of the ports 504. In some examples, the vessel services 502 can include an outbound trip from a first port of the two ports to a second port of the two ports and an inbound trip from the second port to the first port. For each vessel service of the vessel services 502, the model 500 can insert candidate ports to the vessel service (e.g., inserting the candidate port at a location between the two ports to minimize additional travel time for the vessel service, or switching an order of ports of the vessel service) and add the vessel service with the candidate port to a group of vessel services 506 with candidate ports inserted into the vessel services. The model 500 can evaluate the group of vessel services 506 to determine the highest performing vessel services in the group of vessel services 506 and sample a subset of vessel services 508 from the group of vessel services 506 (e.g., random sampling). As a result, the model 500 can output the highest performing vessel service 510 (e.g., the vessel service with the lowest operating cost).
The model 500 may output the highest performing vessel service 510 after stopping evaluation of the vessel services in the group of vessel services 506 when a maximum number of used vessel services is reached or when a predetermined amount of time is reached.
Example Methods
[0077] Figure 6 depicts a flow chart diagram of an example method to perform transportation network design according to example embodiments of the present disclosure. Although Figure 6 depicts steps performed in a particular order for purposes of illustration and discussion, the methods of the present disclosure are not limited to the particularly illustrated order or arrangement. The various steps of the method 600 can be omitted, rearranged, combined, and/or adapted in various ways without deviating from the scope of the present disclosure.
[0078] At 602, a computing system obtains a plurality of vessel services, each vessel service of the plurality of vessel services associated with two ports. In some examples, each vessel service of the plurality of vessel services can include an outbound trip from a first port of the two ports to a second port of the two ports and an inbound trip from the second port to the first port.
[0079] At 604, the computing system, for each respective vessel service of the plurality of vessel services and for each respective candidate port of a plurality of candidate ports: inserts the respective candidate port to the respective vessel service, and adds the respective vessel service with the respective candidate port to a group of vessel services with candidate ports inserted. In some examples, inserting the respective candidate port to the respective vessel service can include inserting the respective candidate port at a location between the two ports. In another example, inserting the respective candidate port at the location between the two ports can include inserting the respective candidate port at a position that minimizes additional travel time for the respective vessel service. In some examples, inserting the respective candidate port to the respective vessel service can include switching an order of ports of the respective vessel service. In another example, the candidate ports are associated with a demand for a container, wherein the container is routed to the candidate ports via at least part of one or more vessel services from among the plurality of vessel services.
[0080] At 606, the computing system, for each respective vessel service of the plurality of vessel services: evaluates each vessel service of the group of vessel services with
candidate ports inserted to determine highest performing vessel services in the group of vessel services with candidate ports, and samples a subset of vessel services from the group of vessel services with candidate ports, wherein the plurality of vessel services comprises the subset of vessel services. In some examples, sampling the subset of vessel services from the group of vessel services with candidate ports can include performing a random sampling technique on the group of vessel services with candidate ports. In some examples, the computing system can stop evaluation of each vessel service of the group of vessel services with candidate ports inserted when a maximum number of used vessel services is reached. In other examples, the computing system can stop evaluation of each vessel service of the group of vessel services with candidate ports inserted when a predetermined amount of time is reached.
[0081] At 608, the computing system outputs the highest performing vessel service. In some examples, the highest performing vessel service can include a vessel service with a lowest operating cost. In other examples, the computing system can output a profit associated with the highest performing vessel service, wherein the highest performing vessel service comprises a vessel service with a maximum profit given a vessel class, a number of available vessels, a fixed sailing speed, and an initial port.
Additional Disclosure
[0082] The technology discussed herein makes reference to servers, databases, software applications, and other computer-based systems, as well as actions taken and information sent to and from such systems. The inherent flexibility of computer-based systems allows for a great variety of possible configurations, combinations, and divisions of tasks and functionality between and among components. For instance, processes discussed herein can be implemented using a single device or component or multiple devices or components working in combination. Databases and applications can be implemented on a single system or distributed across multiple systems. Distributed components can operate sequentially or in parallel.
[0083] The technology described herein may be implemented on various computing systems, each suitable for distinct aspects of transportation network design. In some implementations, personal computers and workstations can utilize the software, equipped with CPUs, RAM, storage drives, and networking hardware, operating under systems such as Windows, macOS, or Linux. Additionally, mobile devices, including smartphones and tablets that comprise processors, memory, and wireless communication capabilities, can support
mobile-specific applications under iOS or Android. This configuration provides a platform for the management and monitoring of transportation networks while mobile.
[0084] Server systems, which can include individual servers in data centers as well as extensive cloud computing networks, provide solutions for managing the complex calculations and data processing involved in transportation network design. These servers are characterized by their powerful processing capabilities, extensive memory, and significant storage capacity, which can be beneficial for server-side computations.
[0085] Embedded systems can be applied in various fields, including loT devices, automotive systems, and industrial applications within the transportation sector. These systems typically operate on specialized hardware and can include real-time operating systems tailored for designated tasks, such as managing traffic in real-time and tracking vehicles.
[0086] Distributed systems can employ the combined resources of multiple interconnected computers to manage large datasets and complex tasks, which is beneficial in optimizing extensive transportation networks. Hybrid systems integrate elements from various computing environments. They can utilize cloud servers for heavy-duty processing, mobile devices for interface and control, and embedded systems for direct hardware interaction, thus offering a comprehensive solution for transportation network design.
[0087] Each system can be equipped with requisite hardware and software components, such as processors, memory, storage, networking capabilities, operating systems, and particular applications, to facilitate the implementation of the technology. The choice of a suitable computing system may depend on factors including necessary processing power, data management requirements, user interface preferences, and the specific environment of the transportation network’s operation.
[0088] While the present subject matter has been described in detail with respect to various specific example embodiments thereof, each example is provided by way of explanation, not limitation of the disclosure. Those skilled in the art, upon attaining an understanding of the foregoing, can readily produce alterations to, variations of, and equivalents to such embodiments. Accordingly, the subject disclosure does not preclude inclusion of such modifications, variations and/or additions to the present subject matter as would be readily apparent to one of ordinary skill in the art. For instance, features illustrated or described as part of one embodiment can be used with another embodiment to yield a still further embodiment. Thus, it is intended that the present disclosure cover such alterations, variations, and equivalents.
Claims
1. A computer-implemented method for transportation network design, the method performed by one or more computing devices and comprising: obtaining, by the one or more computing devices, a plurality of vessel services, each vessel service of the plurality of vessel services associated with a number of ports; for each respective vessel service of the plurality of vessel services: for each respective candidate port of a plurality of candidate ports: inserting, by the one or more computing devices, the respective candidate port to the respective vessel service; and adding, by the one or more computing devices, the respective vessel service with the respective candidate port to a group of vessel services with candidate ports inserted; evaluating, by the one or more computing devices, each vessel service of the group of vessel services with candidate ports inserted to determine highest performing vessel services in the group of vessel services with candidate ports; and sampling, by the one or more computing devices, a subset of vessel services from the group of vessel services with candidate ports, wherein the plurality of vessel services comprises the subset of vessel services; and outputting, by the one or more computing devices, a highest performing vessel service.
2. The computer-implemented method of any preceding claim, wherein each vessel service of the plurality of vessel services comprises an outbound trip from a first port of the two ports to a second port of the two ports and an inbound trip from the second port to the first port.
3. The computer-implemented method of any preceding claim, wherein inserting the respective candidate port to the respective vessel service comprises inserting the respective candidate port at a location between two ports included in the number of ports.
4. The computer-implemented method of claim 3, wherein inserting the respective candidate port at the location between the two ports comprises inserting the
respective candidate port at a position that minimizes additional travel time for the respective vessel service.
5. The computer-implemented method of any preceding claim, wherein inserting the respective candidate port to the respective vessel service comprises switching an order of ports of the respective vessel service.
6. The computer-implemented method of any preceding claim, wherein sampling the subset of vessel services from the group of vessel services with candidate ports comprises performing a random sampling technique on the group of vessel services with candidate ports.
7. The computer-implemented method of any preceding claim, further comprising stopping evaluation of each vessel service of the group of vessel services with candidate ports inserted when a maximum number of used vessel services is reached.
8. The computer-implemented method of any preceding claim, further comprising stopping evaluation of each vessel service of the group of vessel services with candidate ports inserted when a predetermined amount of time is reached.
9. The computer-implemented method of any preceding claim, wherein the highest performing vessel service comprises a vessel service with a lowest operating a cost.
10. The computer-implemented method of any preceding claim, further comprising outputting a profit associated with the highest performing vessel service, wherein the highest performing vessel service comprises a vessel service with a maximum profit given a vessel class, a number of available vessels, a fixed sailing speed, and an initial port.
11. The computer-implemented method of any preceding claim, wherein the candidate ports are associated with a demand for a container, wherein the container is routed to the candidate ports via at least part of one or more vessel services from among the plurality of vessel services.
12. A computing system for transportation network design, the computing system comprising: one or more processors; and one or more non-transitory computer-readable media that collectively store instructions that, when executed by the one or more processors, cause the computing system to perform operations, the operations comprising: obtaining a plurality of vessel services, each vessel service of the plurality of vessel services associated with a number of ports; for each respective vessel service of the plurality of vessel services: for each respective candidate port of a plurality of candidate ports: inserting the respective candidate port to the respective vessel service; and adding the respective vessel service with the respective candidate port to a group of vessel services with candidate ports inserted; evaluating each vessel service of the group of vessel services with candidate ports inserted to determine highest performing vessel services in the group of vessel services with candidate ports; and sampling a subset of vessel services from the group of vessel services with candidate ports, wherein the plurality of vessel services comprises the subset of vessel services; and outputting a highest performing vessel service.
13. The computing system of claim 12, wherein each vessel service of the plurality of vessel services comprises an outbound trip from a first port of the number of ports to a second port of the number of ports and an inbound trip from the second port to the first port.
14. The computing system of claim 12 or 13, wherein inserting the respective candidate port to the respective vessel service comprises inserting the respective candidate port at a location between two ports included in the number of ports.
15. The computing system of claim 14, wherein inserting the respective candidate port at the location between the two ports comprises inserting the respective candidate port at a position that minimizes additional travel time for the respective vessel service.
16. The computing system of any of claims 12-15, wherein sampling the subset of vessel services from the group of vessel services with candidate ports comprises performing a random sampling technique on the group of vessel services with candidate ports.
17. The computing system of any of claims 12-16, further comprising stopping evaluation of each vessel service of the group of vessel services with candidate ports inserted when a maximum number of used vessel services is reached.
18. The computing system of any of claims 12-17, further comprising stopping evaluation of each vessel service of the group of vessel services with candidate ports inserted when a predetermined amount of time is reached.
19. The computing system of any of claims 12-18, wherein the highest performing vessel service comprises a vessel service with a lowest operating a cost.
20. One or more non-transitory computer-readable media that collectively store instructions that, when executed by one or more processors of a computing system, cause the computing system to perform operations, the operations comprising: obtaining a plurality of vessel services, each vessel service of the plurality of vessel services associated with two ports; for each respective vessel service of the plurality of vessel services: for each respective candidate port of a plurality of candidate ports: inserting the respective candidate port to the respective vessel service; and adding the respective vessel service with the respective candidate port to a group of vessel services with candidate ports inserted; evaluating each vessel service of the group of vessel services with candidate ports inserted to determine highest performing vessel services in the group of vessel services with candidate ports; and
sampling a subset of vessel services from the group of vessel services with candidate ports, wherein the plurality of vessel services comprises the subset of vessel services; and outputting a highest performing vessel service.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US202463549260P | 2024-02-02 | 2024-02-02 | |
| US63/549,260 | 2024-02-02 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2025166206A1 true WO2025166206A1 (en) | 2025-08-07 |
Family
ID=94733909
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/US2025/014090 Pending WO2025166206A1 (en) | 2024-02-02 | 2025-01-31 | Method for two-level transportation network design using a construction heuristic |
Country Status (1)
| Country | Link |
|---|---|
| WO (1) | WO2025166206A1 (en) |
-
2025
- 2025-01-31 WO PCT/US2025/014090 patent/WO2025166206A1/en active Pending
Non-Patent Citations (3)
| Title |
|---|
| CHRISTIANSEN MARIELLE ET AL: "Liner shipping network design", EUROPEAN JOURNAL OF OPERATIONAL RESEARCH, vol. 286, no. 1, 1 October 2019 (2019-10-01), AMSTERDAM, NL, pages 1 - 20, XP093264300, ISSN: 0377-2217, DOI: 10.1016/j.ejor.2019.09.057 * |
| HUMEAU J ET AL: "ParadisEO-MO: from fitness landscape analysis to efficient local search algorithms", JOURNAL OF HEURISTICS, KLUWER ACADEMIC PUBLISHERS, DORDRECHT, NL, vol. 19, no. 6, 25 June 2013 (2013-06-25), pages 881 - 915, XP035370596, ISSN: 1381-1231, [retrieved on 20130625], DOI: 10.1007/S10732-013-9228-8 * |
| KARSTEN CHRISTIAN VAD ET AL: "Time constrained liner shipping network design", TRANSPORTATION RESEARCH PART E: LOGISTICS AND TRANSPORTATION REVIEW, vol. 105, 12 April 2016 (2016-04-12), pages 152 - 162, XP085173362, ISSN: 1366-5545, DOI: 10.1016/J.TRE.2016.03.010 * |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US20230169448A1 (en) | Delivery prediction generation system | |
| US10655975B2 (en) | System and method for routing optimization | |
| US11210625B2 (en) | Hybrid delivery platform for regulated products | |
| Vanderfeesten et al. | Product-based workflow support | |
| Rimélé et al. | Robotic mobile fulfillment systems: a mathematical modelling framework for e-commerce applications | |
| Mishra et al. | Cloud-based multi-agent architecture for effective planning and scheduling of distributed manufacturing | |
| Gharehgozli et al. | Collaborative solutions for inter terminal transport | |
| Dkhil et al. | Multi-objective optimization of the integrated problem of location assignment and straddle carrier scheduling in maritime container terminal at import | |
| Ma et al. | Stochastic programming approach for unidirectional quay crane scheduling problem with uncertainty | |
| Pratap et al. | Integrated scheduling of rake and stockyard management with ship berthing: a block based evolutionary algorithm | |
| Zeng et al. | Disruption recovery model for berth and quay crane scheduling in container terminals | |
| Kmiecik | Creating a genetic algorithm for third-party logistics’ warehouse delivery scheduling via a large language model | |
| CN115759657A (en) | Warehouse truck scheduling method and device, computer equipment and readable storage medium | |
| US20240220926A1 (en) | Techniques for training a neural network to dynamically predict order fulfillment | |
| Xu et al. | Empty container repositioning problem using a reinforcement learning framework with multi-weight adaptive reward function | |
| Triki et al. | Pre-auction lane selection in an integrated production–distribution planning problem | |
| Kalina et al. | Agents toward vehicle routing problem with time windows | |
| Hartama et al. | The cumulative capacitated vehicle routing problem with time-dependent on humanitarian logistics for disaster management | |
| Yan et al. | A customer selection and vehicle scheduling model for moving companies | |
| Jeong et al. | Scheduling operations of a rail crane and container deliveries between rail and port terminals | |
| Dávila de León et al. | Disruption management approaches for berth scheduling in bulk terminals | |
| US20230419244A1 (en) | Using data analytics to optimize logistics within product distribution network | |
| Fikejz et al. | Modification of the Clarke and wright algorithm with a dynamic savings matrix | |
| Sinha et al. | Regionalize and Scale: Amazon’s Fulfillment Network Design for Faster and Cheaper Delivery | |
| WO2025194095A1 (en) | Transportation network design and scheduling using double-column generation |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 25707622 Country of ref document: EP Kind code of ref document: A1 |