Storage plan support system and program
The storage plan support system uses a client-server configuration with mathematical optimization to generate efficient container storage plans, addressing the challenge of optimizing container transport operations with minimal system modifications.
Patent Information
- Application Number
- JP2024022395
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-02-16
- Publication Date
- 2025-08-28
- Estimated Expiration
- 2044-02-16
Smart Images

Figure 2025126033000001_ABST
Abstract
Description
[Technical Field]
[0001] The present invention relates to a storage planning support system that supports storage planning. [Background technology]
[0002] When transporting by ship, the containers to be loaded onto the ship are first accumulated in a bonded area such as a container yard (hereinafter sometimes simply referred to as a yard) before being loaded onto the ship. In addition, before the containers are loaded onto the ship, some of the containers loaded onto the ship are unloaded at the yard. In addition, containers placed in the yard are relocated as needed. Placing cargo in a yard is called "storage," and planning which containers to store in which locations in the yard is called storage planning.
[0003] Storage plans must consider the conditions necessary for efficient loading and unloading, such as reducing the number of times containers need to be reordered and the distance that cargo handling equipment needs to travel, while also meeting restrictions such as the maximum number of stacked containers and storage regulations (maximum container stacking levels, area restrictions for hazardous materials / refrigerated containers, etc.).As a result, formulating a storage plan is not easy, and even experienced planners find it takes a long time to complete it.
[0004] An example of prior art related to storage planning is the handling method described in Patent Document 1 below. This handling method is a container yard handling method, and is characterized by obtaining information on the operating status of the container handling means in each lane and the number of container stacking levels in each storage location, as well as information on the ship and discharge port on which the stored container will be selectively loaded, each time a container needs to be transported from a ship or an external chassis to the container yard, and determining a container storage position based on this information and storing the container in that container storage position. [Prior art documents] [Patent documents]
[0005] [Patent Document 1] Japanese Patent Application Laid-Open No. 2005-75592 Summary of the Invention [Problem to be solved by the invention]
[0006] In the cargo handling method described in Patent Document 1, a container storage location is determined each time a container transport operation occurs, but repeating such a process may not optimize the container transport operation as a whole. For this reason, a technology that automatically generates an overall storage plan is desired.
[0007] However, it is not easy to incorporate a function that automatically generates a comprehensive storage plan into the container terminal operation systems used at various port facilities, as incorporating such a function would require major modifications to the existing container terminal operation systems.
[0008] An object of one aspect of the present invention is to realize a storage plan support system that is relatively easy to implement and that can automatically generate a storage plan. [Means for solving the problem]
[0009] In order to solve the above-mentioned problems, a storage plan support system according to one aspect of the present invention is a storage plan support system comprising a client device, a server device, and a storage device that stores data for calculating a storage plan, wherein the storage plan is any one of a loading and storage plan that plans a location in a yard to store containers to be loaded onto a ship, an unloading and storage plan that plans a location in the yard to store containers to be unloaded from a ship, and a rearrangement plan that plans a rearrangement of containers stored in the yard to be loaded onto a ship, wherein the client device comprises a client module that receives an input of an instruction to calculate the storage plan and, upon receiving the input, sends a calculation request to the server device, wherein the server device comprises a server module and a calculation engine, and, upon receiving the calculation request, the server module reads out the data from the storage device and instructs the calculation engine to calculate the storage plan, and the calculation engine calculates the storage plan using the read data in accordance with the instruction using a mathematical optimization method.
[0010] In addition, in order to solve the above-mentioned problems, a program according to one aspect of the present invention causes a computer to execute the steps of accepting input of calculation instructions for a storage plan, which is any one of a loading and storage plan that plans a location in a yard to store containers to be loaded onto a ship, an unloading and storage plan that plans a location in a yard to store containers to be unloaded from a ship, and a rearrangement plan that plans the rearrangement of containers stored in the yard to be loaded onto a ship, and transmitting a calculation request to a server device upon accepting the input, receiving the storage plan calculated by the server device using a mathematical optimization method, and accepting input indicating whether or not the received storage plan is adopted.
[0011] In addition, in order to solve the above-mentioned problems, a program according to another aspect of the present invention causes a computer to execute the steps of receiving, from a client device, a calculation request for a storage plan, which is any one of a loading and storage plan that plans a location in a yard to store containers to be loaded onto a ship, an unloading and storage plan that plans a location in a yard to store containers to be unloaded from a ship, and a rearrangement plan that plans a rearrangement of containers stored in the yard to be loaded onto a ship; upon receiving the calculation request, reading out data for calculating the storage plan from a storage device that stores the data; instructing a calculation engine that calculates the storage plan by a mathematical optimization method using the read data to calculate the storage plan; and acquiring the storage plan calculated by the calculation engine and transmitting the acquired storage plan to the client device. [Effects of the Invention]
[0012] According to one aspect of the present invention, it is possible to realize a storage plan support system or the like that is relatively easy to implement and that can automatically generate a storage plan. [Brief explanation of the drawings]
[0013] [Figure 1] 1 is a diagram showing an overview of a container terminal operation system according to an embodiment of the present invention. [Figure 2] FIG. 1 is a diagram illustrating the arrangement of containers in a yard. [Figure 3] 1 is a block diagram showing an example of the configuration of a storage planning support system according to an embodiment of the present invention. [Figure 4] FIG. 10 is a diagram showing an example of a UI (user interface) screen that accepts input of input data for calculating a storage plan. [Figure 5] FIG. 10 is a diagram showing an example of a UI screen for accepting input of other input data for calculating a storage plan. [Figure 6] FIG. 10 is a diagram showing an example of a UI screen for receiving input of further input data for calculating a storage plan. [Figure 7] FIG. 10 is a diagram showing an example of a UI screen presenting a storage plan. [Figure 8] FIG. 10 is a diagram showing an example of a UI screen for accepting input of input data for calculating an unloading and storage plan. [Figure 9] FIG. 10 is a diagram showing an example of a UI screen presenting a frying and storage plan. [Figure 10] FIG. 10 is a diagram illustrating an example of a UI screen that presents a reallocation plan. [Figure 11] FIG. 10 is a diagram illustrating another example of a UI screen presenting a reallocation plan. [Figure 12] 10 is a flowchart illustrating an example of a process executed by a client device. [Figure 13] FIG. 10 is a diagram illustrating an example of input data that the client module transmits to the server device. [Figure 14] 10 is a flowchart illustrating an example of a process executed by the server device. DETAILED DESCRIPTION OF THE INVENTION
[0014] [Container terminal operation system configuration] A container terminal operation system 100 including a client device 3 according to this embodiment will be described with reference to Fig. 1. Fig. 1 is a diagram showing an overview of the container terminal operation system 100. Fig. 1 also shows a server device 2 according to this embodiment.
[0015] As shown in the figure, the container terminal operation system 100 includes an EDI (Electronic Data Interchange) server 5 for linking with external systems, a storage device 4 for storing various data in the container terminal operation system 100, and a client device 3. The client device 3 is a device included in the container terminal operation system 100 that manages storage plans. Details of the storage plans will be described later.
[0016] The container terminal operation system 100 mainly has four functions: VP (Vessel Planning) 11, YP (Yard Planning) 12, YO (Yard Operation) 13, and TGS (Truck Gate System) 14.
[0017] More specifically, VP11 is a function that manages information about the ship that is the target of container unloading and loading, and the work plan for unloading and loading containers, while taking into consideration the balance of the ship and the running of the cargo handling equipment. YP12 is a function that manages the position of containers within the yard (also called a container yard) and the work plan within the yard. YO13 is a function that manages work instructions and work results for the cargo handling equipment. TGS14 is a function that manages the entry and exit of external trailers at the entrance and exit of the terminal. These functions are realized by executing software on an information processing device, and the client device 3 is an information processing device that realizes the YP12 function out of the above four functions.
[0018] The storage plan support system 7, which will be described later, includes a server device 2, a client device 3, and a storage device 4, and is configured so that an automatic storage plan calculation function is added to the YP 12 by the server device 2. This makes it possible to introduce the automatic storage plan calculation function into the YP 12 with minimal modifications to the existing container terminal operation system.
[0019] [Regarding yard management methods] In a yard, many sections are set up to store and manage a large number of containers, and rules are established for arranging containers in each section. The arrangement of containers in a yard will be explained based on Figure 2. Figure 2 is a diagram for explaining the arrangement of containers in a yard.
[0020] A yard has multiple "lanes" set up. In 201 of FIG. 2, the lanes set up in the yard are shown as an arrangement of multiple rectangular cells, and specifically, two lanes, Lane A and Lane B, are shown. Of these, Lane A is indicated by "LN." Containers are placed along these lanes. In 201 of FIG. 2, the vertical direction is the z-axis, the direction in which one lane extends is the x-axis, and the direction in which multiple lanes are lined up is the y-direction. In the following description, the z-axis direction is also referred to as the tier direction, the y-axis direction as the row direction, and the x-axis direction as the bay direction.
[0021] By arranging containers along the lanes, cargo handling equipment (such as an RTG (Rubber Tired Gantry Crane)) can perform cargo handling operations within a single lane by moving in only one direction. For example, if the operation is to move a container within lane A (lane LN), the RTG only needs to move in the x-axis direction.
[0022] The lanes are divided in the x-axis direction, and each division is represented by a cell in 201 in Figure 2. A number is also assigned to each cell. This division in the x-axis direction is called a bay, and the number assigned to a bay is called a bay number. Multiple containers can be placed in one bay.
[0023] 202 in FIG. 2 shows an example of the arrangement of containers in lane LN. In 202 in FIG. 2, one rectangular parallelepiped represents one container. That is, in the example of 202 in FIG. 2, six containers are arranged in the row direction and four containers are arranged in the tier direction in each of Bays 1 to 3, for a total of 24 containers arranged per bay. The container at the very back and top of Bay 1 shown in 202 in FIG. 2 is container C1.
[0024] The placement of containers in each bay can be represented by multiple cells such as those shown in 203 in Figure 2. In the example of 203 in Figure 2, the rectangle showing the outer edge of the area in Bay 1 where containers can be placed is divided into six equal parts in the row direction and four equal parts in the tier direction, defining 24 rectangular cells. Each cell can be identified by a combination of its position in the row direction and its position in the tier direction. In the following, the value indicating the position in the row direction will be referred to as the row number, and the value indicating the position in the tier direction will be referred to as the tier number. The row number can also be referred to as the y coordinate, and the tier number as the z coordinate. In the following, the placement of containers in one bay represented by multiple cells will be referred to as a bay map.
[0025] The 24 cells shown in 203 in Fig. 2 correspond to the 24 containers arranged in Bay 1. For example, container C1 shown in 202 in Fig. 2 corresponds to the cell marked "C1" in 203. For example, if the row number and tier number of the cell at the bottom right of 202 in Fig. 2 are 1 and 1, respectively, this cell will be expressed as row number 6 and tier number 4.
[0026] In this way, the location of containers in each bay can be expressed by the row number and tier number, and the location of each container in one lane can be expressed by adding the bay number to these numbers. For example, the location of container C1 in Bay 1 is expressed by a combination of three numbers: bay number = 1, row number = 6, and tier number = 4. This location can also be expressed in coordinate format, such as (1, 6, 4).
[0027] [Storage Plan] Storage plans in YP12 can be classified into three types: (1) loading storage plans, (2) unloading storage plans, and (3) relocation plans.
[0028] (1) In the stowage and storage plan, the locations in the yard where containers to be loaded onto ships will be stored are planned. In the stowage and storage plan, the storage locations of containers to be loaded onto ships are determined for each group of containers that share the same POD (port of discharge) and attribute information (for example, size or container type). Examples of container types include containers that hold dangerous goods, refrigerated containers, and special containers.
[0029] (2) In the unloading and storage plan, locations in the yard for containers unloaded from ships are planned. In the unloading and storage plan, storage locations for unloaded containers are determined for each group of containers that share the above-mentioned attribute information.
[0030] (3) The relocation plan involves planning the relocation of containers stored in the yard (i.e., containers to be loaded onto a ship). Relocation is generally carried out immediately before cargo handling (unloading from the ship and loading onto the ship) after the (1) loading and storage plan and (2) unloading and storage plan have been decided. Note that "ship" refers to the ship that is the subject of the storage plan.
[0031] [Storage Planning Support System Configuration] The configuration of the storage plan support system 7 according to this embodiment will be described with reference to Fig. 3. Fig. 3 is a block diagram showing an example of the configuration of the storage plan support system 7. As shown in the figure, the storage plan support system 7 includes a server device 2, a client device 3, and a storage device 4. As described with reference to Fig. 1, the client device 3 and the storage device 4 are also components of the container terminal operation system 100.
[0032] As described above, the server device 2 is a device for adding on a function for automatically calculating a storage plan to the YP12. As shown in the figure, the server device 2 includes a server module 21 and a calculation engine 22. The functions of these components can all be realized by software. Note that the calculation engine 22 may be external to the server device 2. Also, a different calculation engine 22 may be used for each type of storage plan.
[0033] As described above, the client device 3 is a device that realizes the functions of the YP 12. As shown in the figure, the client device 3 includes a client module 31 and a user interface 32. The functions of these components can all be realized by software.
[0034] The client module 31 receives an input of a storage plan calculation instruction from a user (e.g., a storage planner) of the storage plan support system 7 via the user interface 32. Then, upon receiving the input, the client module 31 transmits a storage plan calculation request to the server device 2.
[0035] When inputting storage plan calculation instructions, users can also input the calculation conditions for the three types of storage plans mentioned above. This ensures flexibility in creating plans through automatic calculation, making it possible to create storage plans that flexibly respond to factors such as the size of the ship and yard operating rules.
[0036] When the server module 21 receives a calculation request from the client module 31, it reads data for calculating a storage plan from the storage device 4 and instructs the calculation engine 22 to calculate the storage plan. Details of the data for calculating the storage plan will be described later.
[0037] The calculation engine 22 calculates a storage plan by a mathematical optimization method using the data read from the storage device 4 in accordance with instructions from the server module 21. The calculation engine 22 that calculates a storage plan by a mathematical optimization method may be, for example, a mathematical optimization solver. By applying the mathematical optimization method, it becomes possible to quantitatively evaluate the quality of a storage plan and generate an optimal storage plan. Furthermore, in calculating the storage plan, it is possible to set constraint conditions in advance, and by setting the constraint conditions, a storage plan that satisfies the constraint conditions is generated.
[0038] It is not necessary to calculate all of the above-mentioned three types of storage plans using a mathematical optimization method. For example, it is also possible to calculate some of the above-mentioned three types of storage plans using a rule base for calculating the storage plans.
[0039] Then, the server module 21 acquires the storage plan calculated by the calculation engine 22 and transmits the acquired storage plan to the client device 3. As a result, the storage plan is output to an output device (not shown) that is included in the client device 3 or connected to the client device 3. The storage plan may be output in any manner. For example, the storage plan may be displayed, printed, or output as audio. An example of displaying and outputting the storage plan on a display unit (not shown) included in the client device 3 will be described below.
[0040] Furthermore, when the storage plan transmitted to the client device 3 is adopted by the user, the server module 21 stores the storage plan in the storage device 4. In this way, the server module 21 also has the function of registering the calculation results of the calculation engine 22 in the storage device 4. Furthermore, as described above, the server module 21 also has the function of extracting information necessary for the storage plan from the storage device 4 of the container terminal operation system 100. In other words, the server module 21 functions as an interface connecting the user and the container terminal operation system 100.
[0041] As described above, the storage plan support system 7 includes a client device 3, a server device 2, and a storage device 4 that stores data for calculating a storage plan. The storage plan is one of (1) a loading and storage plan that plans a location in the yard where containers to be loaded onto a ship will be stored, (2) an unloading and storage plan that plans a location in the yard where containers to be unloaded from a ship will be stored, and (3) a rearrangement plan that plans a rearrangement of containers stored in the yard to be loaded onto a ship. The client device 3 includes a client module 31 that receives an input of a calculation instruction for the storage plan and, upon receiving the input, transmits a calculation request to the server device 2. The server device 2 includes a server module 21 and a calculation engine 22. Upon receiving the calculation request, the server module 21 reads data for calculating the storage plan from the storage device 4 and instructs the calculation engine 22 to calculate the storage plan. The calculation engine 22 then calculates the storage plan using the read data in accordance with the instruction using a mathematical optimization method. This makes it possible to automatically generate a storage plan. Furthermore, since the function of calculating the storage plan is realized by the server device 2 external to the container terminal operation system 100, modifications to the client device 3 included in the container terminal operation system 100 to accommodate the automatic generation of a storage plan can be minimized. Therefore, with the above configuration, it is possible to realize a storage plan support system that is relatively easy to introduce and that can automatically generate a storage plan.
[0042] [Regarding constraints] As described above, when inputting a calculation instruction for a storage plan, the user can input constraints for the storage plan. For example, the user can input constraints to be used in the optimization calculation for the storage plan calculated by the optimization calculation. Hereinafter, the constraints input by the user will be referred to as "first constraints."
[0043] The client module 31 receives input of a first constraint condition for calculating a storage plan via the user interface 32. Then, the client module 31 transmits the received first constraint condition to the server device 2. The server module 21 provides the first constraint condition transmitted from the client module 31 to the calculation engine 22. Then, the calculation engine 22 calculates a storage plan that satisfies the provided first constraint condition. This allows the user to generate a storage plan that satisfies the first constraint condition input by the user.
[0044] Furthermore, the data for calculating the storage plan stored in the storage device 4 may include predetermined constraint conditions (hereinafter referred to as second constraint conditions) for calculating the storage plan. In this case, the calculation engine 22 calculates a storage plan that satisfies the second constraint conditions. In other words, by storing the second constraint conditions in the storage device 4 in advance, the storage plan support system 7 can generate a storage plan that satisfies the second constraint conditions. For example, constraint conditions that cannot be changed by the user can be stored in the storage device 4 as second constraint conditions.
[0045] Furthermore, when the second constraint condition is stored in the storage device 4 and the first constraint condition is input, the calculation engine 22 calculates a storage plan that satisfies both the first constraint condition and the second constraint condition. This makes it possible to generate a storage plan that satisfies both the second constraint condition stored in advance and the first constraint condition input by the user.
[0046] It should be noted that, depending on the constraint conditions used and the calculation performance of the calculation engine 22, it is conceivable that a certain amount of waiting time may occur from the start of the optimization calculation until the storage plan is calculated and presented to the user. For this reason, after transmitting a calculation request to the calculation engine 22, the server module 21 may obtain information indicating the progress of the calculation of the storage plan from the calculation engine 22. Then, the server module 21 may transmit the obtained information indicating the progress to the client device 3.
[0047] As a result, the client module 31 receives the information and displays the progress status on the display unit based on the information, allowing the user to recognize the progress status of the calculation. The display mode of the progress status is not particularly limited as long as it allows the user to recognize the progress status. For example, the client module 31 may display the progress status as a numerical value between 0% and 100%, with the progress status at the start of the calculation being 0% and the progress status at the completion of the calculation being 100%. Furthermore, if the calculation by the calculation engine 22 is unsuccessful, the server module 21 may transmit information indicating the error content to the client device 3. As a result, the client module 31 receives the information and displays the error content on the display unit based on the information, allowing the user to recognize the error content.
[0048] [Regarding the order of storage plans] The storage planning support system 7 can calculate each of the three types of storage plans described above independently. For example, the user can (1) not have the storage planning support system 7 calculate the loading storage plan, but (2) have the storage planning support system 7 calculate the unloading storage plan.
[0049] However, the three types of storage plans are often executed in numerical order, and the contents of a storage plan that is executed earlier and stored in the storage device 4 may affect storage plans that are executed later. For this reason, it is preferable to store the storage plans in the storage device 4 in the following order:
[0050] For example, suppose that the client module 31 receives an input indicating the adoption of the (1) stacking and storage plan calculated by the calculation engine 22, and in response to this, the server module 21 stores the stacking and storage plan in the storage device 4. In this case, it is preferable to have the calculation engine 22 calculate the (3) rearrangement plan after the stacking and storage plan is stored in the storage device 4. Then, it is preferable that the server module 21 stores the (3) rearrangement plan in the storage device 4 in response to the client module 31 receiving an input indicating the adoption of the rearrangement plan calculated by the calculation engine 22.
[0051] Furthermore, when the (2) unloading and storage plan is stored in the storage device 4, it is preferable to have the calculation engine 22 calculate the (3) rearrangement plan after the operation plan is stored in the storage device 4. Then, it is preferable that the server module 21 stores the rearrangement plan in the storage device 4 in response to the client module 31 receiving an input indicating the adoption of the rearrangement plan calculated by the calculation engine 22.
[0052] According to the above configuration, the calculation results of the stacking and storage plan or the unloading and storage plan executed first can be reflected in the calculation of the rearrangement plan executed thereafter. This makes it possible to obtain appropriate calculation results for each storage plan. Of course, the calculation engine 22 may be made to calculate the (3) rearrangement plan after both the calculation results of the stacking and storage plan and the unloading and storage plan have been stored in the storage device 4.
[0053] The storage plan support system 7 may also accept user corrections to the storage plan calculated by the calculation engine 22 and stored in the storage device 4. By providing a function for manually adjusting the storage plan rather than relying entirely on automatic calculations, it is possible to create a storage plan that meets the user's intentions down to the smallest detail. It also makes it possible to respond to irregular situations such as HDS, temporary landing, adjustment of storage locations for special containers, and changes to bookings and manifests. HDS stands for Hot Delivery Service, a service that prioritizes cargo handling and customs clearance and delivers cargo as quickly as possible. Booking refers to a reservation of space, and a manifest refers to a list of the ship's cargo. In storage planning, bookings are used to identify containers to be loaded, and manifests are used to identify containers to be unloaded.
[0054] However, if a correction is accepted, it may happen that the correction will affect the subsequent storage plan. When a correction that will affect the subsequent storage plan is accepted, it is preferable to process it as follows.
[0055] That is, in response to receiving an input indicating the adoption of the (1) storage plan calculated by the calculation engine 22, the client module 31 may read out the storage plan stored in the storage device 4 by the server module 21. Then, the client module 31 may receive an input to modify the information included in the read storage plan, and store the modified storage plan in the storage device 4. The process of storing the modified storage plan in the storage device 4 may be performed directly by the client module 31, or may be performed by the server device 2.
[0056] In this case, it is preferable that the calculation engine 22 uses data read from the storage device 4 in which the corrected stacking and storage plan is stored when calculating the (3) rearrangement plan. This allows the content of the corrected (1) stacking and storage plan to be reflected in the calculation of the (3) rearrangement plan.
[0057] Similarly, the client module 31 may (2) accept a modification of the unloading and storage plan and store the modified unloading and storage plan in the storage device 4. In this case, it is preferable that the calculation engine 22 uses data read from the storage device 4 in which the modified unloading and storage plan is stored when calculating (3) the relocation plan.
[0058] (1) Storage Plan (Accept input data: ship designation) A user may input some or all of the input data for causing the calculation engine 22 to calculate the storage plan. In this case, the client module 31 may, for example, display a predetermined UI screen on the display unit to accept the input of the input data. Figure 4 is a diagram showing an example of a UI screen for accepting the input of input data for calculating the storage plan.
[0059] UI screen 400 shown in Figure 4 is a UI screen for selecting a vessel to be the subject of a stowage plan. UI screen 400 displays a check box 401 for selecting whether to specify a "CY OPEN" or "ETA" date, an input field 402 for entering a date, and a list of candidate vessels 403. "CY OPEN" is the start date of the period during which containers can be brought into the yard, and "ETA" is an abbreviation for Estimated Time of Arrival, which is the scheduled arrival date of the vessel.
[0060] Here, suppose that the user checks checkbox 401 and inputs desired dates (start and end dates) into the two drop-down lists in input item 402. In response to this input operation, client module 31 extracts from the list of all selectable ships those ships whose CY OPEN or ETA falls within the period indicated by the start and end dates, and displays them in list 403. The list of all selectable ships can be obtained from storage device 4. In addition, "unloading voyage" in list 403 is identification information assigned to a series of unloading operations performed on the target ship, and "loading voyage" is identification information assigned to a series of loading operations performed on the target ship.
[0061] When the user selects a desired ship from the list 403, for example, by clicking the mouse, and selects the selection button B1, the client module 31 determines the ship selected by the user as the ship to be the target of the stowage plan in response to this input operation. Note that when the close button B2 is selected, the client module 31 ends the display of the UI screen 400.
[0062] In this way, the UI screen 400 allows the user to easily select a desired ship as a main ship from among a large number of ships. Note that the UI for selecting a main ship is not limited to this example. For example, the client module 31 may accept the designation of the main ship via another UI screen, or may accept the designation of the main ship using another input format such as voice input.
[0063] (Accept input data: number of containers / optimization calculation time / placement rules) The client module 31 may also accept input data other than the designation of the vessel. For example, after accepting the designation of the vessel via the above-described UI screen 400, the client module 31 may display the UI screen 500 shown in Fig. 5 on the display unit. Fig. 5 is a diagram showing an example of a UI screen that accepts the input of other input data for calculating a stowage plan.
[0064] The UI screen 500 is a UI screen that accepts input of the number of containers to be stored in the storage plan, the upper limit time for the optimization calculation, and the arrangement rules (rules for the order of arrangement) of the containers to be stored. The UI screen 500 includes three display areas 501 to 503. Note that these display areas are each intended to accept different input data. The UI screens that accept each input data do not necessarily need to be combined into one UI screen, and an independent UI screen may be displayed for each input data.
[0065] Display area 501 is a display area for information about the ship that is the subject of the loading and storage plan. In addition to the ship ID, which is the identification information of the ship, and the above-mentioned CY OPEN, display area 501 displays "ETD" and "VOY." "ETD" stands for Estimated Time of Departure, which is the scheduled departure date. Furthermore, "VOY" corresponds to the above-mentioned "loading voyage." As explained based on FIG. 4, the user can specify a ship, and when the user specifies a ship, information about the specified ship is displayed in display area 501.
[0066] A table showing various information related to the containers to be stored is also displayed in the display area 501. Specifically, the table displayed in the display area 501 shows the POD, size, number of containers, etc. of the containers to be stored. This information may be stored in the storage device 4 in association with the ship, for example.
[0067] Here, the client module 31 may accept user modifications to various pieces of information displayed in the table. For example, the client module 31 may accept an operation to change the number of containers displayed in the display area 501. The client module 31 may also accept an operation to add a new record to the table or an operation to delete some of the records included in the table.
[0068] Furthermore, the table displayed in the display area 501 shows the number of containers belonging to each container group that share common attributes such as POD and size. This allows the user to generate a stowage plan for each container group that share common attributes such as POD and size. For example, the user can leave the number of containers in the record in the first row of the table displayed in the display area 501 unchanged, but set the number of containers in all other records to zero. This makes it possible to generate a stowage plan that targets only containers that have all of the attributes shown in the record in the first row.
[0069] For example, in actual storage cases, not all containers may be delivered to the yard at the time of CY OPEN, but may be delivered sequentially within the available delivery period. In such cases, it is preferable for the user to modify the number of containers as described above and generate a storage plan for each group of containers with common attributes that are delivered during a specified period. This makes it possible to accommodate operations where the storage area is planned to gradually expand as containers are delivered.
[0070] The display area 502 is a display area for accepting the specification of the upper limit time for the optimization calculation. An input box is displayed in the display area 502, and the user can specify the upper limit time for the optimization calculation by inputting a desired value into this input box. When the client module 31 accepts the specification of the upper limit time for the optimization calculation, it transmits input data indicating the specified upper limit time to the server device 2. This causes the calculation engine 22 of the server device 2 to perform the optimization calculation within a range that does not exceed the specified upper limit time. In other words, if the upper limit time is reached before arriving at an optimal solution (i.e., an optimal storage plan), the calculation engine 22 outputs the best solution at that time. By setting an upper limit time, there is a possibility that the output solution will not be a truly optimal solution, but it is possible to avoid an excessively long calculation time.
[0071] Display area 503 is a display area for receiving the specification of an arrangement rule. Multiple arrangement rule candidates (specifically, a total of six: VL, VR, HL, HR, DL, and DR) are displayed in display area 503. Nine 3x3 cells indicating the arrangement rule for that candidate and a radio button are displayed in association with each candidate.
[0072] The nine cells indicating the placement rules indicate the placement of containers in one bay, and each of the nine cells displays a number from 1 to 9. This number indicates the placement order of the containers at the position of that cell. For example, in the VL shown in the display area 503, "1" is displayed in the bottom left cell, and "2" is displayed in the cell immediately above it. These displays indicate that in the first step, a container is placed in the first row at the position with the smallest row number, and in the second step, a container is placed immediately above the container placed in the first step.
[0073] In the example of Figure 5, the radio button VL among the multiple candidates is in a selected state, which indicates that the arrangement rule VL has been selected. Note that the client module 31 may leave all radio buttons in a non-selected state and allow the user to select a desired candidate radio button, or may leave one radio button in a selected state by default. Furthermore, the type of each candidate is arbitrary, and the number of candidates to be presented is also arbitrary. Furthermore, the arrangement rule may be arranged by the user.
[0074] The UI screen 500 also displays four buttons B3 to B6. The area selection button B3 is a button for starting area selection in the storage plan. Area selection will be described later with reference to FIG. 6. The calculation condition setting button B4 is a button for starting setting calculation conditions in the storage plan. The calculation execution button B5 is a button for starting calculation of the storage plan. The back button B6 is a button for ending the display of the UI screen 500 and returning to the state before the UI screen 500 was displayed.
[0075] The display content of the UI screen 500 when the calculation execution button B5 is operated is reflected in the calculation of the storage plan. For example, when the user modifies the number of containers displayed in the display area 501 and operates the calculation execution button B5, the client module 31 transmits input data indicating the modified number of containers to the server device 2. As a result, the calculation engine 22 of the server device 2 performs an optimization calculation using the modified number of containers as a constraint. In other words, the number of containers is an example of a first constraint.
[0076] Similarly, an arrangement rule (in other words, a rule for the arrangement order of containers to be stored) can also be considered as an example of a first constraint. In other words, the client module 31 may further receive an input of a rule for the arrangement order of containers to be stored as a first constraint for the stacking and storage plan, and transmit the received first constraint to the server device 2. This allows the user to generate a stacking and storage plan for arranging containers in a desired order.
[0077] (Input data reception: container storage area) Furthermore, the client module 31 may accept input of input data indicating a storage area for the container. For example, when the area selection button B3 is selected on the above-described UI screen 500, the client module 31 may display a UI screen 600 shown in Fig. 6 on the display unit to accept input of the storage area. Fig. 6 is a diagram showing an example of a UI screen that accepts input of further input data (specifically, a storage area) for calculating a loading and storage plan.
[0078] The UI screen 600 displays an input field 601 for accepting the specification of a berth, a lane display area 602 that displays the lane for which the container storage area is to be specified, and an area confirmation button B7. A berth refers to a predetermined berthing location with facilities for mooring a ship, and in storage planning, refers to a yard management unit. In other words, there may be multiple ship berthing locations in a port, and in such cases, it is necessary to specify which berth to target for the storage plan. For this reason, a berth number is assigned to each berth, and the berth number can be used to specify which berth to target for the storage plan. By selecting the desired berth number from the drop-down list in the input field 601, the user can calculate a storage plan for the berth corresponding to that berth number.
[0079] Furthermore, the client module 31 displays in the lane display area 602 an image showing each lane in the berth having the berth number input in the input field 601. The UI screen 600 in FIG. 6 shows three lanes A to C, and the bays 1 to 50 included in each of these lanes are shown as rectangular cells. Note that a cell with an "X" displayed (for example, cell "4" in lane A) is a cell that is not subject to the loading and storage plan. Such cells can be defined in advance in the storage device 4, or can be set by the user.
[0080] For example, the client module 31 may accept an operation to designate a cell displayed in the lane display area 602 as an operation to designate a bay corresponding to that cell as a storage area for a container. In this case, the client module 31 preferably changes the display mode of the designated cell to a display mode that makes it distinguishable from undesignated cells so that the user can easily recognize the designated cell. For example, in the UI screen 600 of FIG. 6, cell "1" in lane A is an undesignated cell. On the other hand, cells "2," "3," etc. are designated cells, and are displayed filled in a color different from that of the undesignated cells. Then, when the area confirmation button B7 is selected with a cell designated, the client module 31 determines the bay corresponding to the designated cell as a storage area for a container.
[0081] The operation for specifying a cell can be any operation. For example, a drag operation over a series of cells can be used to specify the cells. This allows the user to easily specify multiple cells. Furthermore, the operation for specifying a single cell can be, for example, an operation of clicking the cell with a mouse.
[0082] 5 and 6, the client module 31 may receive input of the number of containers to be stored and the area where the containers to be stored are to be stored as first constraints for the stacking and storage plan, and may transmit the received first constraints to the server device 2. Then, the calculation engine 22 may calculate a stacking and storage plan that satisfies the first constraints. This allows the user to generate a stacking and storage plan in which a desired number of containers are to be stored in a desired area.
[0083] (Presentation of calculation results) The presentation of the stacking and storage plan calculated by the calculation engine 22 will be described with reference to Fig. 7. Fig. 7 is a diagram showing an example of a UI screen that presents the stacking and storage plan calculated by the calculation engine 22. The UI screen 700 shown in Fig. 7 includes a lane display area 701, a bay map display area 702, and an inventory display area 703, as well as an accept button B8 and a reject button B9.
[0084] The lane display area 701 displays an image in which each section in which a container can be placed in the lane that is the subject of the loading and storage plan is represented by a rectangular cell. More specifically, the lane display area 701 displays each section in which a container can be placed in lane A by a total of 28 cells, with four cells in the tier direction and seven cells in the bay direction. Of these, the cells in Bay 4 are displayed in a different color from the other cells, which indicates that a loading and storage plan has been generated for these cells.
[0085] Furthermore, the bay map display area 702 displays a bay map for Bay 4. More specifically, the bay map display area 702 displays a bay map in which each section in Bay 4 where containers can be placed is represented by a total of 20 cells, with four cells in the tier direction and five cells in the row direction. Of these, the cells in Rows 2 to 4 and the cells in Tiers 1 to 3 in Row 5 are displayed in a color different from the other cells, indicating that containers will be stored in these cells. Note that if there are multiple bays for which loading and storage plans have been generated, the client module 31 displays the bay map of a bay selected from the multiple bays in the lane display area 701.
[0086] Additionally, in the bay map above, each cell where a container is to be stored is marked with a number, and this number indicates the order in which the containers will be loaded into those cells. For example, in the loading and storage plan shown in the bay map above, the cell at Row 2, Tier 1 is marked "1," and the cell directly above it is marked "2." This indicates that in Bay 4, the first container will be placed at Row 2, Tier 1, and then the second container will be placed at Row 2, Tier 2.
[0087] The stacking and storage plan also takes into consideration attribute information such as the type and size of the container. Therefore, when presenting the calculated stacking and storage plan, the client module 31 may also display the type and size of the container. The attribute information may also be displayed by a display mode such as the display color or fill pattern of each cell.
[0088] The inventory of containers that can be included in the storage plan is displayed in the inventory display area 703. In the inventory display area 703 in Fig. 7, the cell of Row 1, Tier 1 is displayed in a different color from the other cells, which indicates that an inventory container is located in this cell.
[0089] When the user performs an operation to select the adopt button B8, the client module 31 instructs the server device 2 to register the storage plan in the storage device 4. On the other hand, when the user performs an operation to select the reject button B9, the client module 31 does not send an instruction to register the storage plan, and as a result, the storage plan is not registered in the storage device 4.
[0090] The UI screen 700 can also be used as a UI for accepting modifications to the storage plan calculated by the calculation engine 22. That is, the client module 31 may accept modifications to the storage plan via the UI screen 700. For example, the client module 31 may accept a user operation (for example, a right click of the mouse) on a cell on the UI screen 700 where a container is indicated to be placed, as a modification operation to prevent a container from being placed at the position of that cell. For example, the client module 31 may also accept a user operation (for example, a left click of the mouse) on a cell on the UI screen 700 where a container is indicated not to be placed (a white cell), as a modification operation to place a container at the position of that cell.
[0091] (Input data for storage planning) In addition to the information specified by the user as described above, the input data for the stacking and storage plan can include various information to be considered in the stacking and storage plan. For example, the input data may include information about the berth, lane, or bay where the container is to be placed, information about each location in the yard (area where the container can be placed), attribute information (size, height, type, etc.) of the container to be placed, information about the weight of the container, information about areas where containers of each attribute can be placed, information about the distance between areas where the container can be placed, information about an already created stacking and storage plan (e.g., information indicating the content of an already created stacking and storage plan and the placement of containers after the execution of the stacking and storage plan), information about inventory containers, information about the source and destination of the container, the date and time of the container movement work, and information indicating an area specified by the user. Note that if there is no already created stacking and storage plan, information about the already created stacking and storage plan is unnecessary. By including information about an already created stacking and storage plan in the input data, a new stacking and storage plan based on that stacking and storage plan can be generated.
[0092] (Output data for storage planning) The output data in the stacking and storage plan may be any data that indicates the location where each container is to be stored. For example, the output data in the stacking and storage plan may include the lane number of the lane where the container is to be placed, the bay number of the bay where the container is to be placed, and the row number indicating the placement of the container in the row direction in the bay. The output data in the stacking and storage plan may also include information indicating the order of the work of placing each container. In addition to this, for example, the output data in the stacking and storage plan may also include attribute information of the containers to be placed. Each variable corresponding to this output data is optimized by optimization calculation using an objective function, which will be described later, and the optimal value of each variable is output as output data.
[0093] (Constraints on storage planning) The constraints in the storage plan can be set as appropriate. The constraints in the storage plan may include the first constraint (set by the user) and the second constraint (set in advance).
[0094] For example, as the second constraint, conditions such as not placing multiple containers at the same location at the same time, not placing containers in locations subject to storage restrictions, placing containers in locations according to the container's attributes (for example, if the container's attribute is frozen, placing them in a location with a power source), not stacking containers of different sizes, always reserving an area for the amount of containers scheduled to be carried in on the planned day, not placing containers of different sizes in the same bay, the storage plan reserved each day being carried over to the next day, always placing a specified number of containers at one of the candidate locations, keeping the number of containers arranged in the tier direction below an upper limit, not leaving a gap of more than one container between stacks of containers in one bay, etc. may be set as conditions that must be met during mathematical optimization.
[0095] Furthermore, for example, as a second constraint, conditions such as placing containers to be loaded onto the same ship together in the same lane, bay, or row as much as possible, placing containers so that there is as little difference as possible in the number of stacks in adjacent rows within the same bay, placing containers so that the number of lanes used for each type of work (loading or unloading) does not increase, placing containers so that the number of lanes used for each prime contractor does not increase, and not placing containers of different sizes in the same bay as much as possible may be set. These conditions may be set as conditions that should be satisfied as much as possible during mathematical optimization. In addition to these, for example, the number of loading equipment used for loading and unloading containers may also be set as a constraint.
[0096] (Objective function in storage planning) The objective function in the stacking and storage plan is a function that includes each variable corresponding to the output data described above. For example, the objective function in the stacking and storage plan may be a function for minimizing the number of bays used, or a function for minimizing the number of container piles. Here, a "pile" refers to a collection of containers stacked in the tier direction. Furthermore, for example, the objective function in the stacking and storage plan may be a function for minimizing the number of materials handling equipment used, a function for minimizing the penalty for placing containers in avoidable locations, or a function for minimizing the number of different attributes (e.g., size) of containers included in the same bay.
[0097] The calculation engine 22 performs optimization calculations to calculate the values of variables that minimize the values of each of the objective functions described above. This calculates the values of each variable that can minimize the number of bays used, the number of container stacks, the number of materials handling equipment used, the placement of containers in avoidable locations, and the number of different container attributes contained in the same bay. These variable values are then output as output data indicating a stowage and storage plan. It is not necessary to use all of the objective functions described above; optimization calculations can be performed using some of the objective functions described above, or objective functions other than those described above.
[0098] The method of reflecting the user-selected rule for arranging containers to be stored in the stowage and storage plan is not limited to the example of using the rule as a constraint. For example, the calculation engine 22 may determine in which bay each container should be placed by optimization calculation, without considering the order of containers to be stored. The calculation engine 22 may then determine the placement of containers in the determined bay in accordance with the user-selected rule for arranging containers to be stored. This method also makes it possible to reflect the user-selected rule for arranging containers to be stored in the stowage and storage plan. This also applies to (2) the unloading and storage plan and (3) the rearrangement plan.
[0099] (2) Unloading and storage plan (Accepting input data) The unloading and storage plan and the above-mentioned loading and storage plan differ only in the origin of the containers to be stored in the yard (the loading and storage plan stores containers brought in from outside (other than the ship), while the unloading and storage plan stores containers loaded on the ship), but are generally the same in other respects. Therefore, the input data for the unloading and storage plan can be generally the same as the input data for the above-mentioned loading and storage plan.
[0100] For example, in the unloading and storage plan, a UI screen such as that shown in Figure 4 may be displayed to accept the designation of the ship, and a UI screen such as that shown in Figure 5 may be displayed to accept the designation of the optimization calculation time and placement rules. Note that the number of containers in the unloading and storage plan is the number of containers loaded on the ship, and since this cannot normally be changed, there is no need to accept the designation of the number of containers in the unloading and storage plan.
[0101] Furthermore, in the unloading and storage plan, a UI screen such as that shown in Fig. 6 may be displayed to accept the designation of a storage area. Furthermore, in the unloading and storage plan, a designation as to whether or not a bay in which no containers are stored will be preferentially used as an area for storing containers to be stored may also be accepted. This will be explained with reference to Fig. 8. Fig. 8 is a diagram showing an example of a UI screen for accepting input data for calculating the unloading and storage plan.
[0102] 6, the UI screen 800 shown in Fig. 8 displays an input item 801 for receiving a berth designation, a lane display area 802 for displaying the lane to be designated as the container storage area, and an area confirmation button B7. The UI screen 800 also includes an input item 803 for receiving whether or not to preferentially use an empty bay, i.e., a bay in which no container is stored, as an area for storing the container to be stored.
[0103] The input item 803 includes a check box. By checking the check box, the user can specify that an empty bay is to be used preferentially as an area for storing containers to be stored. When a calculation request for an unloading and storage plan is made with this check box checked, the client module 31 transmits input data indicating that an empty bay is to be used preferentially as an area for storing containers to be stored to the server device 2. As a result, the calculation engine 22 of the server device 2 performs an optimization calculation using the preferential use of an empty bay as an area for storing containers to be stored as a constraint. In other words, the preferential use of an empty bay as an area for storing containers to be stored is an example of a first constraint.
[0104] In this way, the client module 31 may receive input of the area in which the storage target containers will be stored and whether or not bays in which no containers are stored will be preferentially used as areas in which the storage target containers will be stored, as first constraints for the unloading and storage plan, and transmit the received first constraints to the server device 2. In this case, the calculation engine 22 calculates an unloading and storage plan that satisfies the first constraints. This allows the user to generate an unloading and storage plan in which containers are placed in desired areas. Furthermore, the user can generate an unloading and storage plan that meets their own desires regarding whether or not vacant bays will be preferentially used as areas in which the storage target containers will be stored.
[0105] Furthermore, the client module 31 may further receive input of rules for the arrangement of containers to be stored as a first constraint condition for the unloading and storage plan, and transmit the received first constraint condition to the server device 2. This allows the user to generate an unloading and storage plan that arranges containers in a desired order.
[0106] (Presentation of calculation results) The presentation of the unloading and storage plan calculated by the calculation engine 22 will be described with reference to Fig. 9. Fig. 9 is a diagram showing an example of a UI screen presenting the unloading and storage plan calculated by the calculation engine 22. The UI screen 900 shown in Fig. 9 includes an input item 901 for receiving berth designation, a lane display area 902, an accept button B8, and a reject button B9. Note that the accept button B8 and the reject button B9 have been described with reference to Fig. 7, and therefore their description will not be repeated here. Furthermore, the input item 901 is the same as the input item 801 in Fig. 8, and therefore their description will not be repeated here.
[0107] The lane display area 902 displays an image in which each bay included in each lane that is the subject of the unloading and storage plan is represented by a rectangular cell. For example, the lane display area 902 displays each bay 1 to 50 included in lane A as a cell. Of the displayed cells, for example, cells such as Bay 2, 3, 5 to 7 are displayed in a different color from cells such as Bay 1 and 8, which indicates that an unloading and storage plan has been generated for these bays.
[0108] Here, when the user wants to check the placement of containers in a specific bay, he or she simply selects a cell corresponding to that bay from among the cells displayed in the lane display area 902. This causes the client module 31 to, for example, pop up a screen showing the placement of containers in the bay corresponding to the selected cell. In the example of Fig. 9, Bay 6 of lane A is selected, and a screen 903 displaying a bay map of Bay 6 is pop up.
[0109] On screen 903, the cells for Tiers 1 and 2 in Row 1, Tiers 1 to 3 in Row 2, and Tiers 1 to 3 in Row 3 are displayed in a color different from the other cells, indicating that containers will be stored in these cells. Also, on screen 903, a number is displayed in each cell where a container is to be stored, and this number indicates the order in which the containers will be loaded into those cells. Also, a close button B10 is displayed on screen 903, and operating this button closes the display of screen 903.
[0110] As with the loading and unloading plan, the unloading and unloading plan also takes into consideration attribute information such as the type and size of the container. Therefore, when presenting the calculated unloading and unloading plan, the client module 31 may also display the type and size of the container. The attribute information may also be represented by a display mode such as the display color or fill pattern of each cell.
[0111] The UI screen 900 and the screen 903 can also be used as UIs for accepting modifications to the unloading and storage plan calculated by the calculation engine 22. That is, the client module 31 may accept modifications to the unloading and storage plan via the UI screen 900 and the screen 903. For example, the client module 31 may accept a user operation (for example, a right click of the mouse) on a cell on the screen 903 where a container is indicated to be placed, as an operation for correcting the cell so that a container is not placed at the position of that cell. Also, for example, the client module 31 may accept a user operation (for example, a left click of the mouse) on a cell on the screen 903 where a container is not indicated to be placed (a white cell), as an operation for correcting the cell so that a container is placed at the position of that cell.
[0112] (Input data, output data, constraints, and objective function for unloading and storage planning) The input data, output data, constraints, and objective functions in the unloading and storage plan may be the same as the input data, output data, constraints, and objective functions in the above-mentioned stacking and storage plan, respectively.
[0113] Furthermore, the input data for the unloading and storage plan may include, in addition to the input data for the loading and storage plan described above, data indicating whether or not to specify whether or not to preferentially use empty bays as areas for storing containers to be stored. This allows an optimization calculation to be performed with the first constraint being that empty bays are preferentially used as areas for storing containers to be stored, and makes it possible to generate an unloading and storage plan that preferentially uses empty bays as areas for storing containers to be stored.
[0114] (3) Relocation Plan (Accepting input data) The rearrangement plan and the above-mentioned loading and storage plan are generally similar in other respects, except for the origin of the containers to be stored in the yard (in the rearrangement plan, containers loaded at one position in the yard are moved to another position). Therefore, the input data for the rearrangement plan may be generally similar to the input data for the above-mentioned loading and storage plan.
[0115] For example, in the rearrangement plan, a UI screen like that shown in Figure 4 may be displayed to accept the designation of the ship, and a UI screen like that shown in Figure 5 may be displayed to accept the designation of the optimization calculation time and the placement rules (rules for sorting). Note that the number of containers in the rearrangement plan is the number of containers already placed in the yard, and since this cannot normally be changed, there is no need to accept the designation of the number of containers in the rearrangement plan. Furthermore, there is no need to accept the designation of the storage area in the rearrangement plan.
[0116] In this way, the client module 31 may accept input of rules for the arrangement of containers to be stored as the first constraint condition of the rearrangement plan, and transmit the accepted first constraint condition to the server device 2. In this case, the calculation engine 22 calculates a rearrangement plan that satisfies the first constraint condition. This allows the user to generate a rearrangement plan that arranges containers in a desired order.
[0117] (Presentation of calculation results) The presentation of the rearrangement plan calculated by the calculation engine 22 will be described with reference to Fig. 10. Fig. 10 is a diagram showing an example of a UI screen that presents the rearrangement plan calculated by the calculation engine 22. The UI screen 100 shown in Fig. 10 includes a first display area 101 that displays the arrangement of the containers before the move, a second display area 102 that displays the arrangement of the containers after the move, and also includes an accept button B8 and a reject button B9. Note that the accept button B8 and the reject button B9 have been described with reference to Fig. 7, and therefore their description will not be repeated here.
[0118] In the first display area 101, the location of the container before movement (in other words, before rearrangement) is shown by a plurality of cells. Specifically, in the first display area 101, the cells at positions corresponding to the containers to be moved in the lanes (cells of Tiers 1 to 4 in Bay 4) are displayed in a color different from the other cells, which indicates that these cells are the targets of rearrangement. In the first display area 101, which lane of which berth to display can be selected from a drop-down list.
[0119] Also, the bay map of Bay 4 is displayed in the first display area 101. If the user wants to check the location of containers in other bays, he or she can simply select the number of the desired bay from the drop-down list. This causes the client module 31 to update the displayed bay map to that of the selected bay.
[0120] In the second display area 102, the arrangement of the containers after the movement (in other words, after the rearrangement) is shown by a plurality of cells in the same format as in the first display area 101. By comparing the display content of the first display area 101 with the display content of the second display area 102, the user can easily recognize how the rearrangement plan calculated by the calculation engine 22 determines how the containers are to be rearranged.
[0121] Note that, like the loading and unloading plans, the rearrangement plan also takes into account attribute information such as the type and size of the container. Therefore, when presenting the calculated rearrangement plan, the client module 31 may also display the type and size of the container. The attribute information may also be represented by a display mode such as the display color or fill pattern of each cell.
[0122] Furthermore, in the rearrangement plan, a number indicating the order of rearrangement work may be displayed in each cell. For example, if a container in a cell in Bay 4, Ro 2, Tier 4 among the cells displayed in the first display area 101 is to be rearranged first, the number "1" may be displayed in that cell. In this case, the number "1" may also be displayed in a cell displayed in the second display area 102 corresponding to the destination of the container in the cell numbered "1." This allows the user to easily recognize the order in which the containers at positions corresponding to each cell should be rearranged.
[0123] The UI screen 100 can also be used as a UI for accepting modifications to the reallocation plan calculated by the calculation engine 22. That is, the client module 31 may accept modifications to the reallocation plan via the UI screen 100. In this case, the client module 31 may also accept deletions and additions in task units indicated in the generated reallocation plan.
[0124] This will be explained with reference to Fig. 11. Fig. 11 is a diagram showing another example of a UI screen presenting a reallocation plan. A UI screen 110 shown in Fig. 11 displays a first display area 111 and a second display area 112 displaying the same images as those in Fig. 10, an accept button B8, a reject button B9, a task list 113, and a delete task button 11B.
[0125] The work list 113 lists each of the individual works indicated in the rearrangement plan calculated by the calculation engine 22, that is, each work of moving one container from one location to another. Specifically, the work list 113 displays information indicating the location of each container before and after the move. For example, work No. 1 is the work of moving "C12-A0424," i.e., a container located in Row 2, Tier 4, in Bay "04" in Lane "A" of Berth No. "C12," to Row 2, Tier 1, in Bay "06" in Lane "A" of Berth No. "C12."
[0126] The user can select a task that the user has determined to be unnecessary from among the tasks shown in the task list 113 and delete the task from the task list 113 by operating the task deletion button 11B. The user can also specify a new destination for the container that is the subject of the deleted task, for example, from the bay map in the second display area 112. The user can also select a new container that is the subject of the task, for example, from the bay map in the first display area 111. When the client module 31 receives an operation to delete, add, or modify a task, it is preferable that the result be reflected in the bay map.
[0127] Furthermore, the client module 31 may be configured to accept modifications to the relocation plan even after the relocation has actually started in the yard. In this case, the client module 31 may also manage the status of each task (task planned / task completed, etc.) and accept modifications only for tasks that have not yet been performed.
[0128] 10 and 11 show an example of relocation from one bay to another bay, but it is also possible to create a relocation plan in which multiple containers placed in one bay are relocated across multiple bays. It is also possible to create a relocation plan in which multiple containers placed in multiple bays are relocated together in one bay, or to create a relocation plan in which multiple containers placed in multiple bays are relocated across multiple other bays.
[0129] (Input data, output data, constraints, and objective function in relocation planning) The input data, output data, constraints, and objective functions in the rearrangement plan may be similar to the input data, output data, constraints, and objective functions in the above-mentioned storage plan.
[0130] [Processing flow (client device side)] The flow of processing executed by the client device 3 will be described with reference to Fig. 12. Fig. 12 is a flowchart showing an example of processing executed by the client device 3. This flowchart includes each step of the storage planning support method executed by the client device 3 according to this embodiment.
[0131] In S1, the client module 31 acquires input data via the user interface 32. The input data acquired here is data that the user needs to input from among data required for calculating the storage plan. The client module 31 may acquire the input data, for example, by displaying a predetermined UI screen on the display unit and accepting user operations on the UI screen (for example, the UI screen 400 in FIG. 4 or the UI screen 500 in FIG. 5).
[0132] In S2, the client module 31 accepts input of a calculation instruction for a storage plan. As described above, the storage plan that is the target of the calculation instruction is any one of (1) a stacking and storage plan, (2) an unloading and storage plan, and (3) a relocation plan. For example, when generating (1) a stacking and storage plan, the client module 31 may accept, as a calculation instruction, an input operation on the calculation execution button B5 on the UI screen 500 in FIG. 5.
[0133] In S3, the client module 31 transmits a request to calculate a storage plan to the server device 2. At this time, the client module 31 also transmits the input data acquired in S1 to the server device 2. As a result, the server device 2 calculates a storage plan by a mathematical optimization method based on the input data.
[0134] Here, the input data transmitted from the client module 31 to the server device 2 will be further described with reference to Fig. 13. Fig. 13 is a diagram showing an example of input data transmitted from the client module 31 to the server device 2. The input data 131 shown in Fig. 13 includes, as an example, a total of 11 data items from No. 01 to No. 11.
[0135] The client module 31 may, for example, reflect the content input by the user in one or more input data files including each of the above 11 data items, and transmit the input data files including the content input by the user to the server device 2. Note that, as will be described in detail below, the data items shown in Fig. 13 include data items that are commonly used regardless of the type of storage plan, and data items that are used only in a specific type of storage plan. For data items that are used only in a specific type of storage plan, the user's input content only needs to be entered when instructing that storage plan.
[0136] Data items No. 01 to No. 08 are data items that are commonly used regardless of the type of storage plan. No. 01 "Calculation Start Date and Time" indicates the date and time when the calculation of the storage plan starts, and No. 02 "Calculation Completion Date and Time" indicates the date and time when the calculation of the storage plan is completed. No. 03 "Optimization Execution Status" indicates whether or not a mathematical optimization calculation is performed. Unless there are special circumstances, "Optimization Execution Status" may be fixed to a value indicating that an optimization calculation is performed. Note that some types of storage plans may be generated using methods other than mathematical optimization (e.g., a rule-based method). No. 04 "Optimization Calculation Time" indicates the upper limit time for the optimization calculation, and is specified by the user, for example, via a UI screen such as that shown in Figure 5. No. 05 "Calculation Mode" indicates the type of storage plan. No. 06 "Placement Order" indicates the arrangement order of the containers to be stored placed in the yard, and is specified by the user, for example, via a UI screen such as that shown in Figure 5. In addition, in the "calculation mode" of No. 05, it is possible not to distinguish between (1) stacking and storage plan and (2) unloading and storage plan. In this case, the data item of the "calculation mode" stores data specifying either (1) stacking and storage plan or (2) unloading and storage plan, or (3) relocation plan.
[0137] The data to be included in the data items of "Calculation Identification Name" from No. 07 to No. 10 may be determined in advance. For example, "Calculation Identification Name 1" of No. 07 may include the identification information of the vessel, and "Calculation Identification Name 2" of No. 08 may include the voyage number (corresponding to the loading voyage or discharging voyage mentioned above). These data are commonly used regardless of the type of storage plan, and are specified by the user via a UI screen such as that shown in Figure 4, for example.
[0138] Here, if there is no distinction between (1) stacking and storage plan and (2) unloading and storage plan in No. 05 "calculation mode," for example, it is possible to specify which of (1) stacking and storage plan or (2) unloading and storage plan to execute in No. 09 "calculation identifier 3." In this case, if (3) rearrangement plan is specified in No. 05 "calculation mode," neither (1) stacking and storage plan nor (2) unloading and storage plan is specified in No. 09 "calculation identifier 3."
[0139] Also, for example, the data item No. 10 "Calculation Identification Name 4" may store data indicating the identification information (for example, the name of the prime contractor) of the storage plan to be generated.
[0140] The data item No. 11, "Available bay availability," stores data indicating whether an available bay is to be used preferentially as an area for storing containers to be stored. The availability of an available bay is specified by the user via a UI screen such as that shown in FIG. 8, for example.
[0141] FIG. 13 also shows input data 132, which includes data items No. 01 to No. 05. The data item No. 01, "Planning Group ID," stores identification information for the planning group. Note that the planning group refers to the storage plan itself, and its contents are shown in a series of data items No. 02 to No. 05. The data item No. 02, "Range ID," stores identification information assigned to the combination of data in a series of data items No. 03 to No. 05.
[0142] The data item No. 03, "Lane," stores data specifying the lane to be targeted in the storage plan. The data item No. 04, "Start Bay," stores data indicating the bay with the smallest bay number among the series of bays targeted in the storage plan. The data item No. 05, "End Bay," stores data indicating the bay with the largest bay number among the series of bays targeted in the storage plan. These data are used in the loading and unloading storage plan and are specified by the user, for example, via a UI screen such as that shown in Figure 8.
[0143] Of the input data 131 and 132 shown in Fig. 13, the input data 132 includes data that can be reused in multiple storage plans. On the other hand, the input data 131 includes data that will never be reused, such as the "calculation start date and time."
[0144] Therefore, the input data 131 may not be stored in the storage device 4, while the input data 132 may be stored in the storage device 4. For example, the client module 31 may generate one file of input data 131 and another file of input data 132 based on a user input. The client module 31 may then store the input data 132 in the storage device 4, while transmitting the input data 131 together with a storage plan calculation request to the server device 2. In this case, the server module 21 transmits the input data 131 received from the client module 31 and the input data 132 read from the storage device 4 to the calculation engine 22 to perform an optimization calculation. This makes it possible to reuse the input data 132 stored in the storage device 4 in other optimization calculations to be performed later. The client module 31 may also cause the server device 2 to perform a process of storing the input data 132 in the storage device 4.
[0145] Returning now to the explanation of the flowchart in Fig. 12, in S4, the client module 31 receives the storage plan from the server device 2. Furthermore, the client module 31 displays the storage plan received from the server device 2 on the display unit. As explained based on Figs. 7, 9 and 10, it is preferable to display the storage plan in a manner according to its type.
[0146] In S5, the client module 31 determines whether the storage plan displayed in S4 has been adopted. For example, the client module 31 may accept an input operation on the adopt button B8 shown in Figures 7, 9, and 10 as an input indicating the adoption of the storage plan. In this case, in S5, the client module 31 determines YES if an input operation on the adopt button B8 is detected, and determines NO if another input operation (for example, an input operation on the reject button B9) is detected. If the determination in S5 is YES, the process proceeds to S7, and if the determination in S5 is NO, the process proceeds to S6.
[0147] In S6, the client module 31 updates the display content of the storage plan. Specifically, the client module 31 returns the storage plan to the display content before S4. For example, if the client module 31 has generated storage plans multiple times, the client module 31 may display the storage plan generated immediately before the storage plan displayed in S4 instead of the storage plan in question. This ends the processing of FIG. 12.
[0148] In S7, the client module 31 transmits a storage plan registration instruction to the server device 2. As a result, the storage plan received in S4 is stored in the storage device 4 by the server device 2. After S7 ends, the process proceeds to S8.
[0149] In S8, the client module 31 determines whether an operation to modify the storage plan received in S4 has been performed. If the determination in S8 is NO, the illustrated processing ends. On the other hand, if the determination in S8 is YES, the processing proceeds to S9.
[0150] In S9, the client module 31 reads out the storage plan to be corrected, i.e., the storage plan stored in the storage device 4 by the server device 2. Note that the client module 31 may cause the server device 2 to read out the storage plan and acquire the storage plan from the server device 2. Note that the client module 31 may accept input of correction to the storage plan that was received in S4 but not determined to be adopted in S5, i.e., the storage plan before being stored in the storage device 4. In this case, after it is determined as NO in S5, the processing of S8 is performed.
[0151] In S10, the client module 31 accepts input for correcting the storage plan read out in S9. As described with reference to Figures 7, 9, 10, and 11, the client module 31 may accept input for correcting the storage plan via a UI screen that displays the storage plan.
[0152] In S11, the client module 31 updates the display content of the storage plan. Specifically, the client module 31 reflects the content of the correction input received in S10 in the display of the storage plan. After this, the processing returns to S5. Then, if it is determined in S5 that the storage plan is to be adopted, a registration instruction is sent to the server device 2 in S7, and the corrected storage plan is thereby registered in the storage device 4. Note that the client module 31 may also register the corrected storage plan in the storage device 4 without going through the server device 2.
[0153] As described above, the storage plan support method according to this embodiment is a storage plan support method executed by the client device 3, and includes the steps of accepting input of a calculation instruction for a storage plan, which is any one of (1) a loading and storage plan that plans a location in the yard to store containers to be loaded onto a ship, (2) an unloading and storage plan that plans a location in the yard to store containers to be unloaded from a ship, and (3) a rearrangement plan that plans a rearrangement of containers stored in the yard to be loaded onto a ship, and transmitting a calculation request to the server device 2 upon accepting the input (S2 and S3), a step of the server device 2 receiving the storage plan calculated by a mathematical optimization technique (S4), and a step of accepting input indicating whether the received storage plan is adopted or not (S5). This makes it possible to generate a highly accurate storage plan that meets the user's intentions.
[0154] The client module 31 included in the client device 3 can also be realized by a program. The program causes a computer (for example, the client device 3 or any other information processing device) to execute the above steps. This program can provide the same effects as the storage planning support method executed by the client module 31.
[0155] [Processing flow (server device side)] The flow of processing executed by the server device 2 will be described with reference to Fig. 14. Fig. 14 is a flowchart showing an example of processing executed by the server device 2. This flowchart includes each step of the storage plan support method executed by the server device 2 according to this embodiment.
[0156] In S21, the server module 21 receives a calculation request for a storage plan from the client device 3. This calculation request is transmitted in S3 of Fig. 12 and requests the generation of any one of (1) a loading and storage plan, (2) an unloading and storage plan, and (3) a relocation plan. In S21, the server module 21 also receives input data such as the first constraint condition input by the user along with the calculation request.
[0157] In S22, the server module 21 reads data for calculating a storage plan from the storage device 4. The data for calculating a storage plan may include parameters used in optimization calculations (for example, information about the ship, parameters set by the user, etc.).
[0158] As described above, the user may be allowed to specify the number of containers to be stored, the area in which the containers to be stored are to be stored, the rules for the order in which the containers to be stored are to be arranged, whether or not bays in which no containers are stored are to be used preferentially as the areas, etc. When such specifications are made, the server module 21 identifies the specified contents from the input data received from the client device 3.
[0159] In S23, the server module 21 instructs the calculation engine 22 to calculate a storage plan. At this time, the server module 21 transmits to the calculation engine 22 various data necessary for calculating the storage plan, such as the data read in S22 and the input data received from the client device 3.
[0160] In S24, the calculation engine 22 calculates a storage plan according to the instructions in S23. As described above, the storage plan is calculated by a mathematical optimization method for all of (1) the loading storage plan, (2) the unloading storage plan, and (3) the relocation plan.
[0161] In S25, the server module 21 acquires the storage plan calculated in S24 from the calculation engine 22. Subsequently, in S26, the server module 21 transmits the storage plan acquired in S25 to the client device 3. The step in which the client module 31 receives the storage plan transmitted in this manner is S4 in Fig. 12. As described above, in S5 following S4 in the flow shown in Fig. 12, it is determined whether the storage plan is adopted, and if it is adopted (YES in S5), a registration instruction is transmitted to the server device 2 in S7.
[0162] In S27, the server module 21 determines whether the storage plan transmitted in S26 has been adopted. For example, the server module 21 may determine that the storage plan has been adopted when receiving an instruction to register the storage plan from the client device 3. If the determination in S27 is YES, the process proceeds to S28, and if the determination in S27 is NO, the illustrated process ends.
[0163] In S28, the server module 21 stores the storage plan acquired in S25 in the storage device 4. This ends the illustrated processing.
[0164] As described above, the storage plan support method according to this embodiment is a storage plan support method executed by the server device 2 (more precisely, the server module 21), and includes the steps of: receiving a calculation request for a storage plan from a client device (S21); upon receiving the calculation request, reading out data for calculating the storage plan from the storage device 4 that stores the data (S22); instructing the calculation engine 22, which calculates the storage plan by a mathematical optimization method using the read data, to calculate the storage plan (S23); and acquiring the storage plan calculated by the calculation engine 22 and transmitting the acquired storage plan to the client device 3 (S25, S26). This makes it possible to present a highly accurate storage plan to the user.
[0165] The server module 21 can also be realized by a program. The program causes a computer (for example, the server device 2 or any other information processing device) to execute the above steps. This program can provide the same effects as the storage planning support method executed by the server module 21.
[0166] 14, the server module 21 acquires the storage plan calculated by the calculation engine 22 and transmits the acquired storage plan to the client device 3. Then, as described with reference to Fig. 12, when the client module 31 receives the storage plan from the server module 21, it displays the storage plan on the display unit and accepts an input indicating whether or not to adopt the storage plan. This allows the user to confirm the storage plan calculated by the calculation engine 22, and further enables the user to specify whether or not to adopt the storage plan.
[0167] Furthermore, when the client module 31 receives an input indicating the adoption of a storage plan, it transmits an instruction to the server device, and when the server module 21 receives the instruction, it stores the adopted storage plan in the storage device 4. This allows only the storage plan calculated by the calculation engine 22 that the user adopts to be stored in the storage device 4.
[0168] Furthermore, the client module 31 reads out the storage plan stored in the storage device 4 by the server module 21, accepts input for correcting information included in the read storage plan, and stores the corrected storage plan in the storage device 4. This makes it possible to create a storage plan that is in line with the user's intentions down to the smallest detail, and also makes it possible to easily generate a storage plan that can accommodate irregular changes in conditions.
[0169] [Software implementation example] As described above, the functions of the server module 21 and the client module 31 (hereinafter simply referred to as "modules") can be realized by a program that causes a computer to function as the module, and that causes a computer to execute each process shown in Figures 12 and 14. Similarly, the functions of the calculation engine 22 can be realized by a program that causes a computer to execute each process that the calculation engine 22 executes.
[0170] In this case, the server device 2 and the client device 3 are equipped with a computer having at least one control device (e.g., a processor) and at least one storage device (e.g., a memory) as hardware for executing the above programs. The functions of the above modules are realized by executing the above programs using the control device and storage device.
[0171] The program may be stored non-transitory on one or more computer-readable storage media. The server device 2 and the client device 3 may or may not have these storage media. In the latter case, the program may be supplied to the server device 2 or the client device 3 via any wired or wireless transmission medium.
[0172] Furthermore, some or all of the functions of the modules can be realized by logic circuits. For example, an integrated circuit in which logic circuits that execute the processes shown in Figures 12 and 14 are formed is also included in the scope of the present invention. In addition, the functions of the modules can also be realized by, for example, a quantum computer.
[0173] The present invention is not limited to the above-described embodiments, and various modifications are possible within the scope of the claims. Embodiments obtained by appropriately combining the technical means disclosed in different embodiments are also included in the technical scope of the present invention. [Explanation of symbols]
[0174] 2. Server device 21 Server Module 22 Calculation Engine 3. Client Device 31 Client Module 4 Storage device 7 Storage Planning Support System 100 Container Terminal Operation System
Claims
1. A storage planning support system comprising a client device, a server device, and a storage device that stores data for calculating a storage plan, the storage plan is any one of a loading and storage plan for planning a location in a yard to store containers to be loaded onto a ship, an unloading and storage plan for planning a location in a yard to store containers to be unloaded from a ship, and a rearrangement plan for planning the rearrangement of containers stored in the yard to be loaded onto a ship, the client device comprises a client module; the client module receives an input of a calculation instruction for the storage plan, and upon receiving the input, transmits a calculation request to the server device; the server device includes a server module and a calculation engine; When the server module receives the calculation request, it reads the data from the storage device and instructs the calculation engine to calculate the storage plan; the calculation engine calculates the storage plan by a mathematical optimization method using the read data in accordance with the instruction; Storage planning support system.
2. the client module accepts input of a first constraint condition for calculating the storage plan, and transmits the accepted first constraint condition to the server device; the server module provides the first constraint sent from the client module to the calculation engine; the calculation engine calculates the storage plan that satisfies the provided first constraint condition. The storage planning support system according to claim 1.
3. the data includes a second predetermined constraint for calculating the storage plan; The storage plan support system according to claim 2 , wherein the calculation engine calculates the storage plan that satisfies the second constraint condition.
4. The storage plan support system according to claim 3 , wherein the calculation engine calculates the storage plan that satisfies both the first constraint condition and the second constraint condition.
5. the client module receives input of the number of containers to be stored and an area in which the containers to be stored are to be stored as the first constraint conditions of the loading and storage plan, and transmits the received first constraint conditions to the server device; The storage plan support system according to claim 2 , wherein the calculation engine calculates the storage plan that satisfies the first constraint condition.
6. 6. The storage plan support system according to claim 5, wherein the client module further accepts input of a rule for arranging the containers to be stored as the first constraint condition of the loading and storage plan, and transmits the accepted first constraint condition to the server device.
7. the client module receives input of an area in which the container to be stored is to be stored and whether a bay in which no container is stored is to be used preferentially as the area, as the first constraint condition of the unloading and storage plan, and transmits the received first constraint condition to the server device; the calculation engine calculates the unloading and storage plan that satisfies the first constraint condition. The storage planning support system according to claim 2.
8. 8. The storage planning support system according to claim 7, wherein the client module further accepts input of rules for the arrangement of the containers to be stored as the first constraint condition of the unloading and storage plan, and transmits the accepted first constraint condition to the server device.
9. the client module accepts input of a rule for the arrangement of the storage target containers as the first constraint condition of the rearrangement plan, and transmits the accepted first constraint condition to the server device; the calculation engine calculates the relocation plan that satisfies the first constraint condition. The storage planning support system according to claim 2.
10. The server module acquires information indicating a progress status of the calculation of the storage plan from the calculation engine, and transmits the acquired information indicating the progress status to the client device; The storage planning support system according to claim 1 , wherein, upon receiving the information, the client module causes a display unit to display the progress status based on the information.
11. The server module acquires the storage plan calculated by the calculation engine and transmits the acquired storage plan to the client device; When the client module receives the storage plan, the client module displays the storage plan on a display unit and receives an input indicating whether or not the storage plan is adopted. The storage planning support system according to claim 1.
12. When the client module receives an input indicating adoption of the storage plan, the client module transmits an instruction to the server device; The storage plan support system according to claim 11 , wherein the server module, upon receiving the instruction, stores the adopted storage plan in the storage device.
13. The client module The server module reads out the storage plan stored in the storage device, Accepting input to correct information included in the read storage plan; The storage plan support system according to claim 12, wherein the modified storage plan is stored in the storage device.
14. In response to the client module receiving an input indicating adoption of the storage plan calculated by the calculation engine, the server module stores the storage plan in the storage device, and then:
13. The storage planning support system according to claim 12, wherein, in response to the client module receiving an input indicating adoption of the relocation plan calculated by the calculation engine, the server module stores the relocation plan in the storage device.
15. The client module The server module reads out the storage plan stored in the storage device, Accepting input to correct information included in the read storage plan; storing the modified storage plan in the storage device; The calculation engine 14. The storage plan support system according to claim 13, wherein the data read from the storage device in which the corrected storage plan is stored is used in calculating the rearrangement plan.
16. The storage plan support system according to claim 1 , wherein the client device is a device that is included in a container terminal operation system and that manages the storage plan.
17. On the computer, a step of receiving an input of a calculation instruction for a storage plan, which is any one of a loading and storage plan for planning a location in a yard where containers to be loaded onto a ship will be stored, an unloading and storage plan for planning a location in a yard where containers to be unloaded from a ship will be stored, and a rearrangement plan for planning the rearrangement of containers stored in the yard to be loaded onto a ship, and transmitting a calculation request to a server device upon receiving the input; receiving the storage plan calculated by the server device using a mathematical optimization method; and receiving an input indicating whether or not the received storage plan is adopted.
18. On the computer, receiving, from a client device, a calculation request for a storage plan, which is any one of a loading and storage plan for planning a location in a yard where containers to be loaded onto a ship will be stored, an unloading and storage plan for planning a location in a yard where containers to be unloaded from a ship will be stored, and a rearrangement plan for planning the rearrangement of containers stored in the yard to be loaded onto a ship; Upon receiving the calculation request, reading data for calculating the storage plan from a storage device that stores the data; instructing a calculation engine that calculates the storage plan by a mathematical optimization method using the read data to calculate the storage plan; acquiring the storage plan calculated by the calculation engine, and transmitting the acquired storage plan to the client device.
Citation Information
Patent Citations
Progress situation output unit and progress situation output method
JP2007122090A
System, method and program for planning inventory arrangement
JP2008150147A
Method for creating transport and stowage plan, and device for creating transport and stowage plan
JP2014015311A
Logistics plan planning device, method and program
JP2017120561A
Processing plan indication device
JP2020046811A