Method and apparatus for dispatching rescue vessels based on combinatorial optimization algorithm in storm surge scenarios
By using an improved Hungarian algorithm and a fully bipartite graph technique, the rescue weights and vessel allocation are dynamically adjusted, solving the problem of uneven distribution of rescue vessels in storm surge scenarios and achieving efficient and comprehensive rescue coverage and resource utilization.
Patent Information
- Application Number
- CN202510033629.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2025-01-09
- Publication Date
- 2025-10-28
- Estimated Expiration
- 2045-01-09
AI Technical Summary
Existing technologies fail to effectively consider the severity of the disaster, human needs, and resource balance in the allocation of rescue vessels in storm surge scenarios, and ignore the individual complexity and spatial distribution differences of trapped personnel, resulting in delays in rescue efforts in some areas.
An improved Hungarian algorithm is used, which combines real-time information on trapped personnel and vessel status to dynamically determine rescue weights and generate a real-time vessel allocation scheme. By constructing a complete bipartite graph and finding the maximum matching, the optimal allocation under vessel capacity constraints is ensured.
It enabled efficient and comprehensive rescue operations in storm surge scenarios, ensuring the effectiveness and timeliness of rescue efforts, making full use of limited resources, and demonstrating strong targeting and broad coverage.
Smart Images

Figure CN120069252B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of disaster relief dispatching technology, and in particular to a rescue vessel dispatching method based on a combinatorial optimization algorithm in storm surge scenarios, a rescue vessel dispatching device based on a combinatorial optimization algorithm in storm surge scenarios, an electronic device, and a computer-readable medium. Background Technology
[0002] 1. Existing technology
[0003] (1) Shortest path algorithm
[0004] The application of shortest path algorithms in rescue operations has profound significance, especially in disaster emergency management. Disaster relief often faces challenges such as tight deadlines, limited resources, and complex environments, while shortest path algorithms can effectively improve rescue efficiency and resource utilization. Specifically, available resources (such as vehicles and rescue personnel) in disaster scenarios are usually limited. Shortest path algorithms can help allocate these resources rationally, reducing vehicle travel distances and transportation frequency, avoiding resource waste, and concentrating valuable resources where they are most needed. Some research combines time-weighted shortest path algorithms with grouping clustering methods. Rescue teams and tasks are rated to ensure the urgency of tasks and the rationality of resource allocation. Then, clustering is performed based on location data to develop rescue plans with the shortest path as the objective. This enables efficient allocation of rescue resources, dispatching rescue teams to the closest and most needed locations, minimizing travel and time consumption. On the other hand, after a disaster, efficient rescue route planning allows for faster and more accurate delivery of supplies and services, alleviating the short-term difficulties in disaster-stricken areas. Rapid and precise rescue efforts also mean reducing secondary problems during disasters, such as stockpiling of supplies and delivery delays, thus saving time and costs for post-disaster reconstruction. For example, the shortest path algorithm is used in the scheduling of flood control and relief supplies. By establishing a capacity scheduling optimization model, the average time for supplies to reach each rescue point is minimized, as are the number of transport trips. This optimization not only shortens rescue time but also reduces the consumption of transportation resources.
[0005] (2) Resource scheduling methods
[0006] Resource allocation in emergency rescue mainly refers to the rational organization and coordination of various rescue forces and materials. This includes the allocation of personnel and material resources. In personnel resource allocation strategies, the coordination and cooperation of various departments, units, and personnel are crucial. A unified command system needs to be established, clearly defining the responsibilities and authorities of commanders at all levels to ensure consistent command and unified action. Secondly, various professional rescue teams and personnel should be rationally mobilized according to the disaster situation and rescue needs to ensure optimal utilization of human resources. Material resource allocation is a vital link in disaster relief. Based on timely understanding and statistics of the reserves of various rescue materials, a sound material reserve and allocation system should be established to ensure timely supply in emergencies. Secondly, rescue materials should be rationally allocated according to different disaster types and scales. Currently, in practical applications, experience-based allocation methods are mostly used. This involves using simple and visual tools for allocation, such as displaying vehicle movement dynamics on dispatch boards or transportation network diagrams to arrange vehicle routes. Experience-based allocation relies heavily on the dispatcher's experience and intuition for decision-making. This method is more common when technology is relatively underdeveloped, as dispatchers accumulate years of experience and have a deep understanding and judgment of allocation strategies in various situations. This approach often proves inflexible and inefficient when facing complex and uncertain situations. Introducing advanced technologies and data analysis methods for scheduling in rescue scenarios has become a new trend. Many algorithms exist for solving resource scheduling problems. While precise algorithms can achieve accurate optimal solutions for small-scale problems, their time complexity increases exponentially with the problem size. Therefore, in recent years, many scholars have focused on the research and application of intelligent algorithms, such as genetic algorithms, simulated annealing, tabu search, and ant colony optimization. Extensive research has shown that these algorithms can find optimal solutions relatively quickly.
[0007] 2. Disadvantages of existing technologies:
[0008] (1) Path selection
[0009] Current technologies largely focus on finding the shortest or optimal path through algorithms. However, these algorithms may overlook the severity of the disaster, human needs, or resource balance during rescue operations, and they are insufficient in predicting dynamic changes and potential risks. In multi-point rescue missions, algorithms may over-optimize a single path while ignoring the balance of global resource allocation and the differences among stranded individuals, leading to delays in rescue efforts in some areas.
[0010] (2) Resource allocation
[0011] In storm surge flooding scenarios, there are few algorithms discussing the scheduling and decision-making for rescuing stranded people using boats. Current technologies mainly focus on emergency supplies dispatch strategies, neglecting the individual complexity, variability, and spatial distribution differences of those being rescued in specific scenarios. Summary of the Invention
[0012] In view of the above problems, the present invention is proposed to provide a rescue vessel assignment method based on combinatorial optimization algorithm in storm surge scenarios that overcomes or at least partially solves the above problems, a corresponding rescue vessel assignment device based on combinatorial optimization algorithm in storm surge scenarios, an electronic device, and a computer-readable medium.
[0013] This invention discloses a rescue vessel assignment method based on a combinatorial optimization algorithm in storm surge scenarios, the method comprising:
[0014] Obtain information on stranded personnel and vessels, and update information on vessels not fully loaded in real time; vessels that have reached their maximum capacity will temporarily withdraw from the allocation of rescue missions, and will rejoin the allocation of rescue missions after completing their rescue missions;
[0015] Based on information about stranded personnel and vessels not fully loaded, determine the real-time rescue weight for each stranded person; the rescue weight is the priority for each vessel to be assigned to rescue a particular stranded person.
[0016] Based on the real-time rescue weight of each stranded person, an improved Hungarian algorithm is used to generate a real-time ship allocation scheme.
[0017] Repeat the above steps until all the trapped individuals corresponding to the information on the trapped individuals have been rescued.
[0018] Optionally,
[0019] The information on the trapped personnel includes the number of trapped personnel, the age of each trapped person, their real-time health points, and the water depth; the real-time health points are based on the initial health points and decrease over time according to changes in water depth.
[0020] The vessel information includes the number of vessels and the distance between each vessel and each stranded person.
[0021] Optionally, based on information about stranded personnel and vessels not fully loaded, a real-time rescue weight is determined for each stranded person, including:
[0022] The initial priority for rescuing each trapped person is determined based on their real-time vital signs and age.
[0023] Based on the weighting factor, the initial priority of rescuing each stranded person and the distance between each ship and each stranded person are weighted and summed to obtain the real-time rescue weight of each stranded person; the weighting factor is used to adjust the relative importance of the distance between each ship and each stranded person and the initial priority of rescuing each stranded person.
[0024] Optionally, based on the real-time rescue weights of each stranded person, an improved Hungarian algorithm is used to generate a real-time vessel allocation scheme, including:
[0025] Construct a complete bipartite graph of equal size. The vertex set of the complete bipartite graph contains the set of ships and the set of trapped people. Each edge in the edge set of the complete bipartite graph carries the real-time rescue weight of the trapped people. The ship set and the trapped people set are constructed separately according to the number of trapped people and the number of ships. When the number of ships is not equal to the number of trapped people, virtual vertices are added to make the two sets equal. The rescue weight of virtual vertices, trapped people who have been rescued, and trapped people who do not need rescue is zero.
[0026] Set initial labels for all vertices and set matching conditions to find the weighted maximum matching in a complete bipartite graph; the matching condition is that for all edges, the sum of the labels of the ship vertices and the stranded personnel vertices is greater than or equal to the real-time rescue weight of the edge; at the same time, each ship and each stranded personnel is matched at most once; the weighted maximum matching is the one with the maximum number of matched edges and the maximum sum of the weights of the matched edges.
[0027] The matching is gradually improved by finding augmenting paths and updating vertex labels until all ships have found a match, or when no augmenting path can be found, the algorithm terminates and obtains a matching set; the matching set contains all matching edges, and the matching of each edge represents a ship being assigned to a specific stranded person.
[0028] Optionally, the matching is gradually improved by finding augmenting paths and updating vertex labels until all ships find a match, or when no augmenting path can be found, the algorithm terminates, yielding a matching set, including:
[0029] Starting from an unmatched vertex, use a depth-first search or breadth-first search algorithm to explore possible augmenting paths in a complete bipartite graph. An augmenting path is a path in the current match where both the starting and ending points are unmatched vertices, and the edges on the path are alternating matched and unmatched edges.
[0030] If an augmenting path is found, the matching set is updated by swapping matching edges and non-matching edges to increase the number of matching edges;
[0031] If no augmenting path is found, an alternating tree is constructed, and the amount of adjustment is updated based on the vertex information and preset labels of the alternating tree;
[0032] After each successful finding and application of an augmenting path, or after a vertex label update, the augmenting path search is re-executed.
[0033] The algorithm continues to iterate through the above steps until all ships have found a match, or until no augmenting path can be found, at which point it terminates and a matching set is obtained.
[0034] This invention also discloses a rescue vessel dispatching device based on a combinatorial optimization algorithm in storm surge scenarios, the device comprising:
[0035] The personnel and vessel information acquisition and update module is used to acquire information on stranded personnel and vessels, and update information on vessels that are not fully loaded in real time. Among them, when a vessel reaches its maximum passenger capacity, it temporarily withdraws from the allocation of rescue missions, and rejoins the allocation of rescue missions after completing the rescue mission.
[0036] The real-time rescue weight determination module is used to determine the real-time rescue weight of each stranded person based on the information of stranded persons and the information of vessels that are not fully loaded; the rescue weight is the priority for each vessel to be assigned to rescue a stranded person.
[0037] The real-time vessel allocation scheme generation module is used to generate a real-time vessel allocation scheme based on the real-time rescue weight of each stranded person using an improved Hungarian algorithm.
[0038] The repeat execution module is used to repeat the above steps until all trapped persons corresponding to the trapped persons information are rescued.
[0039] Optionally,
[0040] The information on the trapped personnel includes the number of trapped personnel, the age of each trapped person, their real-time health points, and the water depth; the real-time health points are based on the initial health points and decrease over time according to changes in water depth.
[0041] The vessel information includes the number of vessels and the distance between each vessel and each stranded person.
[0042] Optionally, the real-time rescue weight determination module includes:
[0043] The initial priority determination submodule is used to determine the initial priority for rescuing each trapped person based on their real-time vitals and age.
[0044] The real-time rescue weight determination submodule is used to calculate the real-time rescue weight of each trapped person by weighting the initial priority of each trapped person being rescued and the distance between each ship and each trapped person according to the weight factor. The weight factor is used to adjust the relative importance of the distance between each ship and each trapped person and the initial priority of each trapped person being rescued.
[0045] Optionally, the real-time vessel allocation scheme generation module includes:
[0046] The complete bipartite graph construction submodule is used to construct a complete bipartite graph of equal size. The vertex set of the complete bipartite graph contains the set of ships and the set of trapped people. Each edge in the edge set of the complete bipartite graph carries the real-time rescue weight of the trapped people. The set of ships and the set of trapped people are constructed separately according to the number of trapped people and the number of ships. When the number of ships is not equal to the number of trapped people, virtual vertices are added to make the two sets of numbers equal. The rescue weight of virtual vertices, trapped people who have been rescued, and trapped people who do not need rescue is zero.
[0047] The matching condition and label setting submodule is used to set initial labels for all vertices and set matching conditions to find the weighted maximum matching in a complete bipartite graph. The matching condition is that for all edges, the sum of the labels of the ship vertices and the stranded personnel vertices is greater than or equal to the real-time rescue weight of the edge. At the same time, each ship and each stranded personnel is matched at most once. The weighted maximum matching is the one with the maximum number of matched edges and the maximum sum of the weights of the matched edges.
[0048] The augmenting path search submodule is used to gradually improve the matching by finding augmenting paths and updating vertex labels until all ships have found a match, or when no augmenting path can be found, the algorithm terminates and obtains a matching set; the matching set contains all matching edges, and the matching of each edge represents a ship being assigned to a specific stranded person.
[0049] Optionally, the augmented path search submodule includes:
[0050] The first augmenting path search unit is used to explore possible augmenting paths in a complete bipartite graph, starting from an unmatched vertex, using either a depth-first search or a breadth-first search algorithm. An augmenting path is a path in the current match where both the starting and ending points are unmatched vertices, and the edges on the path are alternating matched and unmatched edges.
[0051] The matching set update unit is used to update the matching set by swapping matching edges and non-matching edges if an augmenting path is found, so as to increase the number of matching edges;
[0052] The vertex label update unit is used to construct an alternating tree if no augmenting path is found, and update the vertex labels based on the vertex information of the alternating tree and the preset label adjustment amount.
[0053] The second augmenting path search unit is used to re-execute the augmenting path search after each successful finding and application of an augmenting path, or after the vertex labels are updated.
[0054] The repeating unit is used to continuously iterate the above steps until all ships have found a match, or when no augmenting path can be found, the algorithm terminates and a matching set is obtained.
[0055] The present invention also discloses an electronic device, including a processor, a communication interface, a memory, and a communication bus, wherein the processor, the communication interface, and the memory communicate with each other through the communication bus;
[0056] The memory is used to store computer programs;
[0057] When the processor executes the program stored in the memory, it implements the rescue ship assignment method based on combinatorial optimization algorithm in storm surge scenarios as described in this invention.
[0058] The present invention also discloses one or more computer-readable media having instructions stored thereon that, when executed by one or more processors, cause the processors to perform the rescue vessel assignment method based on combinatorial optimization algorithm in storm surge scenarios as described in the present invention.
[0059] This invention has the following advantages:
[0060] This invention presents a rescue vessel assignment method based on a combinatorial optimization algorithm in storm surge scenarios. It acquires and updates information on stranded personnel and vessel status in real time, ensuring that vessels temporarily withdraw from task allocation once they reach their maximum capacity and rejoin after completing the current rescue, thus maintaining an efficient scheduling cycle. Furthermore, it dynamically determines the rescue weight of each stranded person by combining their individual attributes and location relationships, reflecting the urgency and rescue priority of different individuals. Employing an improved Hungarian algorithm, it dynamically generates an optimal vessel allocation scheme based on the real-time rescue weights of stranded personnel, while fully considering vessel capacity limitations. Each generated allocation scheme is calculated in real time based on the latest rescue weights and vessel availability, ensuring the effectiveness and timeliness of the scheme. As stranded personnel are gradually rescued, the above process is repeated until all those in need of rescue are rescued, ensuring the effectiveness, comprehensive coverage, and timeliness of the rescue operation. Attached Figure Description
[0061] Figure 1 This is a flowchart illustrating the steps of a rescue vessel dispatching method based on a combinatorial optimization algorithm in a storm surge scenario, as provided in an embodiment of the present invention.
[0062] Figure 2 This is a structural block diagram of a rescue ship dispatching device based on a combinatorial optimization algorithm in a storm surge scenario, provided by an embodiment of the present invention.
[0063] Figure 3 This is a block diagram of an electronic device provided in an embodiment of the present invention;
[0064] Figure 4This is a schematic diagram of a computer-readable medium provided in an embodiment of the present invention. Detailed Implementation
[0065] To make the above-mentioned objects, features and advantages of the present invention more apparent and understandable, the present invention will be further described in detail below with reference to the accompanying drawings and specific embodiments.
[0066] Reference Figure 1 The diagram illustrates a flowchart of a rescue vessel dispatching method based on a combinatorial optimization algorithm in a storm surge scenario, as provided in an embodiment of the present invention. Specifically, it may include the following steps:
[0067] Step 101: Obtain information on stranded personnel and vessels, and update information on vessels not fully loaded in real time; among them, when a vessel reaches its maximum passenger capacity, it temporarily withdraws from the allocation of rescue missions, and rejoins the allocation of rescue missions after completing the rescue mission.
[0068] Step 102: Determine the real-time rescue weight of each stranded person based on the information of stranded persons and vessels that are not fully loaded; the rescue weight is the priority for each vessel to be assigned to rescue a stranded person.
[0069] Step 103: Based on the real-time rescue weight of each stranded person, a real-time ship allocation scheme is generated using an improved Hungarian algorithm.
[0070] Step 104: Repeat the above steps until all trapped persons corresponding to the trapped persons information have been rescued.
[0071] In storm surge events, ensuring timely and effective rescue of stranded individuals is crucial. This invention provides a rescue vessel assignment method based on a combinatorial optimization algorithm. It aims to determine the rescue weights of stranded individuals by considering their attributes and location relationships within a storm surge scenario, combined with the characteristics of the scenario itself. This method comprehensively considers factors such as the location of different vessels, the priority of stranded individuals, and their rescue capabilities. Furthermore, based on an improved Hungarian algorithm and the weights of stranded individuals in a storm surge scenario, it solves the problem of allocating rescue tasks to a certain number of vessels when facing multiple rescue targets with different weights and using boats as transportation in storm surge flooding scenarios.
[0072] The standard Hungarian algorithm, a typical combinatorial optimization algorithm, is mainly used to solve the standard assignment problem, where the number of elements in two related sets must be equal. However, in storm surge scenarios, the number of ships and the number of stranded people are often unequal. This invention improves upon this by adding virtual weights. Furthermore, if a stranded person is rescued or no longer needs rescue for other reasons, that element can be retained in the set, and the weight of the edge pointing from a ship to that person can be modified to a minimum threshold to flexibly respond to potential subsequent rescue needs.
[0073] Specifically, this method first acquires and updates information on stranded personnel, vessels, and their status in real time. It ensures that vessels temporarily withdraw from task allocation once they reach their maximum capacity, rejoining after completing the current rescue, thus maintaining an efficient scheduling cycle. Based on this, and considering the attributes of the stranded personnel and their location, the method dynamically determines the rescue weight for each stranded individual. This can, to some extent, improve the targeting and focus of rescue efforts in storm surge scenarios, helping to fully utilize limited rescue resources.
[0074] To generate the optimal vessel allocation plan, this invention employs an improved Hungarian algorithm to handle multi-rescue target optimization problems while fully considering vessel capacity limitations. Each generated allocation plan is calculated in real-time based on the latest rescue weights and vessel availability, ensuring the plan's effectiveness and timeliness. As stranded personnel are gradually rescued, the system continuously repeats the above process until all those in need of rescue have been freed. This invention ensures the effectiveness, comprehensive coverage, and timeliness of the rescue operation.
[0075] In one embodiment of the present invention
[0076] The information on the trapped personnel includes the number of trapped personnel, the age of each trapped person, their real-time health points, and the water depth; the real-time health points are based on the initial health points and decrease over time according to changes in water depth.
[0077] The vessel information includes the number of vessels and the distance between each vessel and each stranded person.
[0078] In one embodiment of the present invention, the real-time rescue weight of each stranded person is determined based on information about stranded persons and information about vessels not fully loaded, including:
[0079] The initial priority for rescuing each trapped person is determined based on their real-time vital signs and age.
[0080] Based on the weighting factor, the initial priority of rescuing each stranded person and the distance between each ship and each stranded person are weighted and summed to obtain the real-time rescue weight of each stranded person; the weighting factor is used to adjust the relative importance of the distance between each ship and each stranded person and the initial priority of rescuing each stranded person.
[0081] In one embodiment of the present invention, a real-time vessel allocation scheme is generated using an improved Hungarian algorithm based on the real-time rescue weights of each stranded person, including:
[0082] Construct a complete bipartite graph of equal size. The vertex set of the complete bipartite graph contains the set of ships and the set of trapped people. Each edge in the edge set of the complete bipartite graph carries the real-time rescue weight of the trapped people. The ship set and the trapped people set are constructed separately according to the number of trapped people and the number of ships. When the number of ships is not equal to the number of trapped people, virtual vertices are added to make the two sets equal. The rescue weight of virtual vertices, trapped people who have been rescued, and trapped people who do not need rescue is zero.
[0083] Set initial labels for all vertices and set matching conditions to find the weighted maximum matching in a complete bipartite graph; the matching condition is that for all edges, the sum of the labels of the ship vertices and the stranded personnel vertices is greater than or equal to the real-time rescue weight of the edge; at the same time, each ship and each stranded personnel is matched at most once; the weighted maximum matching is the one with the maximum number of matched edges and the maximum sum of the weights of the matched edges.
[0084] The matching is gradually improved by finding augmenting paths and updating vertex labels until all ships have found a match, or when no augmenting path can be found, the algorithm terminates and obtains a matching set; the matching set contains all matching edges, and the matching of each edge represents a ship being assigned to a specific stranded person.
[0085] In one embodiment of the present invention, the matching is gradually improved by finding augmenting paths and updating vertex labels until all ships find a match, or when no augmenting path can be found, the algorithm terminates, resulting in a matching set, including:
[0086] Starting from an unmatched vertex, use a depth-first search or breadth-first search algorithm to explore possible augmenting paths in a complete bipartite graph. An augmenting path is a path in the current match where both the starting and ending points are unmatched vertices, and the edges on the path are alternating matched and unmatched edges.
[0087] If an augmenting path is found, the matching set is updated by swapping matching edges and non-matching edges to increase the number of matching edges;
[0088] If no augmenting path is found, an alternating tree is constructed, and the amount of adjustment is updated based on the vertex information and preset labels of the alternating tree;
[0089] After each successful finding and application of an augmenting path, or after a vertex label update, the augmenting path search is re-executed.
[0090] The algorithm continues to iterate through the above steps until all ships have found a match, or until no augmenting path can be found, at which point it terminates and a matching set is obtained.
[0091] 1. Determine the rescue priorities for trapped personnel.
[0092] In storm surge scenarios, people trapped in flooded areas are often not concentrated in one place, but rather dispersed. These people range in age. ,weight Health points ( ), water depth Information such as... Personnel will continuously lose health points while in the water. Assuming initial health points... Deducting deceleration rate Is it water depth? The function, health points Over time Decrease. Therefore:
[0093]
[0094] Based on the above information, assign an integer priority to each person. :
[0095] ;
[0096] ;
[0097] ;
[0098] Other situations .
[0099] The next step is normalization. Let the number of ships be... The number of people trapped is Priority is The next step is to calculate the relative distance. (The ship...) With a certain trapped person The distance is Assuming the ship The maximum distance to the trapped people is Therefore, each distance can be standardized as:
[0100]
[0101] Normalize the priority: the priority is a finite range of integers ( You can directly divide by the highest priority:
[0102]
[0103] In this way, both distance and priority are mapped to the interval [0, 1], which is on the same order of magnitude.
[0104] The next step is to perform a scaling transformation. Appropriate scaling of the distance can bring it closer to the order of magnitude of the priority level.
[0105]
[0106] This way, for larger distances, the numerical values will be narrowed down to a smaller range, closer to the priority value. Then, a weighted sum is performed, combining distance and priority. A weight is set. ( This allows for the adjustment of the relative importance of the two factors, forming a comprehensive rescue index. :
[0107]
[0108] 2. Solve for the optimal rescue dispatch plan.
[0109] Assuming that a trapped person can only be rescued by one ship at a time, and the ship has a maximum passenger capacity. However, only one trapped person can be rescued at a time. It is a collection of ships, defined as ,in .make It is a collection of trapped people, defined as ,in .
[0110] meet At this time, it is necessary to construct a complete bipartite graph of the same size. .if (The number of boats is less than the number of people trapped), in Add virtual vertices , recorded as .if (The number of ships exceeds the number of people trapped), in Add virtual vertices , recorded as .if ,make .
[0111] Weight Indicates ships Assigned to rescue trapped personnel The priority, of which , and The larger the weight, the higher the priority. In a weighted bipartite graph... middle,
[0112] Vertex set ,and ;
[0113] Edge set Each edge With weight ;
[0114] ,if or It is a virtual vertex, or Rescued or No rescue is needed.
[0115] The goal is to find a match such that:
[0116] (1) The maximum number of matched edges is the longest matching.
[0117] (2) The maximum weight of the matching.
[0118] Introduce the following variables. Matching variables. , indicating ships Whether they were assigned to the trapped personnel :
[0119]
[0120] Vertex label and , representing the labels of the ship's apex and the apex of the trapped personnel, respectively. The initial labels are:
[0121]
[0122] The goal is to maximize the total weight of the match:
[0123]
[0124] The following constraints must be satisfied simultaneously:
[0125] (1) Each vessel can be matched with at most one stranded person at any given time:
[0126]
[0127] (2) Each trapped person may be matched with at most one vessel:
[0128]
[0129] (3) The matched edges must satisfy the label condition, that is:
[0130]
[0131] An augmenting path is a path in the current matching where both the starting and ending vertices are unmatched, and its edges consist of alternating matched and unmatched edges. Finding an augmenting path increases the number of matched edges. Let the current matching set be denoted as . Then an augmenting path is a path that satisfies the following conditions. :
[0132] The starting point of the path is an unmatched vertex;
[0133] The edges on the path alternate and middle.
[0134] By searching for augmenting paths, a new matching path can be found, and the number of matched edges is incremented by 1 along this path. Through finding augmenting paths and updating vertex labels, the matching is gradually improved until the weighted maximum matching is found.
[0135] Step 1: Finding augmenting paths
[0136] (1) Start from the unmatched vertex and search for an augmenting path. Use Depth-First Search (DFS) or Breadth-First Search (BFS) to explore and find an augmenting path. .
[0137] (2) If an augmenting path is found, the matching set can be updated by swapping matching edges and non-matching edges. .
[0138] (3) If no augmentation path is found, proceed to step 2.
[0139] Step 2: Update the label
[0140] (1) If from Since no augmenting path was found at the starting point, the vertex labels need to be adjusted. and This expands the search space for augmenting paths. Initially, some left vertices can be reached by traversing alternating paths of unmatched, matched, unmatched... Extracting these paths yields a tree, called an alternating tree. The left and right vertices in an alternating tree are defined as vertex sets, respectively. Points not on the alternating tree are similarly defined as... .
[0141] (2) Define a label adjustment amount :
[0142]
[0143] (3) Update vertex labels:
[0144]
[0145]
[0146] (4) Repeat step 1.
[0147] Step 3: Termination Conditions
[0148] The algorithm terminates when all ships have found a match, or when no augmenting path can be found. If a matched edge involves a dummy vertex or a dummy edge (with a weight of 0), these edges are ignored.
[0149] Finally, the matching set It contains all matching edges Each edge match represents a ship. Assigned to the trapped personnel The matching scheme is a weighted maximum matching, such that:
[0150]
[0151] It has reached its maximum value.
[0152] At this point, settings If the ship The number of people reached the maximum carrying capacity. Then from the set Delete element Otherwise, recalculate the rescue weights for the trapped personnel and solve for the optimal rescue dispatch plan to reach maximum capacity. ships After completing the rescue, rejoin the group. .when The rescue was completed at that time.
[0153] The present invention has the following advantages:
[0154] (1) This invention takes into account the spatial distribution heterogeneity, physical condition and age differences of trapped individuals, and uses this information to reduce and determine the rescue weight of individuals. To a certain extent, it can improve the targeting and direction of rescue of trapped people in storm surge scenarios, and help to make full use of limited rescue resources.
[0155] (2) This invention takes into account the characteristics of individuals and rescue missions, and considers the constraints of ship capacity. It integrates various factors and calculates the best ship scheduling scheme through an improved Hungarian algorithm, which helps to improve the effectiveness of rescue in storm surge scenarios.
[0156] It should be noted that, for the sake of simplicity, the method embodiments are all described as a series of actions. However, those skilled in the art should understand that the embodiments of the present invention are not limited to the described order of actions, because according to the embodiments of the present invention, some steps can be performed in other orders or simultaneously. Furthermore, those skilled in the art should also understand that the embodiments described in the specification are preferred embodiments, and the actions involved are not necessarily essential to the embodiments of the present invention.
[0157] Reference Figure 2 The diagram illustrates a structural block diagram of a rescue ship dispatching device based on a combinatorial optimization algorithm in a storm surge scenario, as provided in an embodiment of the present invention. Specifically, it may include the following modules:
[0158] The personnel and vessel information acquisition and update module 201 is used to acquire information on stranded personnel and vessels, and update information on vessels that are not fully loaded in real time; among them, when a vessel reaches its maximum passenger capacity, it temporarily withdraws from the allocation of rescue missions, and rejoins the allocation of rescue missions after completing the rescue mission.
[0159] The real-time rescue weight determination module 202 is used to determine the real-time rescue weight of each stranded person based on the information of stranded persons and the information of vessels that are not fully loaded; the rescue weight is the priority of each vessel being assigned to rescue a stranded person.
[0160] The real-time vessel allocation scheme generation module 203 is used to generate a real-time vessel allocation scheme based on the real-time rescue weight of each stranded person using an improved Hungarian algorithm.
[0161] The repeat execution module 204 is used to repeat the above steps until all trapped persons corresponding to the trapped persons information are rescued.
[0162] Optionally,
[0163] The information on the trapped personnel includes the number of trapped personnel, the age of each trapped person, their real-time health points, and the water depth; the real-time health points are based on the initial health points and decrease over time according to changes in water depth.
[0164] The vessel information includes the number of vessels and the distance between each vessel and each stranded person.
[0165] Optionally, the real-time rescue weight determination module includes:
[0166] The initial priority determination submodule is used to determine the initial priority for rescuing each trapped person based on their real-time vitals and age.
[0167] The real-time rescue weight determination submodule is used to calculate the real-time rescue weight of each trapped person by weighting the initial priority of each trapped person being rescued and the distance between each ship and each trapped person according to the weight factor. The weight factor is used to adjust the relative importance of the distance between each ship and each trapped person and the initial priority of each trapped person being rescued.
[0168] Optionally, the real-time vessel allocation scheme generation module includes:
[0169] The complete bipartite graph construction submodule is used to construct a complete bipartite graph of equal size. The vertex set of the complete bipartite graph contains the set of ships and the set of trapped people. Each edge in the edge set of the complete bipartite graph carries the real-time rescue weight of the trapped people. The set of ships and the set of trapped people are constructed separately according to the number of trapped people and the number of ships. When the number of ships is not equal to the number of trapped people, virtual vertices are added to make the two sets of numbers equal. The rescue weight of virtual vertices, trapped people who have been rescued, and trapped people who do not need rescue is zero.
[0170] The matching condition and label setting submodule is used to set initial labels for all vertices and set matching conditions to find the weighted maximum matching in a complete bipartite graph. The matching condition is that for all edges, the sum of the labels of the ship vertices and the stranded personnel vertices is greater than or equal to the real-time rescue weight of the edge. At the same time, each ship and each stranded personnel is matched at most once. The weighted maximum matching is the one with the maximum number of matched edges and the maximum sum of the weights of the matched edges.
[0171] The augmenting path search submodule is used to gradually improve the matching by finding augmenting paths and updating vertex labels until all ships have found a match, or when no augmenting path can be found, the algorithm terminates and obtains a matching set; the matching set contains all matching edges, and the matching of each edge represents a ship being assigned to a specific stranded person.
[0172] Optionally, the augmented path search submodule includes:
[0173] The first augmenting path search unit is used to explore possible augmenting paths in a complete bipartite graph, starting from an unmatched vertex, using either a depth-first search or a breadth-first search algorithm. An augmenting path is a path in the current match where both the starting and ending points are unmatched vertices, and the edges on the path are alternating matched and unmatched edges.
[0174] The matching set update unit is used to update the matching set by swapping matching edges and non-matching edges if an augmenting path is found, so as to increase the number of matching edges;
[0175] The vertex label update unit is used to construct an alternating tree if no augmenting path is found, and update the vertex labels based on the vertex information of the alternating tree and the preset label adjustment amount.
[0176] The second augmenting path search unit is used to re-execute the augmenting path search after each successful finding and application of an augmenting path, or after the vertex labels are updated.
[0177] The repeating unit is used to continuously iterate the above steps until all ships have found a match, or when no augmenting path can be found, the algorithm terminates and a matching set is obtained.
[0178] As the device embodiment is basically similar to the method embodiment, the description is relatively simple, and relevant parts can be found in the description of the method embodiment.
[0179] In addition, embodiments of the present invention also provide an electronic device, such as... Figure 3 As shown, it includes a processor 301, a communication interface 302, a memory 303, and a communication bus 304, wherein the processor 301, the communication interface 302, and the memory 303 communicate with each other through the communication bus 304.
[0180] Memory 303 is used to store computer programs;
[0181] When the processor 301 executes the program stored in the memory 303, it implements the rescue ship assignment method based on combinatorial optimization algorithm in the storm surge scenario as described in the above embodiments.
[0182] The communication bus mentioned above can be a Peripheral Component Interconnect (PCI) bus or an Extended Industry Standard Architecture (EISA) bus, etc. This communication bus can be divided into address bus, data bus, control bus, etc. For ease of illustration, only one thick line is used to represent it in the diagram, but this does not mean that there is only one bus or one type of bus.
[0183] The communication interface is used for communication between the aforementioned terminal and other devices.
[0184] The memory may include random access memory (RAM) or non-volatile memory, such as at least one disk storage. Alternatively, the memory may be at least one storage device located away from the processor.
[0185] The processors mentioned above can be general-purpose processors, including central processing units (CPUs), network processors (NPs), etc.; they can also be digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other programmable logic devices, discrete gate or transistor logic devices, or discrete hardware components.
[0186] like Figure 4 As shown, in another embodiment of the present invention, a computer-readable storage medium 401 is also provided, which stores instructions that, when executed on a computer, cause the computer to execute the rescue ship assignment method based on combinatorial optimization algorithm in the storm surge scenario described in the above embodiment.
[0187] In another embodiment of the present invention, a computer program product containing instructions is also provided, which, when run on a computer, causes the computer to execute the rescue ship assignment method based on combinatorial optimization algorithm in the storm surge scenario described in the above embodiment.
[0188] In the above embodiments, implementation can be achieved, in whole or in part, through software, hardware, firmware, or any combination thereof. When implemented in software, it can be implemented, in whole or in part, as a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, all or part of the processes or functions described in the embodiments of the present invention are generated. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another. For example, the computer instructions can be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via wired (e.g., coaxial cable, fiber optic, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) means. The computer-readable storage medium can be any available medium accessible to a computer or a data storage device such as a server or data center that integrates one or more available media. The available medium can be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium (e.g., solid-state disk (SSD)).
[0189] It should be noted that, in this document, relational terms such as "first" and "second" are used only to distinguish one entity or operation from another, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Furthermore, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Without further limitations, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes said element.
[0190] The various embodiments in this specification are described in a related manner. Similar or identical parts between embodiments can be referred to mutually. Each embodiment focuses on describing the differences from other embodiments. In particular, the apparatus embodiments are basically similar to the method embodiments, so the description is relatively simple; relevant parts can be referred to the descriptions of the method embodiments.
[0191] The above description is merely a preferred embodiment of the present invention and is not intended to limit the scope of protection of the present invention. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of the present invention are included within the scope of protection of the present invention.
Claims
1. A method for dispatching rescue vessels based on a combinatorial optimization algorithm in a storm surge scenario, characterized in that, The method includes: Obtain information on stranded personnel and vessels, and update information on vessels not fully loaded in real time; vessels that have reached their maximum capacity will temporarily withdraw from the allocation of rescue missions, and will rejoin the allocation of rescue missions after completing their rescue missions; Based on information about stranded personnel and vessels not fully loaded, determine the real-time rescue weight for each stranded person; the rescue weight is the priority for each vessel to be assigned to rescue a particular stranded person. Based on the real-time rescue weight of each stranded person, an improved Hungarian algorithm is used to generate a real-time ship allocation scheme. Repeat the above steps until all the trapped individuals corresponding to the information on the trapped individuals have been rescued; The information on the trapped personnel includes the number of trapped personnel, the age of each trapped person, their real-time health points, and the water depth; the real-time health points are based on the initial health points and decrease over time according to changes in water depth. The vessel information includes the number of vessels and the distance between each vessel and each stranded person; Based on information about stranded individuals and vessels not fully loaded, determine the real-time rescue weight for each stranded individual, including: The initial priority for rescuing each trapped person is determined based on their real-time vital signs and age. Based on the weighting factor, the initial priority of rescuing each stranded person and the distance between each ship and each stranded person are weighted and summed to obtain the real-time rescue weight of each stranded person; the weighting factor is used to adjust the relative importance of the distance between each ship and each stranded person and the initial priority of rescuing each stranded person. Based on the real-time rescue weights of each stranded person, an improved Hungarian algorithm is used to generate a real-time ship allocation scheme, including: Construct a complete bipartite graph of equal size. The vertex set of the complete bipartite graph contains the set of ships and the set of trapped people. Each edge in the edge set of the complete bipartite graph carries the real-time rescue weight of the trapped people. The ship set and the trapped people set are constructed separately according to the number of trapped people and the number of ships. When the number of ships is not equal to the number of trapped people, virtual vertices are added to make the two sets equal. The rescue weight of virtual vertices, trapped people who have been rescued, and trapped people who do not need rescue is zero. Set initial labels for all vertices and set matching conditions to find the weighted maximum matching in a complete bipartite graph; the matching condition is that for all edges, the sum of the labels of the ship vertices and the stranded personnel vertices is greater than or equal to the real-time rescue weight of the edge; at the same time, each ship and each stranded personnel is matched at most once; the weighted maximum matching is the one with the maximum number of matched edges and the maximum sum of the weights of the matched edges. The matching is gradually improved by finding augmenting paths and updating vertex labels until all ships have found a match, or when no augmenting path can be found, the algorithm terminates and obtains a matching set; the matching set contains all matching edges, and the matching of each edge represents a ship being assigned to a specific stranded person.
2. The rescue vessel assignment method based on combinatorial optimization algorithm in storm surge scenarios according to claim 1, characterized in that, The matching is gradually improved by finding augmenting paths and updating vertex labels until all ships have found a match, or no augmenting path can be found. The algorithm then terminates, yielding a matching set, including: Starting from an unmatched vertex, use a depth-first search or breadth-first search algorithm to explore possible augmenting paths in a complete bipartite graph. An augmenting path is a path in the current match where both the starting and ending points are unmatched vertices, and the edges on the path are alternating matched and unmatched edges. If an augmenting path is found, the matching set is updated by swapping matching edges and non-matching edges to increase the number of matching edges; If no augmenting path is found, an alternating tree is constructed, and the amount of adjustment is updated based on the vertex information and preset labels of the alternating tree; After each successful finding and application of an augmenting path, or after a vertex label update, the augmenting path search is re-executed. The algorithm continues to iterate through the above steps until all ships have found a match, or until no augmenting path can be found, at which point it terminates and a matching set is obtained.
3. A rescue vessel dispatching device based on a combinatorial optimization algorithm in a storm surge scenario, characterized in that, The device includes: The personnel and vessel information acquisition and update module is used to acquire information on stranded personnel and vessels, and update information on vessels that are not fully loaded in real time. Among them, when a vessel reaches its maximum passenger capacity, it temporarily withdraws from the allocation of rescue missions, and rejoins the allocation of rescue missions after completing the rescue mission. The real-time rescue weight determination module is used to determine the real-time rescue weight of each stranded person based on the information of stranded persons and the information of vessels that are not fully loaded; the rescue weight is the priority for each vessel to be assigned to rescue a stranded person. The real-time vessel allocation scheme generation module is used to generate a real-time vessel allocation scheme based on the real-time rescue weight of each stranded person using an improved Hungarian algorithm. The repeat execution module is used to repeat the above steps until all the trapped personnel corresponding to the trapped personnel information have been rescued; The information on the trapped personnel includes the number of trapped personnel, the age of each trapped person, their real-time health points, and the water depth; the real-time health points are based on the initial health points and decrease over time according to changes in water depth. The vessel information includes the number of vessels and the distance between each vessel and each stranded person; The initial priority determination submodule is used to determine the initial priority for rescuing each trapped person based on their real-time vitals and age. The real-time rescue weight determination submodule is used to calculate the real-time rescue weight of each trapped person by weighting the initial priority of each trapped person's rescue and the distance between each ship and each trapped person according to the weight factor. The weight factor is used to adjust the relative importance of the distance between each ship and each trapped person and the initial priority of each trapped person's rescue. The real-time vessel allocation scheme generation module includes: The complete bipartite graph construction submodule is used to construct a complete bipartite graph of equal size. The vertex set of the complete bipartite graph contains the set of ships and the set of trapped people. Each edge in the edge set of the complete bipartite graph carries the real-time rescue weight of the trapped people. The set of ships and the set of trapped people are constructed separately according to the number of trapped people and the number of ships. When the number of ships is not equal to the number of trapped people, virtual vertices are added to make the two sets of numbers equal. The rescue weight of virtual vertices, trapped people who have been rescued, and trapped people who do not need rescue is zero. The matching condition and label setting submodule is used to set initial labels for all vertices and set matching conditions to find the weighted maximum matching in a complete bipartite graph. The matching condition is that for all edges, the sum of the labels of the ship vertices and the stranded personnel vertices is greater than or equal to the real-time rescue weight of the edge. At the same time, each ship and each stranded personnel is matched at most once. The weighted maximum matching is the one with the maximum number of matched edges and the maximum sum of the weights of the matched edges. The augmenting path search submodule is used to gradually improve the matching by finding augmenting paths and updating vertex labels until all ships have found a match, or when no augmenting path can be found, the algorithm terminates and obtains a matching set; the matching set contains all matching edges, and the matching of each edge represents a ship being assigned to a specific stranded person.
4. An electronic device, characterized in that, It includes a processor, a communication interface, a memory, and a communication bus, wherein the processor, the communication interface, and the memory communicate with each other through the communication bus; The memory is used to store computer programs; When the processor executes the program stored in the memory, it implements the rescue ship assignment method based on combinatorial optimization algorithm in storm surge scenarios as described in any one of claims 1-2.
5. One or more computer-readable media having instructions stored thereon that, when executed by one or more processors, cause the processors to perform the rescue vessel assignment method based on a combinatorial optimization algorithm in a storm surge scenario as described in any one of claims 1-2.
Citation Information
Patent Citations
Ship damage management personnel network scheduling method based on shortest rescue time
CN115952960A
Rapid search and rescue path planning method based on positioning of personnel falling into water
CN118567344A