GB2590501A - Combinatorial optimisation - Google Patents

Combinatorial optimisation Download PDF

Info

Publication number
GB2590501A
GB2590501A GB1919039.6A GB201919039A GB2590501A GB 2590501 A GB2590501 A GB 2590501A GB 201919039 A GB201919039 A GB 201919039A GB 2590501 A GB2590501 A GB 2590501A
Authority
GB
United Kingdom
Prior art keywords
sub
neighbourhood
solution
optimisation
initial solution
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
GB1919039.6A
Other versions
GB201919039D0 (en
Inventor
Owen Gareth
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kalibrate Tech Ltd
Original Assignee
Kalibrate Tech Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Kalibrate Tech Ltd filed Critical Kalibrate Tech Ltd
Priority to GB1919039.6A priority Critical patent/GB2590501A/en
Publication of GB201919039D0 publication Critical patent/GB201919039D0/en
Priority to PCT/GB2020/053261 priority patent/WO2021123788A1/en
Publication of GB2590501A publication Critical patent/GB2590501A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/11Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/12Computing arrangements based on biological models using genetic models
    • G06N3/126Evolutionary algorithms, e.g. genetic algorithms or genetic programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/04Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation

Abstract

A method of combinatorial optimisation comprising: receiving an initial solution to a combinatorial optimisation problem S201; sub-dividing the initial solution into a plurality of solution sub-parts S202; performing a plurality of neighbourhood searches, each neighbourhood search based upon a respective sub-part of the plurality of solution sub-parts to generate a candidate value for the respective sub-part, wherein each neighbourhood search is performed in parallel S203; and combining the candidate values for the respective sub-parts into an output value for the combinatorial optimisation S204. The method may be used to optimise a network, for path routing, setting of manufacturing parameters, or drug discovery.

Description

Combinatorial Optimisation
Technical Field
This specification relates to systems and methods for performing combinatorial optimisation.
Backqround In general, combinatorial optimisation attempts to find the best set of options according to one or more constraints for a given problem. Combinatorial optimisation is applicable to many real-world problems including path routing and resource allocation. However, as the number of variables and possible options for each variable increases, the computational time required to solve the combinatorial optimisation problem may become unfeasibly large.
One method for solving a combinatorial optimisation problem is to use a genetic algorithm. Genetic algorithms however may be prone to becoming stuck in local optima. Methods for mitigating against this, such as increasing the population size, also increases the run-time of the algorithm. In addition, where there are a large number of constraints on the solution and the relative number of feasible solutions according to the constraints are low compared to the total unconstrained search space, the genetic algorithm may waste valuable resources on exploring unfeasible solutions and may even fail to find a feasible solution.
It is desired to provide a method of combinatorial optimisation that runs efficiently whilst also capable of avoiding local minima.
Summary
According to a first aspect, there is provided a computer-implemented method of combinatorial optimisation comprising: receiving an initial solution to a combinatorial optimisation problem; sub-dividing the initial solution into a plurality of solution sub-parts; performing a plurality of neighbourhood searches, each neighbourhood search based upon a respective sub-part of the plurality of solution sub-parts to generate a candidate value for the respective sub-part, wherein each neighbourhood search is performed in parallel; and combining the candidate values for the respective sub-parts into an output value for the combinatorial optimisation.
In this way, the combinatorial optimisation problem is divided into a plurality of sub-problems that can be efficiently solved using neighbourhood search and performed in parallel. The solutions to the sub-problems are then combined to provide a solution to the combinatorial optimisation problem. For example, the solution to the sub-problem may replace the respective sub-part in the initial solution.
The initial solution may be a generated using a different combinatorial optimisation technique such as a genetic algorithm which may be susceptible to becoming stuck in local optima. For a genetic algorithm, this can be mitigated by using a large population, however, this may be impractical for large scale problems. By performing a sub-division of the initial solution and a neighbourhood search based upon respective sub-parts to solve each sub-problem, it may be possible to escape from the local optima and progress towards a more optimal solution in a computationally efficient manner using parallel processing. As such, the provided method is particularly adapted for implementation in a parallel processing system.
Sub-dividing the initial solution may comprise randomly sub-dividing the initial solution into a plurality of solution sub-parts. In performing a neighbourhood search based upon a respective sub-part, the rest of the initial solution may be held fixed whilst a candidate value for the respective sub-part is determined. The plurality of neighbourhood searches may be carried out based upon a very large scale neighbourhood search technique.
A neighbourhood may be based upon a cost threshold. For example, each solution may be associated with a respective cost and a neighbourhood may comprise the solutions having a change in the cost within a specified threshold.
The combinatorial optimisation may be an optimisation of a plurality of network locations. For example, a network may be a computer network or a physical network such as a transportation network or a retail network; and a corresponding network location may be a node of the computer network, a stop in a public transportation network, or a retail store or warehouse of a retail network. The optimisation of the plurality of network locations may comprise options for closing the network location, improving the network location or leaving a network location unchanged.
A neighbourhood may be based upon a set of modified network locations that are to be modified according to the initial solution and a set of unmodified network locations that are not to be modified according to the initial solution, wherein the modifications to the set of modified network locations have an effect on the set of unmodified network locations. A network location may be associated with a property, and the effect on the unmodified network locations is a change in the property of the set of unmodified network locations exceeding a threshold change. For example, a network location may be associated with a property such as bandwidth, latency, volume or geography amongst others. The modification of a network location may cause a change in the properties of other network locations. If such a change exceeds a threshold, the affected unmodified network location may be included in the neighbourhood for searching. It will be appreciated that each respective sub-part may have a different neighbourhood definition.
The size of the sub-parts and/or the size of the neighbourhood may be chosen based upon the capabilities of the plurality of processing units and/or size of any coupled memory.
It will be appreciated that the combinatorial optimisation may be applied to any combinatorial optimisation problem. For example, other than optimisation a plurality of network locations, the method may be applied to path routing, resource allocation, setting of manufacturing parameters, and drug discovery amongst others.
The initial solution may be generated by a genetic algorithm. The initial population for performing the genetic algorithm may be generated based upon a weighted sampling procedure, the weighting based upon a constraint of the optimisation problem. That is, the generation process may be biased towards generating initial candidate solutions that are more feasible according to any constraints on the solution. Modifying the way the initial population is generated to take account of constraints may reduce the run-time of the genetic algorithm as compared to including penalty terms in a fitness function to discourage solutions that violate the constraints.
An individual of the population may be encoded as a binary string and each bit of the binary string may be set according a probability distribution. The probability distribution may be based upon a maximum number of non-zero bits. For example, each bit may be set to one with probability MIN where M is the maximum number of non-zero bits and N is the total length of the binary string. In this way, the mean number of non-zero bits in each candidate solution of the initial population is M and each initial solution generated is likely to be near-feasible with respect to a constraint on the number of non-zero bits.
The probability distribution may be based upon a relative cost associated with an option represented by the respective binary digit. In this case, the probability distribution may be weighted based upon a relative cost associated with the option represented by a particular bit such that the mean cost is equal to a total budget.
There may also exist constraints specifying mutually exclusive options. For example, it is possible that only one out of a particular set of bits in the binary string may be set at once. After generation of the initial population, a pass may be performed to modify the initial solutions such that any mutually exclusive bit constraints are met, such as through a random selection of one of the set bits. The initial population may comprise a mixture of individuals that comply with one or more constraints and individuals that do not comply with the one or more constraints. It may be helpful to include some solutions that violate such constraints in order to encourage exploration of the search space by the genetic algorithm.
The genetic algorithm may comprise a mutation operator configured to maintain a constraint based upon mutually exclusive bits. That is, a mutation operation may modify the set bit in the set of mutually exclusive bits rather than considering each bit individually and whether to modify that bit. Likewise, the genetic algorithm may comprise a crossover operation configured to maintain a constraint based upon mutually exclusive bits.
The genetic algorithm may comprise a probability associated with mutation based upon a cost associated with the mutation. For example, the probability associated with crossover may be modified such that a cost-increasing change is reduced for solutions in the population that already violate cost constraints. Likewise, the genetic algorithm may comprise a probability associated with crossover based upon one or more constraints.
Performing a plurality of neighbourhood searches may be carried out using a graphics processing unit or distributed computing system. The initial solution may be received by a CPU and the sub-division of the initial solution may be performed by the CPU. The respective sub-parts of the initial solution may be transferred to the GPU or distributed computing system for performing the plurality of neighbourhood searches in parallel. The candidate values for the respective sub-parts may be transferred back to the CPU for combination and output.
According to another aspect, there is provided a system comprising a plurality of processing units, wherein each processing unit is coupled to a memory; wherein the plurality of processing units are configured to carry out a method according to the above aspect. The plurality of processing units may comprise a plurality of processing units of a GPU.
According to a further aspect, there is provided a computer readable medium comprising stored instructions that when executed by a plurality of processing units causes the plurality of processing units to carry out a method according to the above method aspect.
Aspects can be combined and it will be readily appreciated that features described in the context of one aspect can be combined with other aspects.
It will be appreciated that aspects can be implemented in any convenient form. For example, aspect may be implemented by appropriate computer programs which may be carried on appropriate carrier media which may be tangible carrier media (e.g. disks) or intangible carrier media (e.g. communications signals). Aspects may also be implemented using suitable apparatus which may take the form of programmable computers running computer programs.
Brief Description of the Figures
Embodiments will now be described, by way of example, with reference to the accompanying drawings, in which: Figure 1 is a schematic illustration of a system for performing combinatorial optimisation.
Figure 1A is a schematic illustration of the system of Figure 1 in more detail.
Figure 2 is a flowchart showing exemplary processing for performing combinatorial optimisation.
Detailed Description
Referring now to Figure 1, a system 100 comprises a plurality of processing units 101a... n. The system 100 may be a distributed system in which some or all of the plurality of processing units 101a... n are located within different physical devices. Alternatively, the plurality of processing units 101a... n may be located within the same physical device such as a graphics processing unit (GPU). The plurality of processing units 101a... n are coupled to a memory (not shown in Figure 1). The memory may be a memory shared between all or some of the plurality of processing units 101a... n or each processing unit of the plurality of processing units 101a... n may have exclusive access to its own dedicated memory or the memory may be a combination of shared and dedicated memory.
The system 100 is arranged to receive an initial solution 102 for a combinatorial optimisation problem. For example, the initial solution 102 may have been generated by applying a genetic algorithm to attempt to solve the combinatorial optimisation problem as described in more detail below. The system 100 may also receive data 103 if the combinatorial optimisation problem requires data upon which the optimisation is to be carried out on. For example, data may include a specification of an objective function to optimise and/or any constraints on the solution such as mutually exclusive values.
The system 100 is further arranged to sub-divide the initial solution 102 into a plurality of solution sub-parts. For example, the initial solution 102 may be randomly divided into sub-parts or the initial solution 102 may be divided into sub-parts based upon a definition of particular neighbourhoods of the initial solution 102.
The system 100 is arranged to perform a plurality of neighbourhood searches in parallel, each neighbourhood search being based upon a respective sub-part of the plurality of solution sub-parts. The neighbourhood search generates a candidate value for the respective sub-part which may be a replacement value for the respective sub-part in the initial solution 102. In this way, the combinatorial optimisation problem may be divided into smaller sub-problems that can be efficiently handled by processing units of a distributed system or a GPU. In addition, the initial solution 102 that is received may be a local optimum. By sub-dividing the initial solution 102 and performing neighbourhood searches on respective sub-parts in parallel, the system 100 is able to perform very large neighbourhood searches on each respective sub-part and enables the combinatorial optimisation process to escape from the local optimum and proceed towards a more optimal solution. In a genetic algorithm, local optimum can be mitigated against by increasing the population size. However, for large scale problems, this would increase run-time. By sub-dividing the initial solution 102 and performing neighbourhood searches on respective sub-parts in parallel, it is possible to mitigate against local optima in a more computationally efficient manner.
The neighbourhood search may be based upon a very large scale neighbourhood search technique as deemed appropriate by a person skilled in the art. The construction of a neighbourhood over which the neighbourhood search is to be carried out is described in more detail below.
The system 100 is arranged to combine the candidate values for the respective subparts into an output value 104 or solution for the combinatorial optimisation. As noted above, the candidate values may replace the respective values of the sub-parts of the initial solution 102 to form the output value 104. The combination may also be based upon an objective function and/or one or more constraints on the solution.
Figure 1A shows the system 100 of Figure 1 in more detail. The system 100 takes the form of a computer 100 in which the plurality of processing units 101a... n may be housed within. It can be seen that the computer 100 comprises a CPU 100a which is configured to read and execute instructions stored in a volatile memory 100b which takes the form of a random access memory. The volatile memory 100b stores instructions for execution by the CPU 100a and data used by those instructions. For example, in use, instructions for performing the sub-dividing the initial solution 102 may be stored in volatile memory 100b.
The computer 100 further comprises a graphics processing unit (GPU) 100c that is configured to perform numerical processing operations in addition to graphics display operations. The GPU 100c comprises a plurality of processing units and either alone, or in combination with the CPU 100a, comprises the plurality of processing units 101a... n of Figure 1. The GPU 100c may also comprise its own dedicated memory separate from the RAM 100b.
The computer 100 further comprises non-volatile storage in the form of a hard disc drive 100d. The computer 100 further comprises an I/O interface 100e to which are connected peripheral devices used in connection with the computer 100. More particularly, a display 100f is configured so as to display output from the computer 100. The display 100f may, for example, display the output value 104 for the combinatorial optimisation. Input devices are also connected to the I/O interface 100e. Such input devices include a keyboard 100g and a mouse 100h which allow interaction with the computer 100. Other input devices may also include gesture-based input devices. A network interface 100i allows the computer 100 to be connected to an appropriate computer network so as to receive and transmit data from and to other computing devices. The CPU 100a, volatile memory 100b, GPU 100c, hard disc drive 100d, I/O interface 100e, and network interface 100i, are connected together by a bus 100j.
Alternatively, the system 100 may be a distributed system comprising a network of servers housing one or more processing units which may include one or more GPUs. The general architecture of a server of the distributed system may be similar to the computer 100 of Figure 1A.
Referring now to Figure 2, exemplary processing for carrying out combinatorial optimisation will now be described. It will be appreciated that the processing may be implemented using the system 100 of Figure 1.
At step 5201, an initial solution 102 to a combinatorial optimisation problem is received. For example, the initial solution may be obtained using a genetic algorithm as described in more detail below. As discussed above, the initial solution 102 may be a local optimum obtained from a previously performed combinatorial optimisation. The method may enable the combinatorial optimisation to escape from the local optimum and discover a more optimal solution.
At step S202, the initial solution 102 is sub-divided into a plurality of solution sub-parts. The division may be carried out randomly or may be based upon a definition of a neighbourhood.
At step S203, a plurality of neighbourhood searches are performed in parallel. Each neighbourhood search is based upon a respective sub-part of the plurality of sub-parts and generates a candidate value for the respective sub-part. The neighbourhood search may be based upon a very large scale neighbourhood search technique as deemed appropriate by a person skilled in the art. Construction of a neighbourhood over which a neighbourhood search is carried out is described in more detail below.
At step S204, the candidate values for the respective sub-part are combined into an output value for the combinatorial optimisation. As noted above, the candidate values may replace the respective values of the sub-parts of the initial solution 102 to form the output value 104.
Construction of a neighbourhood for carrying out a neighbourhood search will now be described in more detail. In general, the neighbourhood defines the search space for the solution of sub-problem. The neighbourhood may be defined based upon one or more constraints such as a cost constraint. The neighbourhood may also be defined taking into account the specifics of the optimisation problem.
For example, the optimisation problem may be based upon optimising a plurality of network locations. A network location may encompass a node of a computer network or may be a stop for a public transportation network or may be a network of retail stores or warehouses. For each network location, mutually exclusive options may exist, for example, to close an existing location, to improve an existing location or to make no modifications to an existing location. In one example, a neighbourhood may be constructed based upon all modifications that have an associated cost below a cost threshold.
In another example, a neighbourhood may be based upon a selected set of network locations that are to be modified according to a candidate solution and the set of network locations that are affected by the modifications but are not specified as being for modification. For example, a network location may be associated with a property such as bandwidth, latency, volume or geography amongst others. The modification of a network location may cause a change in the properties of other network locations. If such a change exceeds a threshold, the affected unmodified network location may be included in the neighbourhood for searching.
The size of the sub-parts and/or the size of the neighbourhood may be chosen based upon the capabilities of the plurality of processing units 101a... n and/or size of any coupled memory.
As noted above, the initial solution 102 may be generated by applying a genetic algorithm in an attempt to solve the combinatorial optimisation problem. In general, a genetic algorithm begins with an initial population of candidate solutions. A specified fitness function is used to evaluate a candidate solution and is indicative of the quality of the candidate solution. The genetic algorithm proceeds iteratively through a series of operations known as selection, cross-over and mutation in order to attempt to generate a new population of candidate solutions that have a higher fitness. Through many iterations, in some cases, thousands or hundreds of thousands, an optimal or near-optimal solution to the combinatorial optimisation problem may be found.
However, genetic algorithms may have difficulty with combinatorial optimisation problems where there exist constraints on the solution. In particular, where the set of feasible solutions according to the constraints is relatively small compared to the unconstrained search space. As such, the genetic algorithm may spend many iterations in part of the search space that has little prospect of generating a feasible solution. Typically, penalties may be included in the fitness function to discourage solutions that violate constraints, however, even with penalty terms, it is possible that the genetic algorithm fails to find any feasible solution.
In order to mitigate against this, the generation of the initial population may be modified to take account of the constraints. In addition, the mutation and cross-over operations may also be modified in a complementary manner to account of the constraints.
In more detail, the generation of the initial population may be based upon a weighted sampling procedure with the weighting based upon a constraint of the optimisation problem. That is, the generation process may be biased towards generating initial candidate solutions that are more feasible. For example, where a solution is encoded as a binary string, there may be a constraint on the total number of non-zero bits in the solution. In this case, each bit may be set to one with probability M/N where M is the maximum number of non-zero bits and N is the total length of the binary string. In this way, the mean number of non-zero bits in each candidate solution of the initial population is M and each initial solution generated is likely to be near-feasible with respect to such a constraint. In another example, solutions may have an associated cost and there may be a constraint on the total cost of the final solution. In this case, the probability distribution may be weighted based upon a relative cost associated with the option represented by a particular bit such that the mean cost is equal to a total budget.
There may also exist constraints specifying mutually exclusive options. For example, it is possible that only one out of a particular set of bits in the binary string may be set at once. After generation of the initial population, a pass may be performed to modify the initial solutions such that any mutually exclusive bit constraints are met, such as through a random selection of one of the set bits. However, it may be helpful to include some solutions that violate such constraints in order to encourage exploration of the search space by the genetic algorithm. Thus, there may be a mixture of individuals in the initial population that comply with the constraints and individuals that do not comply with the constraints.
The cross-over and mutation operators may be modified in a similar way to take account of constraints. For example, in order to take account of mutually exclusive bits, the crossover and mutation operators may operate at the level of sets of mutually exclusive bits to maintain mutual exclusion constraints rather than on modifying individual bits. That is, a mutation operation may modify the set bit in the set of mutually exclusive bits rather than considering each bit individually and whether to modify that bit.
In another example, in order to take account of cost constraints, the probability associated with cross-over and/or mutation may be modified such that a cost-increasing change is reduced for solutions in the population that already violate cost constraints. A similar modification can be made for other constraints such as the number of non-zero bits in the solution.
Although specific embodiments have been described above, it will be appreciated that various modifications can be made to the described embodiments without departing from the spirit and scope of the present invention. That is, the described embodiments are to be considered in all respects exemplary and non-limiting. In particular, where a particular form has been described for particular processing, it will be appreciated that such processing may be carried out in any suitable form arranged to provide suitable output data.

Claims (22)

  1. CLAIMS: 1. A computer-implemented method of combinatorial optimisation comprising: receiving an initial solution to a combinatorial optimisation problem; sub-dividing the initial solution into a plurality of solution sub-parts; performing a plurality of neighbourhood searches, each neighbourhood search based upon a respective sub-part of the plurality of solution sub-parts to generate a candidate value for the respective sub-part, wherein each neighbourhood search is performed in parallel; and combining the candidate values for the respective sub-parts into an output value for the combinatorial optimisation.
  2. 2. The method of any preceding claim, wherein sub-dividing the initial solution comprises randomly sub-dividing the initial solution into a plurality of solution sub-parts.
  3. 3. The method of any preceding claim, wherein plurality of neighbourhood searches are carried out based upon a very large scale neighbourhood search technique.
  4. 4. The method of any preceding claim, wherein a neighbourhood is based upon a cost threshold.
  5. 5. The method of any preceding claim, wherein the combinatorial optimisation is optimisation of a network.
  6. 6. The method of claim 5, wherein the combinatorial optimisation is optimisation of a plurality of network locations.
  7. 7. The method of claim 6, wherein a neighbourhood is based upon a set of modified network locations that are to be modified according to the initial solution and a set of unmodified network locations that are not to be modified according to the initial solution, wherein the modifications to the set of modified network locations have an effect on the set of unmodified network locations.
  8. 8. The method of claim 7, wherein a network location is associated with a property, and the effect on the unmodified network locations is a change in the property of the set of unmodified network locations exceeding a threshold change.
  9. 9. The method of any preceding claim, wherein the initial solution is generated by a genetic algorithm.
  10. 10. The method of claim 9, wherein an initial population for performing the genetic algorithm is generated based upon a weighted sampling procedure, the weighting based upon a constraint of the optimisation problem.
  11. 11. The method of claim 10, wherein the initial population comprises a mixture of individuals that comply with one or more constraints and individuals that do not comply with the one or more constraints.
  12. 12. The method of any one of claims 9 to 11, wherein an individual of the population is encoded as a binary string and each bit of the binary string is set according a probability distribution.
  13. 13. The method of claim 12, wherein the probability distribution is based upon a maximum number of non-zero bits.
  14. 14. The method of claim 12, wherein the probability distribution is based upon a relative cost associated with an option represented by the respective binary digit.
  15. 15. The method of any one of claims 9 to 14, wherein the genetic algorithm comprises a mutation operator configured to maintain a constraint based upon mutually exclusive bits.
  16. 16. The method of any one of claims 9 to 15, wherein the genetic algorithm comprises a probability associated with mutation based upon a cost associated with the mutation.
  17. 17. The method of any one of claims 9 to 16, wherein the genetic algorithm comprises a crossover operation configured to maintain a constraint based upon mutually exclusive bits.
  18. 18. The method of any one of claims 9 to 17, wherein the genetic algorithm comprises a probability associated with crossover based upon one or more constraints.
  19. 19. The method of any preceding claim, wherein performing a plurality of neighbourhood searches is carried out using a graphics processing unit or distributed computing system.
  20. 20. A system comprising: a plurality of processing units, wherein each processing unit is coupled to a memory; wherein the plurality of processing units are configured to carry out a method according to any preceding claim.
  21. 21. The system of claim 20, wherein the plurality of processing units comprise a plurality of processing units of a GPU.
  22. 22. A computer readable medium comprising stored instructions that when executed by a plurality of processing units causes the plurality of processing units to carry out a method according to claims 1 to 19.
GB1919039.6A 2019-12-20 2019-12-20 Combinatorial optimisation Pending GB2590501A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
GB1919039.6A GB2590501A (en) 2019-12-20 2019-12-20 Combinatorial optimisation
PCT/GB2020/053261 WO2021123788A1 (en) 2019-12-20 2020-12-17 Combinatorial optimisation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB1919039.6A GB2590501A (en) 2019-12-20 2019-12-20 Combinatorial optimisation

Publications (2)

Publication Number Publication Date
GB201919039D0 GB201919039D0 (en) 2020-02-05
GB2590501A true GB2590501A (en) 2021-06-30

Family

ID=69322915

Family Applications (1)

Application Number Title Priority Date Filing Date
GB1919039.6A Pending GB2590501A (en) 2019-12-20 2019-12-20 Combinatorial optimisation

Country Status (2)

Country Link
GB (1) GB2590501A (en)
WO (1) WO2021123788A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11875371B1 (en) 2017-04-24 2024-01-16 Skyline Products, Inc. Price optimization system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
YIN et al., Proceedings of the 2013 IEEE International Conference on Information and Automation, August 2013, Pages 31-36, "A Novel Heuristic Algorithm Based on Divide-and-Merge Strategy for Single Machine Scheduling" *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11875371B1 (en) 2017-04-24 2024-01-16 Skyline Products, Inc. Price optimization system

Also Published As

Publication number Publication date
WO2021123788A1 (en) 2021-06-24
GB201919039D0 (en) 2020-02-05

Similar Documents

Publication Publication Date Title
Zhang et al. Agl: a scalable system for industrial-purpose graph machine learning
Xue et al. Self-adaptive particle swarm optimization for large-scale feature selection in classification
US11115421B2 (en) Security monitoring platform for managing access rights associated with cloud applications
Sevakula et al. Transfer learning for molecular cancer classification using deep neural networks
Häner et al. 5 petabyte simulation of a 45-qubit quantum circuit
Nseef et al. An adaptive multi-population artificial bee colony algorithm for dynamic optimisation problems
Al-Ani et al. Feature subset selection using differential evolution and a wheel based search strategy
Calcagno et al. glmulti: an R package for easy automated model selection with (generalized) linear models
Kashan et al. Grouping evolution strategies: An effective approach for grouping problems
US10657212B2 (en) Application- or algorithm-specific quantum circuit design
Zheng et al. Opengraphgym: a parallel reinforcement learning framework for graph optimization problems
US20230054582A1 (en) Feature selection and hyperparameter optimization using lds
WO2021123788A1 (en) Combinatorial optimisation
Siddiqi et al. An optimization heuristic based on non-dominated sorting and tabu search for the fixed spectrum frequency assignment problem
Aguilar-Justo et al. A local cooperative approach to solve large-scale constrained optimization problems
Guo et al. A resource aware MapReduce based parallel SVM for large scale image classifications
CN109492844B (en) Method and device for generating business strategy
US10740646B2 (en) Programmable cellular automata for memory search, recall, simulation, and improvisation
Pishgoo et al. A dynamic feature selection and intelligent model serving for hybrid batch-stream processing
Wong et al. Multiple sources influence maximization in complex networks with genetic algorithm
Vaisman Finding minimum label spanning trees using cross‐entropy method
Hajeer et al. Distributed genetic algorithm to big data clustering
CN114912628A (en) Feature selection method and device, electronic equipment and computer-readable storage medium
Falla et al. Graph Representation Learning for Parameter Transferability in Quantum Approximate Optimization Algorithm
Gao et al. The importance of norm regularization in linear graph embedding: Theoretical analysis and empirical demonstration