Controlling quarantining and biasing in cataclysms for optimization simulations

0Associated
Cases 
0Associated
Defendants 
0Accused
Products 
0Forward
Citations 
0
Petitions 
1
Assignment
First Claim
1. A method for modifying candidate solutions of an optimization problem, the method comprising:
 selecting at least one candidate solution from a first plurality of candidate solutions, wherein the first plurality of candidate solutions has converged on a suboptimal solution during a computer simulation that tests fitness of the first plurality of candidate solutions for the optimization problem;
storing a copy of the at least one candidate solution;
performing a cataclysm on the first plurality of candidate solutions;
generating a second plurality of candidate solutions; and
after one or more additional computer simulations that test the fitness of the second plurality of candidate solutions for the optimization problem, integrating the copy of the at least one candidate solution into the second plurality of candidate solutions.
1 Assignment
0 Petitions
Accused Products
Abstract
Some examples are directed to selecting at least one candidate solution from a first plurality of candidate solutions that has converged on a suboptimal solution during a computer simulation. The computer simulation tests fitness of the first plurality of candidate solutions for an optimization problem. Some examples are further direct to storing a copy of the at least one candidate solution, performing a cataclysm on the first plurality of candidate solutions, and generating a second plurality of candidate solutions. Some examples are further direct to integrating the copy of the at least one candidate solution into the second plurality of candidate solutions after performing of one or more additional computer simulations that test the fitness of the second plurality of candidate solutions for the optimization problem.
86 Citations
No References
System and method for scheduling operations using speculative data operands  
Patent #
US 7,937,569 B1
Filed 05/05/2004

Current Assignee
Advanced Micro Devices Inc.

Sponsoring Entity
Advanced Micro Devices Inc.

Method of detecting defects on an object  
Patent #
US 7,940,383 B2
Filed 12/03/2009

Current Assignee
Hitachi HighTechnologies Corporation, Hitachi Ltd.

Sponsoring Entity
Hitachi HighTechnologies Corporation, Hitachi Ltd.

Apparatus and method for testing defects  
Patent #
US 7,692,779 B2
Filed 10/06/2005

Current Assignee
Hitachi HighTechnologies Corporation, Hitachi Ltd.

Sponsoring Entity
Hitachi HighTechnologies Corporation, Hitachi Ltd.

SYNTHESIS OF OSELTAMIVIR CONTAINING PHOSPHONATE CONGENERS WITH ANTIINFLUENZA ACTIVITY  
Patent #
US 20100113397A1
Filed 08/29/2008

Current Assignee
Academia Sinica

Sponsoring Entity
Academia Sinica

Apparatus and method for web service message correlation  
Patent #
US 7,743,150 B1
Filed 05/19/2004

Current Assignee
Oracle International Corporation

Sponsoring Entity
Amberpoint Inc.

Spheron component peptides and pharmaceutical compositions  
Patent #
US 7,514,407 B2
Filed 05/23/2003

Current Assignee
Nymox Corporation

Sponsoring Entity
Nymox Corporation

METHODS OF GENETIC ANALYSIS INVOLVING THE AMPLIFICATION OF COMPLEMENTARY DUPLICONS  
Patent #
US 20090150080A1
Filed 02/16/2006

Current Assignee
CY OCONNOR ERADE VILLAGE FOUNDATION WA BN09723274

Sponsoring Entity
CY OCONNOR ERADE VILLAGE FOUNDATION WA BN09723274

Oxidationresistant ribonuclease inhibitor  
Patent #
US 7,560,248 B1
Filed 01/20/1999

Current Assignee
Wisconsin Alumni Research Foundation

Sponsoring Entity
Wisconsin Alumni Research Foundation

Methods and systems for interactive evolutionary computing (IEC)  
Patent #
US 7,603,326 B2
Filed 05/08/2006

Current Assignee
Icosystem Corp.

Sponsoring Entity
Icosystem Corp.

Phospholipase(s) and Use(s) Thereof  
Patent #
US 20090252718A1
Filed 06/16/2006

Current Assignee
National University of Singapore

Sponsoring Entity
National University of Singapore

Validity verification method for a local digital network key  
Patent #
US 7,616,763 B2
Filed 08/14/2003

Current Assignee
Nagravision SA

Sponsoring Entity
Nagravision SA

Method and Apparatus for Analysis of Psychiatric and Physical Conditions  
Patent #
US 20090292180A1
Filed 04/18/2007

Current Assignee
Susan Mirow

Sponsoring Entity
Susan Mirow

Apparatus and method for testing defects  
Patent #
US 7,639,350 B2
Filed 03/05/2007

Current Assignee
Hitachi HighTechnologies Corporation, Hitachi Ltd.

Sponsoring Entity
Hitachi HighTechnologies Corporation, Hitachi Ltd.

CONFIGURABLE INFINITE LOGIC SIGNAL PROCESSING NETWORK AND GENETIC COMPUTING METHOD OF DESIGNING THE SAME  
Patent #
US 20080103995A1
Filed 10/31/2006

Current Assignee
Motorola Solutions Inc.

Sponsoring Entity
Motorola Solutions Inc.

Method and hardware architecture for controlling a process or for processing data based on quantum soft computing  
Patent #
US 7,383,235 B1
Filed 03/09/2000

Current Assignee
Stmicroelectronics SRL

Sponsoring Entity
Yamaha Motor Europe NV, Stmicroelectronics SRL

Apparatus and method for testing defects  
Patent #
US 7,443,496 B2
Filed 03/05/2007

Current Assignee
Hitachi HighTechnologies Corporation, Hitachi Ltd.

Sponsoring Entity
Hitachi HighTechnologies Corporation, Hitachi Ltd.

Genetic algorithm for microcode compression  
Patent #
US 7,451,121 B2
Filed 09/27/2005

Current Assignee
Intel Corporation

Sponsoring Entity
Intel Corporation

Method and apparatus for fractal computation  
Patent #
US 7,469,237 B2
Filed 06/01/2001

Current Assignee
David L. Cooper

Sponsoring Entity
David L. Cooper

Fast prefix matching of bounded strings  
Patent #
US 7,191,168 B1
Filed 09/25/2002

Current Assignee
ATT Inc.

Sponsoring Entity
ATT Inc.

Methods for categorizing input data  
Patent #
US 20070116267A1
Filed 11/28/2005

Current Assignee
Sytex Inc.

Sponsoring Entity
Sytex Inc.

Genetic algorithms for optimization of genomicsbased medical diagnostic tests  
Patent #
US 20070172828A1
Filed 02/01/2005

Current Assignee
Koninklijke Philips N.V.

Sponsoring Entity
Koninklijke Philips N.V.

Methods and apparatus for longest common prefix based caching  
Patent #
US 7,313,666 B1
Filed 12/24/2002

Current Assignee
Cisco Technology Incorporated

Sponsoring Entity
Cisco Technology Incorporated

Techniques for efficient memory management for longest prefix match problems  
Patent #
US 6,725,326 B1
Filed 08/15/2000

Current Assignee
Cisco Technology Incorporated

Sponsoring Entity
Cisco Technology Incorporated

System architecture synthesis and exploration for multiple functional specifications  
Patent #
US 7,031,887 B2
Filed 07/31/2001

Current Assignee
Agilent Technologies Incorporated

Sponsoring Entity
Agilent Technologies Incorporated

Use of a genetic algorithm to optimize memory space  
Patent #
US 5,651,099 A
Filed 01/26/1995

Current Assignee
HewlettPackard Development Company L.P.

Sponsoring Entity
HP Inc.

Method and apparatus for segmenting images using constanttime deformable contours  
Patent #
US 6,031,935 A
Filed 02/12/1998

Current Assignee
Zebadiah M. Kimmel

Sponsoring Entity
Zebadiah M. Kimmel

Animal model for preeclampsia  
Patent #
US 7,045,674 B2
Filed 09/19/2003

Current Assignee
University of Iowa Research Foundation

Sponsoring Entity
University of Iowa Research Foundation

Apparatus and method for testing defects  
Patent #
US 7,037,735 B2
Filed 06/14/2002

Current Assignee
Hitachi HighTechnologies Corporation

Sponsoring Entity
Hitachi HighTechnologies Corporation

Methods and systems for interactive evolutionary computing (IEC)  
Patent #
US 7,043,463 B2
Filed 04/01/2004

Current Assignee
Icosystem Corp.

Sponsoring Entity
Icosystem Corp.

Methods and Systems for Interactive Evolutionary Computing (IEC)  
Patent #
US 20060195204A1
Filed 05/08/2006

Current Assignee
Icosystem Corp.

Sponsoring Entity
Icosystem Corp.

Apparatus and method for testing defects  
Patent #
US 7,098,055 B2
Filed 10/06/2005

Current Assignee
Hitachi HighTechnologies Corporation, Hitachi Ltd.

Sponsoring Entity
Hitachi HighTechnologies Corporation, Hitachi Ltd.

System, method and product for rostering using genetic alhgorithms  
Patent #
US 20050044052A1
Filed 01/20/2003

Current Assignee
Nanyang Polytechnic

Sponsoring Entity
Nanyang Polytechnic

Genetic algorithm techniques and applications  
Patent #
US 6,882,989 B2
Filed 02/23/2001

Current Assignee
Raytheon BBN Technlogies Corp.

Sponsoring Entity
BBNT Solutions LLC

Postponing validation of speculative chromosomes  
Patent #
US 20050159897A1
Filed 01/21/2004

Current Assignee
HewlettPackard Development Company L.P.

Sponsoring Entity
HewlettPackard Development Company L.P.

Speculation count in a genetic algorithm  
Patent #
US 20050197979A1
Filed 01/21/2004

Current Assignee
HewlettPackard Development Company L.P.

Sponsoring Entity
HewlettPackard Development Company L.P.

Speculative pool  
Patent #
US 20050197978A1
Filed 01/21/2004

Current Assignee
HewlettPackard Development Company L.P.

Sponsoring Entity
HewlettPackard Development Company L.P.

VLSI neural fuzzy classifier for handwriting recognition  
Patent #
US 20040008883A1
Filed 07/12/2002

Current Assignee
Winbond Electronics Corporation

Sponsoring Entity
Winbond Electronics Corporation

Method and apparatus for optimizing video processing system design using a probabilistic method to fast direct local search  
Patent #
US 20040010479A1
Filed 07/15/2002

Current Assignee
Pendragon Wireless LLC

Sponsoring Entity
Pendragon Wireless LLC

Spheron components useful in determining compounds capable of treating symptoms of Alzheimer's disease, and treatments and animal models produced therefrom  
Patent #
US 20040002460A1
Filed 03/04/2003

Current Assignee
Nymox Corporation

Sponsoring Entity
Nymox Corporation

Spheron components useful in determining compounds capable of treating symptoms of Alzheimer's disease, and treatments and animal models produced therefrom  
Patent #
US 20040029809A1
Filed 05/23/2003

Current Assignee
Nymox Corporation

Sponsoring Entity
Nymox Corporation

Exponential increments in FET size selection  
Patent #
US 6,691,285 B1
Filed 08/27/2002

Current Assignee
HewlettPackard Development Company L.P.

Sponsoring Entity
HewlettPackard Development Company L.P.

Intelligent mechatronic control suspension system based on quantum soft computing  
Patent #
US 20040024750A1
Filed 07/31/2002

Current Assignee
Yamaha Hatsudoki Kabushiki Kaisha

Sponsoring Entity
Yamaha Hatsudoki Kabushiki Kaisha

System and method for solving an optimization problem using a neuralnetworkbased genetic algorithm technique  
Patent #
US 20040044633A1
Filed 08/29/2002

Current Assignee
HewlettPackard Development Company L.P.

Sponsoring Entity
HewlettPackard Development Company L.P.

System and method for developing artificial intelligence  
Patent #
US 20040143559A1
Filed 01/13/2004

Current Assignee
Francisco J. Ayala

Sponsoring Entity
Francisco J. Ayala

Animal model for preeclampsia  
Patent #
US 20040133929A1
Filed 09/19/2003

Current Assignee
University of Iowa Research Foundation

Sponsoring Entity
University of Iowa Research Foundation

Method and system for implementing evolutionary algorithms  
Patent #
US 20040210545A1
Filed 06/07/2004

Current Assignee
Icosystem Corp.

Sponsoring Entity
Icosystem Corp.

Methods and systems for interactive evolutionary computing (IEC)  
Patent #
US 20040254901A1
Filed 04/01/2004

Current Assignee
Icosystem Corp.

Sponsoring Entity
Icosystem Corp.

System architecture synthesis and exploration for multiple functional specifications  
Patent #
US 20030028578A1
Filed 07/31/2001

Current Assignee
Agilent Technologies Incorporated

Sponsoring Entity
Agilent Technologies Incorporated

Method for optimizing a solution set  
Patent #
US 20030055614A1
Filed 01/18/2002

Current Assignee
Board of Trustees of the University of Illinois

Sponsoring Entity
Board of Trustees of the University of Illinois

Method and apparatus for multidomain data analysis  
Patent #
US 6,532,076 B1
Filed 04/04/2000

Current Assignee
The ThermaWave Incorporated

Sponsoring Entity
The ThermaWave Incorporated

Codec with genetic adaptation  
Patent #
US 6,539,366 B1
Filed 04/30/1998

Current Assignee
Micron Technology Inc.

Sponsoring Entity
Intel Corporation

Genetic programming problem solver with automatically defined stores loops and recursions  
Patent #
US 6,532,453 B1
Filed 04/12/1999

Current Assignee
John R. Koza

Sponsoring Entity
John R. Koza

Method for improving neural network architectures using evolutionary algorithms  
Patent #
US 6,553,357 B2
Filed 09/01/1999

Current Assignee
Koninklijke Philips N.V.

Sponsoring Entity
Koninklijke Philips N.V.

Method, apparatus, and program for evolving algorithms for detecting content in information streams  
Patent #
US 20030126598A1
Filed 12/31/2001

Current Assignee
Pendragon Wireless LLC

Sponsoring Entity
Pendragon Wireless LLC

Apparatus and method for handling logical and numerical uncertainty utilizing novel underlying precepts  
Patent #
US 20020019975A1
Filed 06/04/2001

Current Assignee
Joseph E. Johnson

Sponsoring Entity
Joseph E. Johnson

Method and apparatus for fractal computation  
Patent #
US 20020016782A1
Filed 06/01/2001

Current Assignee
David L. Cooper

Sponsoring Entity
David L. Cooper

Multiplier carry bit compression apparatus and method  
Patent #
US 6,442,582 B1
Filed 06/17/1999

Current Assignee
ATI Technologies ULC

Sponsoring Entity
ATI International SRL

Genetic algorithm techniques and applications  
Patent #
US 20020120407A1
Filed 02/23/2001

Current Assignee
Raytheon BBN Technlogies Corp.

Sponsoring Entity
Raytheon BBN Technlogies Corp.

Methods and apparatus to synthesize primordial life from inanimate materials  
Patent #
US 20020183510A1
Filed 04/17/2000

Current Assignee
William Banning Vail

Sponsoring Entity
William Banning Vail

Code compaction by evolutionary algorithm  
Patent #
US 6,260,031 B1
Filed 12/21/1998

Current Assignee
Uniloc 2017 LLC

Sponsoring Entity
Philips Electronics North America Corporation

Simultaneous evolution of the architecture of a multipart program while solving a problem using architecture altering operations  
Patent #
US 6,058,385 A
Filed 03/07/1997

Current Assignee
John R. Koza, Walter Alden Tackett, David Andre

Sponsoring Entity
John R. Koza, Walter Alden Tackett, David Andre

Method and apparatus to synthesize DNA and DNAlike molecular structures by applying electric fields to gaseous mixtures of chemical reactants containing template particulate matter  
Patent #
US 6,057,424 A
Filed 03/24/1997

Current Assignee
William Banning Vail III

Sponsoring Entity
William Banning Vail III

Computer implemented machine learning method and system  
Patent #
US 6,128,607 A
Filed 07/12/1996

Current Assignee
Peter Nordin, Wolfgang Banzhaf

Sponsoring Entity
Peter Nordin, Wolfgang Banzhaf

Method for storing a tree of potential keys in a sparse table  
Patent #
US 5,857,196 A
Filed 07/19/1996

Current Assignee
Nortel Networks Limited

Sponsoring Entity
Nortel Networks Incorporated

Turing complete computer implemented machine learning method and system  
Patent #
US 5,946,674 A
Filed 06/29/1998

Current Assignee
Peter Nordin, Wolfgang Banzhaf

Sponsoring Entity
Peter Nordin, Wolfgang Banzhaf

Simultaneous evolution of the architecture of a multipart program to solve a problem using architecture altering operations  
Patent #
US 5,742,738 A
Filed 08/04/1994

Current Assignee
John R. Koza

Sponsoring Entity
John R. Koza

Method for optimizing the configuration of a pick and place machine  
Patent #
US 5,390,283 A
Filed 10/23/1992

Current Assignee
ASSEMBLEON N.V.

Sponsoring Entity
North American Philips Corp.

Means for enhancing the productivity of video telecommunication systems  
Patent #
US 5,443,076 A
Filed 05/22/1992

Current Assignee
Marcel Bau

Sponsoring Entity
Marcel Bau

Nonlinear genetic process for data encoding and for solving problems using automatically defined functions  
Patent #
US 5,343,554 A
Filed 05/11/1992

Current Assignee
Lloyd Ayers

Sponsoring Entity
John R. Koza

Byte aligned data compression  
Patent #
US 5,363,098 A
Filed 10/25/1993

Current Assignee
HewlettPackard Development Company L.P.

Sponsoring Entity
Digital Equipment Corporation

Enhanced coherency tracking with implementation of region victim hash for region coherence arrays  
Patent #
US 8,140,766 B2
Filed 07/22/2008

Current Assignee
International Business Machines Corporation

Sponsoring Entity
International Business Machines Corporation

CONTROLLING QUARANTINING AND BIASING IN CATACLYSMS FOR OPTIMIZATION SIMULATIONS  
Patent #
US 20120130929A1
Filed 11/24/2010

Current Assignee
International Business Machines Corporation

Sponsoring Entity
International Business Machines Corporation

EFFICIENT STORAGE OF INDIVIDUALS FOR OPTIMIZATION SIMULATION  
Patent #
US 20120130928A1
Filed 11/18/2010

Current Assignee
ServiceNow Incorporated, International Business Machines Corporation

Sponsoring Entity
ServiceNow Incorporated, International Business Machines Corporation

Optimizing execution of singlethreaded programs on a multiprocessor managed by compilation  
Patent #
US 8,312,455 B2
Filed 12/19/2007

Current Assignee
International Business Machines Corporation

Sponsoring Entity
International Business Machines Corporation

Multicore processor and method of use that adapts core functions based on workload execution  
Patent #
US 8,327,126 B2
Filed 08/25/2008

Current Assignee
International Business Machines Corporation

Sponsoring Entity
International Business Machines Corporation

SPECULATIVE ASYNCHRONOUS SUBPOPULATION EVOLUTIONARY COMPUTING  
Patent #
US 20130006902A1
Filed 08/23/2012

Current Assignee
International Business Machines Corporation

Sponsoring Entity
International Business Machines Corporation

SPECULATIVE ASYNCHRONOUS SUBPOPULATION EVOLUTIONARY COMPUTING  
Patent #
US 20130006901A1
Filed 06/30/2011

Current Assignee
International Business Machines Corporation

Sponsoring Entity
International Business Machines Corporation

Method and system for specualtively sending processorissued store operations to a store queue with full signal asserted  
Patent #
US 8,352,712 B2
Filed 05/06/2004

Current Assignee
International Business Machines Corporation

Sponsoring Entity
International Business Machines Corporation

Predictive ownership control of shared memory computing system data  
Patent #
US 8,370,584 B2
Filed 06/22/2012

Current Assignee
International Business Machines Corporation

Sponsoring Entity
International Business Machines Corporation

Data and control encryption  
Patent #
US 8,379,847 B2
Filed 06/30/2010

Current Assignee
International Business Machines Corporation

Sponsoring Entity
International Business Machines Corporation

Efficient region coherence protocol for clustered sharedmemory multiprocessor systems  
Patent #
US 8,397,030 B2
Filed 06/24/2008

Current Assignee
International Business Machines Corporation

Sponsoring Entity
International Business Machines Corporation

USING GLOBAL AND LOCAL CATASTROPHES ACROSS SUBPOPULATIONS IN PARALLEL EVOLUTIONARY COMPUTING  
Patent #
US 20130173511A1
Filed 01/04/2012

Current Assignee
International Business Machines Corporation

Sponsoring Entity
International Business Machines Corporation

USING GLOBAL AND LOCAL CATASTROPHES ACROSS SUBPOPULATIONS IN PARALLEL EVOLUTIONARY COMPUTING  
Patent #
US 20130173512A1
Filed 08/24/2012

Current Assignee
International Business Machines Corporation

Sponsoring Entity
International Business Machines Corporation

Controlling quarantining and biasing in cataclysms for optimization simulations  
Patent #
US 8,489,526 B2
Filed 11/24/2010

Current Assignee
International Business Machines Corporation

Sponsoring Entity
International Business Machines Corporation

Efficient storage of individuals for optimization simulation  
Patent #
US 8,515,882 B2
Filed 11/18/2010

Current Assignee
ServiceNow Incorporated, International Business Machines Corporation

Sponsoring Entity
International Business Machines Corporation

CONTROLLING QUARANTINING AND BIASING IN CATACLYSMS FOR OPTIMIZATION SIMULATIONS  
Patent #
US 20130275351A1
Filed 06/12/2013

Current Assignee
International Business Machines Corporation

Sponsoring Entity
International Business Machines Corporation

20 Claims
 1. A method for modifying candidate solutions of an optimization problem, the method comprising:
selecting at least one candidate solution from a first plurality of candidate solutions, wherein the first plurality of candidate solutions has converged on a suboptimal solution during a computer simulation that tests fitness of the first plurality of candidate solutions for the optimization problem; storing a copy of the at least one candidate solution; performing a cataclysm on the first plurality of candidate solutions; generating a second plurality of candidate solutions; and after one or more additional computer simulations that test the fitness of the second plurality of candidate solutions for the optimization problem, integrating the copy of the at least one candidate solution into the second plurality of candidate solutions.  View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
 11. An apparatus comprising:
a processing unit; and a computer readable storage medium configured to store instructions which, when executed by the processing unit, perform one or more operations to select at least one candidate solution from a first plurality of candidate solutions, wherein the first plurality of candidate solutions has converged on a suboptimal solution during a computer simulation that tests fitness of the first plurality of candidate solutions for the optimization problem, store a copy of the at least one candidate solution, perform a cataclysm on the first plurality of candidate solutions, generate a second plurality of candidate solutions, and integrate the copy of the at least one candidate solution into the second plurality of candidate solutions after performance of one or more additional computer simulations that test the fitness of the second plurality of candidate solutions for the optimization problem.  View Dependent Claims (12, 13, 14, 15, 16, 17)
 18. A computer program product for modifying candidate solutions of an optimization problem, the computer program product comprising:
a nontransitory computer readable storage medium having computer readable program code embodied therewith, the computer readable program code configured to select at least one candidate solution from a first plurality of candidate solutions, wherein the first plurality of candidate solutions has converged on a suboptimal solution during a computer simulation that tests fitness of the first plurality of candidate solutions for the optimization problem, store a copy of the at least one candidate solution, perform a cataclysm on the first plurality of candidate solutions, quarantine the copy of the at least one candidate solution from the cataclysm, generate a second plurality of candidate solutions, after the cataclysm is performed, perform one or more additional computer simulations that test the fitness of the second plurality of candidate solutions for the optimization problem, and integrate the copy of the at least one candidate solution into the second plurality of candidate solutions after performance of the one or more additional computer simulations.  View Dependent Claims (19, 20)
1 Specification
This application is a continuation of, and claims the priority benefit of, U.S. application Ser. No. 13/916,301 filed Jun. 12, 2013, which claims the priority benefit of U.S. application Ser. No. 12/954,296 filed Nov. 24, 2010. The Ser. No. 13/916,301 application and the Ser. No. 12/954,296 application are each incorporated herein by reference.
Embodiments of the inventive subject matter generally relate to the field of optimization, and, more particularly, to performing cataclysms in optimization simulations.
Optimization algorithms are used to find solutions to optimization problems by starting with an initial set of random candidate solutions (e.g., provided by a user, randomly generated, etc.) and iteratively analyzing and modifying the candidate solutions, according to an objective function, until reaching a satisfactory solution. Optimization algorithms may also be referred to as metaheuristic optimization algorithms, combinatorial optimization algorithms, softcomputing algorithms, etc. For instance, one type of optimization algorithm is an evolutionary algorithm. An evolutionary algorithm uses techniques loosely based on biological evolution, reproduction, mutation, recombination, and natural selection to find solutions to optimization problems. Simulations that implement evolutionary algorithms act upon populations, such that individuals in a population represent candidate solutions to an optimization problem. The candidate solutions are evaluated for fitness (i.e., evaluated according to a fitness function) and the population “evolves” as successive generations of the population are selected/generated and modified loosely based on the biological techniques. As the population evolves, overall fitness of the population tends to increase. A solution to the optimization problem is found when the overall fitness of the population has reached a satisfactory level, or in other words, when the fitness function, or other objective function, evaluates to an optimal solution. Simulations based on optimization algorithms, such as evolutionary algorithms, can perform well for finding solutions to problems in engineering, biology, economics, robotics, etc. because objective functions can be tailored to fit the problems.
Some embodiments are directed to selecting at least one candidate solution from a first plurality of candidate solutions that has converged on a suboptimal solution during a computer simulation. The computer simulation tests fitness of the first plurality of candidate solutions for an optimization problem. Some examples are further direct to storing a copy of the at least one candidate solution, performing a cataclysm on the first plurality of candidate solutions, and generating a second plurality of candidate solutions. Some examples are further direct to integrating the copy of the at least one candidate solution into the second plurality of candidate solutions after performing of one or more additional computer simulations that test the fitness of the second plurality of candidate solutions for the optimization problem.
The present embodiments may be better understood, and numerous objects, features, and advantages made apparent to those skilled in the art by referencing the accompanying drawings.
The description that follows includes exemplary systems, methods, techniques, instruction sequences, and computer program products that embody techniques of the present inventive subject matter. However, it is understood that the described embodiments may be practiced without these specific details. For instance, although examples refer to populationbased optimization algorithm simulations some embodiments may utilize nonpopulation based metaheuristics. Further, although some embodiments can utilize specific types of evolutionary algorithms (e.g., genetic algorithms, genetic programming, evolutionary programming, evolution strategy, etc.) suited to fit a particular type of optimization problem being solved, other instances, examples may utilize swarm intelligence algorithms (e.g., ant colony optimization, particle swarm optimization, stochastic diffusion search, gravitational search algorithms, intelligent water drops algorithms, etc.), differential evolution algorithms, artificial life algorithms, cultural algorithms, harmony search algorithms, artificial immune system algorithms (e.g., clonal selection algorithms, negative selection algorithms, immune network algorithms, dendritic cell algorithms, learning classifier system algorithms, learnable evolution model algorithms, etc.), populationbased incremental learning algorithms, etc. In other instances, wellknown instruction instances, protocols, structures, and techniques have not been shown in detail in order not to obfuscate the description.
As indicated previously, during a simulation for an optimization problem, candidate solutions to an optimization problem can be evaluated against a fitness function. Usually an initial generation of a population (e.g., generation “0”) of candidate solutions is unfit and requires many generations, or repeat applications of a populationbased optimization algorithm for the population to reach a satisfactory level of fitness. For example, repeat computations of an evolutionary algorithm cause “evolutionary” advancements, or improvements, to a population'"'"'s fitness level based loosely on biological techniques.
Sometimes, however, the fitness of a population may stagnate. For instance, evolutionary advancements to candidate solutions may plateau, or become largely homogenous. In other words, a population can prematurely converge on one individual from a local optima of the solution space resulting in a suboptimal solution. Premature convergence can be detected by observing a number of generations since the fitness of the best individual, and/or the average fitness of the population, has improved. Crosses with that individual, combined with genetic drift, result in a loss of genetic variation. The population becomes largely homogenous, made up of similar candidate solutions that exhibit the same salient features. Crosses between pairs of the similar candidate solutions are unable to produce a superior solution. The simulation of the optimization problem, however, may yet produce better solutions if the population is forced to change, or to become less homogenous. To force the population to change requires a breakthrough, or a major shock to the fitness level in the evolutionary process. Some examples of forcing the population to change in evolutionary algorithms include crossovers and mutations to some or all of the candidate solutions. Sometimes, however, crossovers and mutations may not be shocking enough (e.g., a hamming distance is not great enough to generate a major difference to the homogeneity of the candidate solution set). In such examples, a cataclysm is often an effective way of introducing a major shock. A cataclysm attempts to simulate the catastrophic events that punctuate the natural evolutionary process, such as by introducing a large number of randomlygenerated candidate solutions or severelymutating candidate solutions to increase diversity.
One way of performing a cataclysm includes picking out one candidate solution or “individual” (e.g., pick a fit individual) from the population to be a survivor, and then modifying all individuals from the population of candidate solutions (e.g., typically via random mutations) except for the survivor. As generations progress, the survivor interacts with the modified individuals and potentially generates newer and fitter individuals (e.g., breaks the population out of the local optima and begins making progress again). Some approaches to performing cataclysms simply perform cataclysm after cataclysm until the cataclysms stop working (e.g., the survivor individual tends to continue getting fitter and will more quickly dominate a population after a cataclysm).
The populationbased optimization algorithm simulator 101 generates an initial population (103) (i.e., a population of an initial generation) based on the received problem description. The population comprises a plurality of candidate solutions to the optimization problem. In some embodiments, each of the candidate solutions can be represented by a dataset organized based on the variables of the optimization problem. Each dataset can store one value/parameter for each of the variables, such that an optimization problem with N variables can have datasets comprising N parameters. The populationbased optimization algorithm simulator 101 determines a number of candidate solutions to generate based on the problem description 113. For example, the problem description 113 indicates that the population should comprise one hundred candidate solutions. The populationbased optimization algorithm simulator 101 can generate parameters for the candidate solutions based on the domain indicated in the problem description 113 and constraint descriptions 119.
After generating the initial population 103, the populationbased optimization algorithm simulator 101 begins a populationbased optimization algorithm simulation. For example, the populationbased optimization algorithm simulator 101 evaluates the population (105). The populationbased optimization algorithm simulator 101 can evaluate each candidate solution by applying the parameters indicated in the candidate solutions to variables in the optimization problem and running a simulation of the candidate solution. For example, the problem description 113 can define an electronic design. The populationbased optimization algorithm simulator 101 can generate simulation decks for each candidate solution based on applying the parameters indicated by each candidate solution to variables of the electronic design. The populationbased optimization algorithm simulator 101 can run a simulation of each simulation deck using a Simulation Program with Integrated Circuit Emphasis (SPICE) simulation tool and collect results of each simulation. As another example, the problem description 113 indicates a computer program to be optimized. The populationbased optimization algorithm simulator 101 can run the computer program for each of the candidate solutions by applying the parameters of the candidate solutions to variables of the computer program. The populationbased optimization algorithm simulator 101 can collect results of each run of the computer program. The techniques (e.g., SPICE simulations, running computer programs, etc.) for evaluating the population can be defined as part of the fitness evaluation function indicated in the problem description 113.
The populationbased optimization algorithm simulator 101 further determines fitness of the population (107). The fitness can be represented by a numerical value within a range specified in the problem description 113. For example, the fitness can be represented by a percentage. Determining fitness of the population 107 can comprise determining individual fitness metrics of each candidate solution. The populationbased optimization algorithm simulator 101 can determine each candidate solution'"'"'s individual fitness metric based on the fitness evaluation function indicated in the problem description 113. For example, the populationbased optimization algorithm simulator 101 can analyze the simulation results of each candidate solution based on indicated heuristics. The populationbased optimization algorithm simulator 101 can determine the fitness of the population based on aggregating the individual fitness metrics. For example, the populationbased optimization algorithm simulator 101 can average the individual fitness metrics. As another example, the populationbased optimization algorithm simulator 101 can take the median of the individual fitness metrics.
The populationbased optimization algorithm simulator 101 further determines if termination criteria have been met (111). The problem description 113 can indicate termination criteria. For example, the populationbased optimization algorithm simulation may terminate when fitness of the population reaches an indicated satisfactory level. As another example, the populationbased optimization algorithm simulation may terminate when fitness of the population reaches a plateau. As another example, the populationbased optimization algorithm simulation may terminate when a specified number of generations has been reached. The populationbased optimization algorithm simulator 101 outputs a solution 117 when termination criteria are met. The solution 117 includes indications of each of the candidate solutions that constitute the population at termination, individual fitness metrics of each of the candidate solutions, simulation/test results, etc.
If the termination criteria have not been met, the populationbased optimization algorithm simulator 101 computes (e.g., generates) a next generation of the population (109). For example, the current generation is generation “0,” so the populationbased optimization algorithm simulator 101 computes a generation “1.” The populationbased optimization algorithm simulator 101 can compute the next generation in accordance with a combination of biological techniques loosely based on evolution, reproduction, mutation, recombination, and natural selection. For example, the populationbased optimization algorithm simulator 101 can select a certain number of the candidate solutions of generation “0” to remain unchanged in generation “1” based on survival of the fittest techniques. The unchanged individuals can represent a portion of the population of generation “1.” As another example, the populationbased optimization algorithm simulator 101 can select candidate solutions from generation “0” as parents to reproduce offspring candidate solutions for a portion of the population of generation “1.” As another example, another portion of the population can be generated based on mutating candidate solutions of generation “0.” After the next generation of the population is determined, the populationbased optimization algorithm simulator 101 repeats the evaluation (105) and determination of fitness (107) on the next generation. The blocks 105, 107, 111, and 109 repeat for each successive generation until termination criteria is met.
In some embodiments, a cataclysm controller 110 performs cataclysms when populations become homogenous, or when fitness of a population plateaus and settles into a suboptimal solution set (e.g., converges on a suboptimal candidate solution for a local optima of the solution space). The cataclysm controller 110 quarantines a survivor from a first (precataclysmic) population and delays complete integration of the survivor into a second (postcataclysmic) population until the second population has undergone one or more generations of the postcataclysm population, but before fitness of the postcataclysmic population settles on a suboptimal solution. The cataclysm controller 110 also generates, or assists in generating, a second population (e.g., a modified first population, an entirely new population, etc.) that is inversely, or oppositely, biased from the first population. Examples of quarantining survivors and inversely biasing a population are described in further detail below in
The cataclysm controller 110 includes a biased population generator 212. The biased population generator 212 generates a second population 280 with individuals that are randomly selected, but intentionally inversely biased, or oppositely biased, from the first population 220 and the survivor individual 207. By making the second population 280 inversely biased, more than the majority of the candidate solutions from the second population 280 will be significantly different from the survivor individual 207. For example, the majority of the candidate solutions from the second population 280 will have more than approximately fifty percent (50%) of their bits values different from the bit values of candidate solutions for the first population 220 and from the bit values of the survivor individual 207. In comparison, if the candidate solutions of the second generation 280 were to be generated randomly, without inverse biasing, the candidate solutions from the second population 220 would have approximately 50% of their bits in common with bit values from the survivor individual 207. In other words, when randomly generating an individual for a population, a random number generator would have a choice of between one value of “1” and one value of “0.” Thus, the bit has a fiftyfifty (50/50) chance of being a “1” or a “0.” However, the biased population generator 212 generates the second population 280 using an inverted vector of probabilities 260 that is inversely biased, or biased away from, averages of bit values for the first population 220. The biased population generator 212 uses the inverted vector of probability 260 to bias bit values of strings in the second population 280 by amounts inversely proportional to a degree of bias of the bit values of candidate solutions in the first population 220 or of the survivor individual 207. In other words, the more settled, or biased, a bit value was in the first population 220, the biased population generator 212 shifts the bias in the opposite direction, or inversely. The inversion of bias causes an increase in effectiveness of the population based optimization algorithm simulator 101 to find more fit individuals in the second population 280, or at least delay the amount of time that a population will converge on a suboptimal solution. The biased population generator 212 intentionally favors individuals that are more different and, thus, introduces a factor, beyond the fitness function itself, that adds diversity to the second population 280 and/or gives enough oppositely biased diversity to give the second population 280 a chance to survive long enough to yield a possible improvement to first population 220 before the survivor individual 207 begins to dominate the second population 280. In other words, the newly generated individuals from the second population 280 are biased away from the makeup of individuals in the first population 220 encouraging searching of more distant/different parts of the solution space. The average individual is more different than a survivor individual than under conventional schemes, requiring more time for crosses with the survivor and its descendents to reconverge, and hence allowing more time for a superior individual to emerge.
The biased population generator 212 inversely biases the second population 280 from the first population 220 by, at stage “C,” generating a vector of probability (VOP) 250 for the first population 220. The vector of probability includes percentages that represent a number of times that bit values for any given bit position of a string in the first population 220 is a value of “1.” For example, a VOP generator 225 looks at a first bit position for all candidate solution strings in the first population 220 and determines a percentage of the number of times, over the entire population, that the first bit position had a bit value of “1.” The first bit of all of the candidate solutions strings in the first population 220 may have been a “1,” for instance, only 1% of the time. The VOP generator 225 thus writes in the first position of the VOP 250 a value of “0.01,” which is the percentage value of “1%” written in a proportion format. The VOP generator 225 does the same for all bit positions of the candidate solution strings of the first population 220 and respectively, for each bit position, writes into the VOP 250 a corresponding proportion percentage, or probability value, that the bit value was a “1” in the first population 220. For example, the VOP generator 250 determines that the first bit position of candidate solution strings of the first population 220 was a “1” value 1% of the time, the second bit position of candidate solution strings of the first population 220 was a “1” value 72% of the time, and so forth to the last bit position of candidate solution strings of the first population 220 which was a “1” value 63% of the time. The VOP generator 250, then writes corresponding proportion values (e.g., 0.01, 0.72 . . . , 0.63) in the VOP 250. At stage “D,” the biased population generator 212, via a VOP inverter 252, inverts the VOP 250, generating an inverted VOP (IVOP) 260. The VOP inverter 252, for instance, subtracts each of the proportion values in the VOP 260 from the numerical value of “1,” resulting in an opposing or inverted percentage. In other words, if the first bit of the VOP 250 was a value of “0.01” then the corresponding inverted bit in the IVOP 260 would be a value of “0.99,” and so forth for all of the values of the VOP 250 (e.g., the first value of the IVOP 260 is 0.01, the second value of the IVOP 260 is 0.28, and so forth for all values of the IVOP 260 with the last value of the IVOP 260 being 0.37). The biased population generator 212, at stage “E,” via an individual generator 290, generates random numbers on a scale equivalent to the a size of the proportional values of the IVOP 260 (e.g., a random number generator 291 generates random numbers from “0.00” to “0.99” which matches a number of decimal points used by the proportional values of the IVOP 260). The individual generator 290 then converts the random number to a value of “1” if the random numbers fall within an equivalent percentage value range represented by the values of the IVOP 260. For example, a biasing module 292 converts a random number of “0.23” to a “1” because it falls within a range of 0.0 to 0.98, representative of the “0.99” value, specified by the first value in the IVOP 260. If the random numbers falls outside an equivalent percentage value range represented by the values of the IVOP 260, then the biasing module 292 converts the random number to a value of “0.” The individual generator 290 then organizes the 1'"'"'s and the 0'"'"'s into bit strings that represent the candidate solutions of the second population 280.
At stage “G,” the cataclysm controller 120 unquarantines the survivor individual 207 in the second population 280 after the populationbased optimization algorithm simulator 101 has calculated multiple generations of the second population 280. For example, the cataclysm controller 110 delays the introduction of the survivor individual 207 into the second population 280 until the second generation 280 has received some level of fitness, otherwise the survivor individual 207 would quickly dominate the second population 280 and would cause the second population 280 to quickly become homogenous with candidate solutions similar to those of the first population 220. However, the cataclysm controller 110 does not delay the introduction of the survivor individual 207 so long that the second population 280 plateaus again. The delay causes the second population 280 to have enough diversity of candidate solutions so that the survivor individual 207 can compete and have a chance of making evolutionary advancements over the first population 220. In some embodiments, the cataclysm generator 110 can delay introduction of the survivor individual 207 until the second population 280 has experienced at least one generation but no more than approximately 10 generations.
Further, although
Further, the system computes a first vector of first proportion values for the first population of bit strings, where each of the first proportion values represents a percentage of times that a given bit position of the first population of bit strings is a value of “1” (304). For example, referring now to
It should be noted that despite the number of bit strings 420AN, the system can round the percentage values to generate a probability value that fits a required format (e.g., so that the probability value is a proportion value of a certain number of decimal points). For example, if there were onethousand bit strings 420AN and the count for the bit values of the first position 404A came to a count total of “8”, and if the system divided “8” by “1000,” the actual percentage would come to a value of “0.008.” However, to fit a two decimal proportion, the system can round up to a value of “0.01”. Further, in other embodiments, the probability values 451AN could represent a percentage of times that bit values in the positions 404AN are a value of “0” instead of the value of “1.” The value of “1” or “0” can be prespecified by a user (e.g., a user specifies, via a tool, prior to calculating the vector of probabilities, to count the percentage of times that the bit value is “1” versus “0” or viceversa). In other embodiments, however, the system can determine whether to choose “1” or “0” as the number to count based on analysis of the first population. The system could, for example, choose the “1” or the “0” value based on whether fewer 1'"'"'s or 0'"'"'s exist in the bit strings of the first population. Further, in some embodiments the system can optionally add random noise to the VOP 450 by randomly choosing a small subset of the probability values 451AN and adding a small random value to small subset (e.g., 05%) of the probability values 451AN.
Returning to
Returning to
Returning again to
If the system used a purely random number generator (e.g., 50/50 chance of either a “1” or a “0”) without the biasing module 592, then the system would generate the second population 580 having approximately fifty percent of its bit values in common with bit values from the first population 420. However, by generating random numbers within a number range that can be used to represent percentage values and using the biasing module 592, the system generates the second population 580 to have most of its bit values inversely biased away from bit values from the first population 420. The use of the converters 596AN are similar to use of a multifaced die (e.g., a hundredsided die) where the number of the faces on the die vary for each converter 596AN based on the value of the modified inverted probability values 471AN. For example, using the example of the hundredsided die, for the first converter 596A, ninety of the sides of the hundredsided die would represent a value of “1” and ten of the sides would the value of “0.” A random roll of the die would have a 90% change of producing a “1” and a 10% change of producing a “0.” Thus, although the roll of the die is random, the probabilities of a certain outcome are biased in favor of either a “1” or a “0” value based on the value of the modified inverted probability value 471A. For the second converter 596B, twenty eight of the sides would represent a “1” and seventytwo of the sides would represent a “0” etc.
Further, the system selects at least one of the first candidate solutions from the first population (604). In some embodiments, the system selects the at least one of the first candidate solutions using elitist selection, fitnessbased or rankedbased selection, random selection, or some combination thereof. For example, in one embodiment, the system selects the at least one of the first candidate solutions (survivor individual) because it has a high degree of fitness according to a fitness function for the optimization problem. In some embodiments, the system selects only one of the first candidate solutions to survive a cataclysm. In other embodiments, however, the system selects multiple ones of the first candidate solutions. The system can select the survivor individual using a random selection and evaluate the selected survivor individual to ascertain sufficient fitness according to fitness criteria in the fitness function. If a selected survivor individual is not sufficiently fit, then the system selects different one(s) of the first candidate solutions and evaluates their fitness until finding at least one individual that is sufficiently fit according to the fitness criteria. In some embodiments, the system can provide a tool so that users can select a survivor individual(s).
Further, the system quarantines the at least one of the first candidate solutions (606). For example, the system can store a copy of the at least one of the first candidate solutions on a computerreadable storage medium for later use. In some embodiments, the system can store the remainder of the first candidate solutions of the first population for future reference. In another embodiment, the system can mark the survivor individual(s) such that that survivor individual(s) are not allowed to participate in genetic operations (other than reproduction) for multiple generations that follow.
Further, the system performs a cataclysm on the first population of first candidate solutions and generates a second population of second candidate solutions (608). In some embodiments, the system can perform a massextinction type of cataclysm which kills off, removes, or otherwise disregards the first population and randomly generates a second population. In some embodiments, the system can perform a mass mutation type of cataclysm where the first population is replaced with severely mutated versions of the individuals from the first population (e.g., 1525% of the bits are flipped to significantly change the individuals). In some embodiments, the system generates the second population using the inverse biasing as described previously. In some embodiments, the system provides a tool that allows users to select a type of cataclysm, or other parameters associated with the cataclysm. One should note that a second population may also be a highly modified version of the first population (e.g., by modifying candidate solutions from the first population instead of, or in addition to, discarding and replacing candidate solutions from the first population). Thus, the second population may also be referred to a population that is new, modified, postcataclysmic, or some other phrase that specifies it is different from the first population and no longer in a state that is converged on a suboptimal solution.
Further, the system computes multiple generations of the second population and fully integrates the at least one of the first candidate solutions into the second population after computing the multiple generations of the second population but before the second population converges on an additional suboptimal solution (610). For example, the system can delay the introduction of a copy of the at least one of the first candidate solutions into the second population. In another embodiments, the system can introduce the at least one of the first candidate solutions (survivor individual) into the second population immediately, but mark the survivor individual and restrict the survivor individual'"'"'s ability to compete until after computing the multiple generations. By waiting to fully integrate the survivor individual until after multiple generations, the system gives the second population time to generate its own fit individuals, according to the fitness function. In other words, the simulation of the populationbased algorithm and waits to fully integrate (e.g., introduce, unmark, unrestrict, etc.) the survivor individual(s) into the simulation until a number of generations are computer for the second population after the cataclysm. The sooner the system fully integrates the survivor individual(s) into the second population, the more quickly the survivor individual(s) may influence (e.g., dominate) the second population. However, if the system waits too long, (e.g., beyond approximately 10 generations), then the second population will begin to converge on its own suboptimal solution and become too homogenous. Therefore, in some embodiments, the system fully integrates the quarantined survivor individual(s) into the second population after one generation has been computed but no less than approximately 10 generations have been computed according to the fitness function of a populationbased optimization algorithm after the cataclysm.
In some embodiments, the system can run multiple simulations where each simulation converges on separate suboptimal solutions. After each simulation converges on the separate suboptimal solutions, the system may select a survivor from each of the simulations and perform a cataclysm to the rest of the populations for all of separate populations (e.g., eliminate all other candidate solutions from the populations other than the survivors). The system can then generate a second population and then insert the multiple survivors into the second population after multiple generations so that all of the multiple survivors can compete within the second population.
As will be appreciated by one skilled in the art, aspects of the present inventive subject matter can be used to optimize all types of optimization problems such as problems regarding electronics, thermodynamics, physics, aeronautics, acoustics, etc. Further, it should be noted that although inversebiasing was described above for binary solution representations (e.g., binary strings), other embodiments can include extending or applying inversebiasing to tools with nonbinary solution representations (e.g., by intentionally favoring different values regardless of whether the values are binary in nature). Further, to avoid creating an inverse bias that is too heavily biased away from a survivor (i.e., to avoid creating a second population that is homogeneous in its heavy bias away from a survivor), some embodiments may include limiting a scale to the bias so that the second population is biased away from a survivor by more than approximately 50% but also highly random. For instance, some embodiments can cap a bias at 10%, or alternatively scale the difference between the bitfrequency and 50%. For example, in the case of scaling the different between the bitfrequency and 50%, if the bit is set 99% of the time, for example, some embodiments may divide (0.99−0.50) by some scale factor “X” (e.g., (0.99−0.50)/X), add back the 0.50, and then subtract from 1.0 to invert the bit value. The scale factor (X) could be determined randomly, from 0 to 10 for example, for each cataclysm.
Further, it should be noted that although examples above describe computing generations of a population, other examples may include processing an objective function until prespecified criteria has been satisfied (e.g., for a specific amount of time, until a specific percentage of bits in a population have a specific value, etc.). For instance, some optimizations algorithms may process an objective function in ways that do not necessarily compute generations, unlike evolutionary algorithms which do compute generations using a fitness function. Some embodiments of the invention, therefore, may quarantine an individual, process the objective function (e.g., compute optimizations according to the objective function) until the specific criteria has been satisfied (e.g., for a period of time), then integrate the quarantined individual after the specific criteria has been satisfied.
Further, as will be appreciated by one skilled in the art, aspects of the present inventive subject matter may be embodied as a system, method or computer program product. Accordingly, aspects of the present inventive subject matter may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, microcode, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Furthermore, aspects of the present inventive subject matter may take the form of a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied thereon.
Any combination of one or more computer readable medium(s) may be utilized. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a nonexhaustive list) of the computer readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a readonly memory (ROM), an erasable programmable readonly memory (EPROM or Flash memory), an optical fiber, a portable compact disc readonly memory (CDROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electromagnetic, optical, or any suitable combination thereof. A computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.
Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
Computer program code for carrying out operations for aspects of the present inventive subject matter may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The program code may execute entirely on the user'"'"'s computer, partly on the user'"'"'s computer, as a standalone software package, partly on the user'"'"'s computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user'"'"'s computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
Aspects of the present inventive subject matter are described with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the inventive subject matter. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
The computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
While the embodiments are described with reference to various implementations and exploitations, it will be understood that these embodiments are illustrative and that the scope of the inventive subject matter is not limited to them. In general, techniques for optimizing seeding of populationbased optimization algorithm simulations as described herein may be implemented with facilities consistent with any hardware system or hardware systems. Many variations, modifications, additions, and improvements are possible.
Plural instances may be provided for components, operations, or structures described herein as a single instance. Finally, boundaries between various components, operations, and data stores are somewhat arbitrary, and particular operations are illustrated in the context of specific illustrative configurations. Other allocations of functionality are envisioned and may fall within the scope of the inventive subject matter. In general, structures and functionality presented as separate components in the exemplary configurations may be implemented as a combined structure or component. Similarly, structures and functionality presented as a single component may be implemented as separate components. These and other variations, modifications, additions, and improvements may fall within the scope of the inventive subject matter.