Patent ID: 9530093
Filing Date: 2016-12-27
CPC Classification: G06F,G06N

Claim Text:
1. A method for solving combinatorial optimization problems, the method comprising: receiving a plurality of problem instance parameters associated with a graph, wherein the graph comprises a plurality of nodes and a plurality of edges, wherein each edge of the plurality of edges links two nodes of the plurality of nodes, and wherein at least one node of the plurality of nodes in the graph has an associated capacity requirement value; determining when a dynamic path change indicator exists; initializing the graph based on the determining the dynamic path change indicator does not exist; inserting a placeholder node and at least one placeholder node edge based on determining the dynamic path change indicator does exist; reinitializing the graph with the inserted place holder node and the at least one placeholder node edge; initializing the reinitialized graph; initializing an ant pool, the ant pool comprising a plurality of data structures, wherein each data structure of the plurality of data structures has a plurality of characteristics and wherein the plurality of characteristics includes a carrying capacity characteristic, a pheromone persistence characteristic, a relative pheromone importance characteristic, and an explore strategy selection characteristic; executing the problem solving iteration on the initialized graph or on the reinitialized graph, wherein a problem solution is generated for the each data structure of the plurality of data structures based on the plurality of characteristics and the capacity requirement associated with adjacent nodes and the carrying capacity of each data structure, and wherein the problem solving iteration includes selecting an adjacent node to add to the problem solution, the adjacent node being linked to a current node by an edge of the plurality of edges, and wherein the edge links the current node to the adjacent node, and wherein the selecting the adjacent node is based on an edge weight and a pheromone value associated with each edge of the plurality of edges linking the current node with the adjacent node, and wherein the problem solving iteration adds adjacent nodes to the problem solution until the problem solution contains each node of the graph; sorting the ant pool based on a path cost value associated with the problem solution of the each data structure of the plurality of data structures, the sorting ranging from a lowest path cost solution to a highest path cost solution, wherein the path cost value is based on the edge weight associated with each edge in the problem solution; selecting at least two data structures from the sorted ant pool having a low path cost solution; initializing a plurality of child data structures having at least one characteristic based on the plurality of characteristics of each of the selected at least two data structures; mutating at least one random characteristic associated with each child data structure of the plurality of child data structures by using a fixed formula to flip the value of the at least one random characteristic; and reinitializing the ant pool wherein the reinitialized ant pool comprises the selected at least two data structures and the plurality of child data structures for use in a subsequent problem solving iteration.