Recent Releases of mealpy
mealpy -
General Updates
- Updated project configuration files:
setup.py,requirements.txt, andMANIFEST.in. - Restructured
READMEfor better clarity. - Updated
examplesanddocswith new usage guides. - Changed license from GPL GNU v3 to MIT.
Bug Fixes
- Fixed
n_workersbug in theOptimizerclass. - Fixed bug in parallel mode when passing
starting_positionsinOptimizer. - Fixed incorrect handling of
fitnessaspositioninAOclass.
New Features
1. New Algorithm Categories
sota_basedgroup: A new category for state-of-the-art algorithms from CEC competitions.- Added
LSHADEcnEpSin(OriginalLSHADEcnEpSinclass). - Added
IMOTE(OriginalIMOTEclass).
- Added
2. New Modules
- Added
chaoticmodule. - Added
fuzzymodule.
3. Swarm-Based Algorithms
- Grey Wolf Optimizer (GWO) module: Added multiple variants:
GWO_WOA,IGWO,ChaoticGWO,FuzzyGWO,IncrementalGWO,ExGWO,DS_GWO,IOBL_GWO,OGWO,ER_GWO,CG_GWO.
- Aquila Optimizer (AO) module:
- Added Adaptive Aquila Optimizer (AAO).
- Added new standalone algorithms:
- Emperor Penguins Colony (EPC).
- Spider Monkey Optimization (SMO).
- Squirrel Search Algorithm (SquirrelSA).
- Fitness Dependent Optimizer (FDO) (
FDOmodule).
4. Physics-Based Algorithms
- Added Electrical Storm Optimization (ESO) module with
OriginalESOclass.
5. Human-Based Algorithms
- Added Ali Baba and the Forty Thieves (AFT) (
AFTmodule). - Added Child Drawing Development Optimization (CCDO) (
CCDOmodule).
✅ This release focuses on: - Expanding algorithm coverage (swarm-based, physics-based, human-based, and sota-based groups). - Improving documentation and examples. - Fixing critical bugs in the optimizer core. - Transitioning license to MIT for broader usage.
- Python
Published by thieu1995 6 months ago
mealpy -
- Fix bug infinite loop in
JADE,OriginalSHADE, andL_SHADEoptimizers. - Fig bug check input conditions in
Validatorclass. - Fig bug set up init function in
Problemclass. - Fix bug in
get_roulette_wheel_selection_index()function inOptimizerclass. - Fix bug counting number of function evaluation in
Optimizerclass. - Fix bug divide by zero in
FLA,BeesA,DMOA,ESOA,FA,SSpiderO,GCO,MRFO, andAVOA. - Fix bug compare
np.allinNRO. - Fix bug random number verse random vector in
MFO. - Fix bug epoch in
MGO. - Fix bug parallelization in
CL-PSO. - Fix bug compare fitness with Agent in
Agentclass. - Replace
MixSetVarbyCategoricalVarinspacemodule. - Add
SequenceVartospacemodule for handling tuple, list, and set variables. - Update
get_optimizer_by_class()andget_optimizer_by_name()functions inmealpymodule to support new classes. - Fix bug lower bound in
TransferBinaryVarandTransferBoolVarclasses. - Fix bug out of range for choice in
GSKAoptimizer. - Update example comment in
IWO,SBO,SMA,SA,GTO,GWO,HGSoptimizers. - Update docs and examples.
- Python
Published by thieu1995 9 months ago
mealpy -
- Add transfer function module (please read this paper )
- Add two new datatypes:
TransferBinaryVarandTransferBoolVar. - Fix bug un-order variables in
PermutationVardata type. - Update data type of encoded solution in
BoolVardata type. - Update correct function in
BoolVarandBinaryVar. - Fix bug reproduce results in
GA,WCA, andEHOoptimizers. - Fix bug higher probability of 0 value in
IntegerVardata type.
- Python
Published by thieupu over 2 years ago
mealpy -
Based on our new proposed classes, solving continuous and discrete problems is never that easy.
Add
spacemodule with: FloatVar, IntegerVar, StringVar, BoolVar, PermutationVar, BinaryVar, and MixedSetVar classes- FloatVar: handle problem with solution's format as float value
- IntegerVar: handle problem with solution's format as integer value
- StringVar: handle problem with solution's format as string value
- BoolVar: handle problem with solution's format as boolean value (True or False)
- PermutationVar: handle problem with solution's format as permutation value
- BinaryVar: handle problem with solution's format as binary value (0 or 1)
- MixedSetVar: handle problem with solution's format as mixed discrete set
targetmodule with Target class contains:objectives(list),weights(list) to calculate fitness, andfitness(number)
agentmodule with: Agentte class that is a placeholder for a search agent, it contains at least two attributes:solution(position - np.ndarray), and atargetobject
Update
- Convert all optimizers to use new classes
- Convert Tuner and MultiTask classes
- Rename all un-official (developed by our team) optimizers to
DevOptimizerName - Update tests and documents
- Update some examples, not all examples have converted yet (utils and applications folders)
- Python
Published by thieu1995 over 2 years ago
mealpy -
- Remove deepcopy() to improve the computational speed
- Update the parameter's order in Tuner class
- Update the saving's bug when using Termination in Multitask
- Remove ILA optimizer
- Rename "amendposition()" definition in some algorithms to "boundedposition()".
- Add a "amend_position()" function in Optimizer class. This function will call two functions.
- bounded_position() from optimizer. This means for optimizer level (get in valid range of position)
- amend_position() from problem. This means for problem level (transform to the correct solution)
- Fix bugs coefficients in GWO-based optimizers.
- Fig bug self.epoch in SCSO optimizer.
- Fix bug self.dynpopsize when pop_size is small value
- Move SHADE-based optimizers from DE to SHADE module in evolutionary_based group
- Add Improved Grey Wolf Optimization (IGWO) in GWO algorithm
- Add Tabu Search (TS) to math-based group
- Add getalloptimizers() and getoptimizerby_name() in Mealpy
- Rename the OriginalSA to SwarmSA in SA optimizer
- Add the OriginalSA and GaussianSA in SA optimizer
- Update parameters in OriginalHC and SwarmHC
- Update ParameterGrid class to produce the dict with same order as original input
- Add export_figures() to Tuner class. It can draw the hyperparameter tuning process.
- Fix several bugs in docs folders.
- Python
Published by thieu1995 over 2 years ago
mealpy -
- Fix bug self.dynpopsize when pop_size is small value
- Move SHADE-based optimizers from DE to SHADE module in evolutionary_based group
- Add Improved Grey Wolf Optimization (IGWO) in GWO algorithm
- Add Tabu Search (TS) to math-based group
- Add getalloptimizers() and getoptimizerby_name() in Mealpy
- Python
Published by thieu1995 over 2 years ago
mealpy -
- Update documents for MultiTask
- Fix bugs coefficients in GWO-based optimizers.
- Python
Published by thieu1995 over 2 years ago
mealpy -
- Update the parameter's order in Tuner class
- Update the saving's bug when using Termination in Multitask
- Remove ILA optimizer
- Rename "amendposition()" definition in some algorithms to "boundedposition()".
- Add a "amend_position()" function in Optimizer class. This function will call two functions.
- bounded_position() from optimizer. This means for optimizer level (get in valid range of position)
- amend_position() from problem. This means for problem level (transform to the correct solution)
- Python
Published by thieu1995 almost 3 years ago
mealpy -
Update
- Update the parameter's order in Tuner class
- Update the saving's bug when using Termination in Multitask
- Python
Published by thieu1995 almost 3 years ago
mealpy -
Update
- Fix bug in roulette-wheel-selection in Optimizer
- Update multitask with input modes and terminations
- Update Tuner with more input parameters
- Add Lévy flight, and the selective opposition version of the artificial rabbit algorithm (LARO)
- Add Modified Gorilla Troops Optimization (MGTO)
- Update Giant Trevally Optimizer as requested by the authors
- Matlab101GTO: This version was used to produce the results presented in the paper.
- Matlab102GTO: This is a new version provided by the authors (Matlab link), which has been updated recently to reduce computation time.
- OriginalGTO: This version is implemented exactly as described in the paper.
- Python
Published by thieu1995 almost 3 years ago
mealpy -
Update
- Fixed bug all fitness values are equals in function "get index roulette wheel selection" in Optimizer class
- Rename AdaptiveAEO by AugmentedAEO (Add reference)
- Update text of Dwarf Mongoose Optimization Algorithm belongs to Swarm-based group
- Fixed all tests and update all documents
Update Termination class, you can now design multiple Stopping Conditions for Optimizer
Bio-based group:
- Add Brown-Bear Optimization Algorithm (BBOA)
- Ref: A Novel Brown-bear Optimization Algorithm for Solving Economic Dispatch Problem
Human-based group:
- Add Heap-based optimizer (HBO)
- Ref: Heap-based optimizer inspired by corporate rank hierarchy for global optimization
- Add War Strategy Optimization (WarSO)
- Ref: War Strategy Optimization Algorithm: A New Effective Metaheuristic Algorithm for Global Optimization
- Add Human Conception Optimizer (HCO)
- Ref: A novel Human Conception Optimizer for solving optimization problems
Math-based group:
- Add Q-Learning Embedded Sine Cosine Algorithm (QLESCA)
- Ref: Q-learning embedded sine cosine algorithm (QLESCA)
- Add Success History Intelligent Optimizer (SHIO)
- Ref: Success history intelligent optimizer
Physics-based group:
- Add rime-ice (RIME)
- Ref: RIME: A physics-based optimization
- Add Energy Valley Optimizer (EVO)
- Ref: Energy valley optimizer: a novel metaheuristic algorithm
- Add Chernobyl Disaster Optimizer (CDO)
- Ref: Chernobyl disaster optimizer (CDO): a novel meta-heuristic method for global optimization
- Add Fick's Law Algorithm (FLA)
- Ref: Not accepted yet
Evolutionary-based group:
- Add CMA-ES and Simple-CMA-ES
- Ref: Completely derandomized self-adaptation in evolution strategies.
Swarm-based group:
- Add Wavelet Mutation and Quadratic Interpolation MRFO (WMQIMRFO)
- Ref: An enhanced manta ray foraging optimization algorithm for shape optimization of complex CCG-Ball curves
- Add Egret Swarm Optimization Algorithm (ESOA)
- Ref: Egret Swarm Optimization Algorithm: An Evolutionary Computation Approach for Model Free Optimization
- Add Sea-Horse Optimization (SeaHO)
- Ref: Sea-horse optimizer: A nature-inspired meta-heuristic for global optimization and engineering application
- Add Mountain Gazelle Optimizer (MGO)
- Ref: Mountain Gazelle Optimizer: A new Nature-inspired Metaheuristic Algorithm for Global Optimization Problems
- Add Golden jackal optimization (GJO)
- Ref: Golden jackal optimization: A novel nature-inspired optimizer for engineering applications
- Add Fox Optimizer (FOX)
- Ref: FOX: a FOX-inspired optimization algorithm
- Add Giant Trevally Optimizer (GTO)
- Ref: Giant Trevally Optimizer (GTO): A Novel Metaheuristic Algorithm for Global Optimization and Challenging Engineering Problems
Warning: The list of all algorithms below we should avoid to use it
- Add Zebra Optimization Algorithm (ZOA)
- Ref: Zebra Optimization Algorithm: A New Bio-Inspired Optimization Algorithm for Solving Optimization Algorithm
- Add Osprey Optimization Algorithm (OOA)
- Ref: Osprey optimization algorithm: A new bio-inspired metaheuristic algorithm for solving engineering optimization problems
- Add Coati Optimization Algorithm (CoatiOA)
- Ref: Coati Optimization Algorithm: A New Bio-Inspired Metaheuristic Algorithm for Solving Optimization Problems
- Add Pelican Optimization Algorithm (POA)
- Ref: Pelican optimization algorithm: A novel nature-inspired algorithm for engineering applications
- Add Northern Goshawk Optimization (NGO)
- Ref: Northern Goshawk Optimization: A New Swarm-Based Algorithm for Solving Optimization Problems
- Add Serval Optimization Algorithm (ServalOA)
- Ref: Serval Optimization Algorithm: A New Bio-Inspired Approach for Solving Optimization Problems
- Add Siberian Tiger Optimization (STO)
- Ref: Siberian Tiger Optimization: A New Bio-Inspired Metaheuristic Algorithm for Solving Engineering Optimization Problems
- Add Walrus Optimization Algorithm (WaOA)
- Ref: Walrus Optimization Algorithm: A New Bio-Inspired Metaheuristic Algorithm
- Add Tasmanian Devil Optimization (TDO)
- Ref: Tasmanian devil optimization: a new bio-inspired optimization algorithm for solving optimization algorithm
- Add Fennec Fox Optimization (FFO)
- Ref: Fennec Fox Optimization: A New Nature-Inspired Optimization Algorithm
- Add Teamwork Optimization Algorithm (TOA)
- Ref: Teamwork Optimization Algorithm: A New Optimization Approach for Function Minimization/Maximization
Notes on plagiarism and fake algorithm:
- OOA and STO with the same exact code
- POA ServalOA, NGO, WaOA, and TDO with almost the same exact code
- ZOA and CoatiOA with almost the same exact code
- FFO is swap two phases of POA
- TOA is kinda same as OOA and POA
- Python
Published by thieu1995 almost 3 years ago
mealpy - Optimization 2022
Update
- Add validator when variable can be both int/float value
- Add algorithms to evolutionary-based group:
- EliteSingleGA and EliteMultiGA class
- Add algorithms to math-based group:
- weIghted meaN oF vectOrs (INFO) algorithm
- RUNge Kutta optimizer (RUN)
- Circle Search Algorithm (CSA)
- Add algorithms to bio-based group:
- Barnacles Mating Optimizer (BMO)
- Symbiotic Organisms Search (SOS)
- Seagull Optimization Algorithm (SOA)
- Tunicate Swarm Optimization (TSA)
- Add algorithms to swarm-based group:
- Hybrid Grey Wolf - Whale Optimization Algorithm (GWO_WOA)
- Marine Predators Algorithm (MPO)
- Honey Badger Algorithm (HBA)
- Sand Cat Swarm Optimization (SCSO)
- Tuna Swarm Optimization (TSO)
- African Vultures Optimization Algorithm (AVOA)
- Artificial Rabbits Optimization (ARO)
- Artificial Gorilla Troops Optimization (AGTO)
Add algorithms to human-based group:
- Student Psychology Based Optimization (SPBO) (weak algorithm)
- Dwarf Mongoose Optimization Algorithm (DMOA) (weak algorithm)
Fix problem with 1 dimension
Enhanced the get index roulette wheel selection in Optimizer class
Update check parallel mode in Optimizer
Update algorithms that don't support parallel modes
Update the shebang #! with python codes
Update examples
- Python
Published by thieu1995 over 3 years ago
mealpy - Multitask Solving, Hyper-parameter Tuning, Saving and Loading Model
Update
- Add save and load model functionalities in mealpy.utils.io module.
- Add object that hold global/current worst solution in history object
- Add method createpopgroup() in Optimizer class
- Add method before_initialization() in Optimizer class
- Refactor initialization() and after_initialization() in Optimizer class
- Remove beforeevolve(), afterevolve(), and levy_flight() in Optimizer class
- Convert terminationstart() and terminationend() to check_termination() in Optimizer class
- Remove boundary.py in utils
- Add setparameters() and getparameters() in all optimizers
- Update new Problem class, move problem parameter from Optimizer to solve() function.
- Fix bug printing same entry multiple times in logger.
- Fix bug exit() in Optimizer and utils package.
- Update new Termination class, move termination parameter from Optimizer to solve() function.
- Add Multitask class that can run multiple optimizers on multiple problems with multiple trials.
- Refactor all optimizers.
- Add Tuner class that can help tuning hyper-parameters of optimizer.
- Add examples how to build new optimizer.
- Add examples for Multitask and Tuner class.
- Update documents, examples, tests
- Python
Published by thieu1995 over 3 years ago
mealpy -
Update
- Add n_workers variable to solve() function in Optimizer class
- n_workers only effect by parallel mode such as "process" and "thread"
- n_workers default value is None and based on concurrent.futures module
- Add 1 more Optional input parameter to the fitness function
- Fix bug trajectory chart
- Update fitness and objective chart
- Remove supporting Python < 3.7, Mealpy only supports Python >=3.7
- Group probabilistic is merged into math-based group
- Update documents, examples, tests
- Python
Published by thieu1995 over 3 years ago
mealpy -
Update
- Add afterinitialization(), terminationend() to Optimizer class
- Update create_solution(), initialization() in Optimizer class
- Add "starting_positions" parameter to solve() function in Optimizer class
- Fix missing amend_position function in GA
- Fix bug fitness value in history object
- Update 4 training modes in all algorithms ```code Type: Parallel (no effect on updating process of agents) has 2 training modes:
- Process: Using multi-cores to update fitness for whole population
- Thread: Using multi-threads to update fitness for whole population
Type: Sequential has 2 training modes
- Swarm (no effect on updating process): Updating fitness after the whole population move
- Single (effect on updating process): Updating fitness after each agent move ```
- Add agent's history and starting positions to docs.
- Python
Published by thieu1995 over 3 years ago
mealpy -
Update
- Add mealpy's support functions in terminal: help(mealpy), dir(mealpy)
- Add logger module (Logger class)
- Add validator module (Validator class)
Change in Optimizer class:
- remove function getglobalbestglobalworst_solution()
- replace saveoptimizationprocess() by trackoptimizestep() and trackoptimizeprocess()
- update input of Problem and Termination object in Optimizer.
- add logger
- add validator and update all algorithms
- update function: getspecialsolutions()
- rename function: crossoverarthmeticrecombination() to crossover_arithmetic()
- rename function: getfitnessposition() to gettargetwrapper()
- rename function: updatefitnesspopulation() to updatetargetwrapper_population()
A default method: generate_position() in Problem class.
Due to nature's characteristics of different problems, 2 methods can be designed for Optimizer to fit the problem are generateposition() and amendposition(). Both methods are moved from Optimizer class to Problem class, the create_solution() in Optimizer class will call these methods to create a new solution.
Update History and Problem class
- design default amend_position function in Problem class
- parameter: objweight changed to objweights
- add parameter: save_population to control
Add Pareto-like Sequential Sampling (PSS) to math_based group
- Python
Published by thieu1995 almost 4 years ago
mealpy -
Update
- All algorithms have been updated with the amend_position function for solving the discrete problem.
- Required packages are version reduction to fit python 3.6
- Add examples of how to design and custom a new algorithm based on this framework
- Add examples mealpy solve discrete problems (combinatorial, permutation)
- Python
Published by thieu1995 almost 4 years ago
mealpy -
Update models
- You can pass the Problem dictionary or Problem object to the model.
- You can pass the Termination dictionary or Termination object to the model.
- The objective function is renamed as fitness function (objfunc -> fitfunc)
The general format of a solution is: [position, target]
- position: numpy vector (1-D array)
- target: [fitness, list_objectives]
- list_objectives: [objective 1, objective 2, ...]
- After the training process, everything can be accessed via the objective "history" (model.history)
You can name your model and name your fitness function when creating a model
- model(problem, epoch, popsize, ...., name='your model name', fitname='your fitness function name')
Add new algorithms:
- Gradient-Based Optimizer (GBO) in math_based group
- Chaos Game Optimization (CGO) in math_based group
Remove all dummy algorithms (Not supported anymore)
Fix bugs:
- Find idx of min-distance in BRO algorithm
- Update more strategy for GA algorithm
- Update child selection process in MA algorithm
Update others
- examples: Update several scenarios for mealpy with other frameworks
- document: Add document website (https://mealpy.readthedocs.io/)
- Python
Published by thieu1995 almost 4 years ago
mealpy -
Update
- Some algorithms have been updated in the GitHub release but not on PyPI such as Sparrow Search Algorithm.
- I try to synchronize the version on GitHub and PyPI by trying to delete the vers
- Add examples for applications of mealpy such as:
- Tuning hyper-parameter of neural network
- Replacing Gradient Descent optimizer in neural network
- Tuning hyper-parameter for other models such as SVM,...
- Python
Published by thieu1995 about 4 years ago
mealpy -
Update
- Replace all .copy() operator by deepcopy() operator in module copy. Because shallow copy causing the problem with nested list inside list. Especially when copying population with nested of list position inside agent.
- Add the Knapsack Problem example: examples/applications/discrete-problems/knapsack-problem.py
- Add the Linear Regression example with Pytorch: examples/applications/pytorch/linear_regression.py
- Add tutorial videos "How to use Mealpy library" to README.md
- Python
Published by thieu1995 about 4 years ago
mealpy -
Change models
- Move all parallel function to Optimizer class
- Remove unused methods in Optimizer class
- Update all algorithm models with the same code-style as previous version
- Restructure some hard algorithms include BFO, CRO.
Change others
- examples: Update examples for all new algorithms
- history: Update history of MHAs
- parallel: Add comment on parallel and sequential mode
- Add code-of-conduct
- Add the complete example: examples/examplefullv210.py
- Python
Published by thieu1995 over 4 years ago
mealpy -
Version 2.0.0
Change models
- Update entire the library based on Optimizer class:
- Add class Problem and class Termination
- Add 3 training modes (sequential, thread and process)
- Add visualization charts:
- Global fitness value after generations
- Local fitness value after generations
- Global Objectives chart (For multi-objective functions)
- Local Objective chart (For multi-objective functions)
- The Diversity of population chart
- The Exploration verse Exploitation chart
- The Running time chart for each iteration (epoch / generation)
- The Trajectory of some agents after generations
- My batch-size idea is removed due to the parallel training mode
- User can define the Stopping Condition based on:
- Epoch (Generation / Iteration) - default
- Function Evaluation
- Early Stopping
- Time-bound (The running time for a single algorithm for a single task)
Change others
- examples: Update examples for all new algorithms
- history: Update history of MHAs
- Python
Published by thieu1995 over 4 years ago
mealpy -
Change models
Add Raven Roosting Optimization (RRO) and its variants to Dummy group
- OriginalRRO: The original version of RRO
- IRRO: The improved version of RRO
- BaseRRO: My developed version (On this version work)
Add some newest algorithm to the library
- Arithmetic Optimization Algorithm (AOA) to Math-based group
- OriginalAOA: The original version of AOA
- Aquila Optimizer (AO) to Swarm-based group
- OriginalAO: The original version of AO
- Archimedes Optimization Algorithm (ArchOA) to Physics-based group
- OriginalArchOA: The original version of ArchOA
- Arithmetic Optimization Algorithm (AOA) to Math-based group
Change others
- examples: Update examples for all new algorithms
- history: Update history of MHAs
- Python
Published by thieu1995 over 4 years ago
mealpy -
- Add Coyote Optimization Algorithm (COA) to Swarm-based group
- Update code LCBO and MLCO
- Add variant version of:
- WOA: Hybrid Improved WOA
- DE:
- SADE: Self-Adaptive DE
- JADE: Adaptive DE with Optional External Archive
- SHADE: Success-History Based Parameter Adaptation DE
- LSHADE: Linear Population Size Reduction for SHADE
- PSO: Comprehensive Learning PSO (CL-PSO)
Change others
- examples: Update all the examples based on algorithm's input
- Python
Published by thieu1995 over 4 years ago
mealpy -
Change models
- Fix bug reduction dimension in FOA
Update Firefly Algorithm for better timing performance
Add Hunger Games Optimization (HGS) to swarm-based group
Add Cuckoo Search Algorithm (CSA) to swarm-based group
Replace Root.__init__() function by super().__init()__ function in all algorithms.
Change others
- history: Update new algorithms
- examples: Update all the examples based on algorithm's input
- Python
Published by thieu1995 almost 5 years ago
mealpy -
- Fix bug reduction dimension in FOA
- Update Firefly Algorithm for better timing performance
- Add Hunger Games Optimization (HGS) to swarm-based group
- Python
Published by thieu1995 almost 5 years ago
mealpy -
Version 1.1.0
Change models
Update the way to passing hyper-parameters to root.py file (Big change)
Update all the hyper-parameters to all algorithms available.
Fix all the division by 0 in some algorithms.
Change others
- examples: Update all the examples of all algorithms
- Python
Published by thieu1995 almost 5 years ago
mealpy -
Change models
System-based group added:
- Water Cycle Algorithm (WCA)
Human-based group added:
- Imperialist Competitive Algorithm (ICA)
- Culture Algorithm (CA)
Swarm-based group added:
- Salp Swarm Optimization (SalpSO)
- Dragonfly Optimization (DO)
- Firefly Algorithm (FA)
- Bees Algorithm (Standard and Probilistic version)
- Ant Colony Optimization (ACO) for continuous domain
Math-based group:
- Add Hill Climbing (HC)
Physics-based group:
- Add Simulated Annealling (SA)
Change others
- models_history.csv: Update history of meta-heuristic algorithms
- examples: Add examples for all of above added algorithms.
- Python
Published by thieu1995 almost 5 years ago
mealpy -
Change models
Changed category of Sparrow Search Algorithm (SpaSA) from Fake to Swarm-based group:
- Added the: OriginalSpaSA
- This version is taken from the original paper, very weak algorithm
- BaseSpaSA: My changed version
- Changed equations
- Changed flows and operators
- This version become the BEST algorithm
- Added the: OriginalSpaSA
Added Jaya Algorithm to Swarm-based group:
- OriginalJA: The original version from original paper
- BaseJA: My version of original JA for better running time.
- Remove all third loop in algorithm
- Change the second random variable r2 to Gaussian instead of uniform
- LJA: The original version of: Levy-flight Jaya Algorithm (LJA)
- Paper: An improved Jaya optimization algorithm with Levy flight
- Link: https://doi.org/10.1016/j.eswa.2020.113902
- Notes:
- This version I still remove all third loop in algorithm
- The beta value of Levy-flight equal to 1.8 as the best value in the paper.
DE, its state-of-the-art variants.
- DESAP: including DESAP-Abs and DESAP-Rel
- The main ideas is identified the population size without user-defined. Proposed equation:
- Initial ps_init = 10*n (n: is the problem size, number of dimensions)
- DESAP-Abs: ps = round(ps_init + N (0, 1)), (N: is Gaussian value)
- DESAP-Rel: ps = round(ps_init + U (-0.5, 0.5)), (U: is uniform random function)
- The main ideas is identified the population size without user-defined. Proposed equation:
- DESAP: including DESAP-Abs and DESAP-Rel
Added Battle Royale Optimization Algorithm to Fake-algorithm
- OriginalBRO:
- The paper is very different than the author's matlab code. Even the algorithm's flow is wrong with index i, j.
- I tested the results is very slow convergence, even with small #dimensions. I guess that is why he cloned the crossover process of Genetic Algorithm to his algorithm in the code (but not even mention it in the paper) to get the results in the paper. Don't know what to say about this.
- BaseBRO:
- First, I removed all third loop in the algorithm for faster computation.
- Second, Re-defined the algorithm's flow and algorithm's ideas
- OriginalBRO:
Added Fruit-fly Optimization Algorithm and its variants to Swarm-based group:
- OriginalFOA:
- This algorithm is the weakest algorithm in MHAs. It can't run with complicated objective function.
- BaseFOA:
- I changed the fitness function (smell function) by taking the distance each 2 adjacent dimensions --> Number of variables reduce from N to N-1
- Update the position if only it find the better fitness value.
WFOA:
- The original version of Whale Fruit-fly Optimization Algorithm (WFOA)
- Paper: Boosted Hunting-based Fruit Fly Optimization and Advances in Real-world Problems
- From my point of view, this algorithm is almost the same as Whale, only different in calculate fitness function. So it is not surprise that It outperforms BaseFOA
https://www.sciencedirect.com/science/article/abs/pii/S0957417420307545 https://sci-hub.se/10.1016/j.eswa.2020.113976 https://sci-hub.se/10.1016/j.eij.2020.08.003 https://sci-hub.se/10.1016/j.eswa.2020.113902 https://www.x-mol.com/paper/1239433029684543488
- OriginalFOA:
Update root.py
- Added improved_ms() function based on mutation and search mechanism - current better than levy-flight technique
Change others
- models_history.csv: Update history of meta-heuristic algorithms
- examples:
- Add FBIO examples with large-scale benchmark functions
- Python
Published by thieu1995 about 5 years ago
mealpy - Update several variants version of some latest algorithms
Change models
Update AEO and its variants
- Replace LevyAEO by AdaptiveAEO by using levy-flight in both Consumption and Decomposition process.
- Added Improved version by paper "Artificial ecosystem optimizer for parameters identification of proton exchange membrane fuel cells model"
- Added Enhanced version by paper "An Enhanced Artificial Ecosystem-Based Optimization for Optimal Allocation of Multiple Distributed Generations"
- Added Modified version by paper "Effective Parameter Extraction of Different Polymer Electrolyte Membrane Fuel Cell Stack Models Using a Modified Artificial Ecosystem Optimization Algorithm"
Update LCBO and its variants (ILCO > MLCO > LCBO)
- Changed LevyLCBO to ModifiedLCO
- Added the best version ImprovedLCO -- current best version
Update EO and its variants (MEO > AEO > LevyEO > EO))
- Added ModifiedEO by paper "An efficient equilibrium optimizer with mutation strategy for numerical optimization"
- Currently the best version of EO
- Based on mutation strategy and gaussian distribution search
- Added AdaptiveEO by paper "A novel interdependence based multilevel thresholding technique using adaptive equilibrium optimizer"
- The second best version of EO, after ModifiedEO
- Based on Fitness average and memory saving of previous iteration
- Added ModifiedEO by paper "An efficient equilibrium optimizer with mutation strategy for numerical optimization"
Update GWO and its variants (GWO > RW_GWO)
- Added Random Walk Grey Wolf Optimization - RW_GWO
- BaseGWO always perform better than RW_GWO
Update root.py
- Added improved_ms() function based on mutation and search mechanism - current better than levy-flight technique
Add Forensic-Based Investigation Optimization (FBIO) to human_based group:
Change others
- models_history.csv: Update history of meta-heuristic algorithms
- examples:
- Add FBIO examples with large-scale benchmark functions
- Python
Published by thieu1995 over 5 years ago
mealpy -
Change models
- Update : CEM
Fix bug division by 0 in: IWO, SMA
Add Forensic-Based Investigation Optimization (FBIO) to human_based group:
- OriginalFBIO: the original version
- BaseFBIO: my modified version:
- Implement the fastest way (Remove all third loop)
- Change equations
- Change the flow of algorithm
Change others
- models_history.csv: Update history of meta-heuristic algorithms
- examples:
- Add FBIO examples with large-scale benchmark functions
- Python
Published by thieu1995 over 5 years ago
mealpy -
Change models
- Fix bug return position instead of fitness value in:
- TLO
- SARO
Update some algorithms:
- SLO
- NRO
- ABC
Added some variant version of PSO:
- PPSO (Phasor particle swarm optimization: a simple and efficient variant of PSO)
- PSO_W (A modified particle swarm optimizer)
- HPSO_TVA (New self-organising hierarchical PSO with jumping time-varying acceleration coefficients)
Added more algorithm in Swarm-based algorithm
- SpaSA: Sparrow Search Algorithm (Same name SSA as Social Spider Algorithm --> I changed it to SpaSA)
Change others
- models_history.csv: Update history of meta-heuristic algorithms
- examples: Added new examples of:
- PSO and variant of PSO
- Update all examples which now using CEC functions
- Python
Published by thieu1995 over 5 years ago
mealpy -
Change models
- Fix bugs in several algorithms related to Division by 0, sqrt(0),
- Added more algorithm in Probabilistic-based algorithm
- CEBaseSBO
- Added selection by roulette wheel in the root (This method now can handle negative fitness values)
- Changed GA using roulette wheel selection instead of k-tournament method
Change others
- models_history.csv: Update history of meta-heuristic algorithms
- examples: Added new examples of:
- CESSDO, CESBO
- GA, SBO
- Python
Published by thieu1995 almost 6 years ago
mealpy -
Version 0.8.4
Change models
- Fix bugs in Probabilistic-based algorithm
- BaseCEM
- CEBaseLCBO
- CEBaseLCBONew: No levy
- CEBaseSSDO
- Fix bugs in Physics-based algorithm
- LevyEO
Fix bug in Human-based algorithm
- LCBO
Added Coronavirus Herd Immunity Optimization (CHIO) in Human-based group
- Original version: OriginalCHIO
- This version stuck in local optimal and early stopping because the infected case quickly become immunity
- In my version, when infected case all change to immunity. I make 1/3 population become infected then optimization step keep going.
- My version: BaseCHIO
- Original version: OriginalCHIO
Version 0.8.3
Change models
- Probabilistic-based algorithm
- Added Cross-Entropy Method (CEM)
- Added CEM + LCBO
- Added CEM + SSDO
Version 0.8.2
Change models
Bio-based group
- Added Virus Colony Search (VCS)
- BaseVCS: This is the very simple version of VCS. Not the original one in the paper
- Added Virus Colony Search (VCS)
Physics-based group
- Remove EO not good version
Human-based group
- Fix LCBO sort population in initialization process
Added new group: Probabilistic-based algorithm
- Added Cross-Entropy Method (CEM)
Change others
- models_history.csv: Update history of meta-heuristic algorithms
- examples: Added new examples of:
- BaseVCS
- BaseCEM
- Python
Published by thieu1995 almost 6 years ago
mealpy -
Change models
- Evolutionary-based group
- Added Evolution Strategies (ES)
- BaseES
- LevyES: Idea ==> Top population being mutated based on strategy, Left population try to get out of their position based on levy-flight.
- Added Evolution Programming (EP)
- BaseEP: Different than ES by operator and bout_size
- LevyEP: Idea ==> Top population being selected based on tournament strategy round, 50% Left population try to make a comeback to take the good position with levy jump.
- Added Memetic Algorithm (MA)
- BaseMA
- Added Evolution Strategies (ES)
Change others
- models_history.csv: Update history of meta-heuristic algorithms
- examples: Added new examples of:
- BaseES and LevyES
- BaseEP and LevyEP
- BaseMA
- Python
Published by thieu1995 almost 6 years ago
mealpy -
Change models
Swarm-based group
- Added Elephant Herding Optimization (EHO) in Swarm-based group
- BaseEHO
- LevyEHO: Changed the Uniform distribution the "Separating operator" by Levy-flight (50%) and Gaussian(50%)
- Added Pigeon-Inspired Optimization (PIO) in Swarm-based group
- BasePIO (Changed almost everything include flow the algorithm)
- LevyPIO
- Changed flow of algorithm
- Removed some unnecessary loop
- Removed some parameters
- Added the levy-flight in second step make algorithm more robust
- Added Fireworks Algorithm (FA)
- Added Elephant Herding Optimization (EHO) in Swarm-based group
Human-based group
- Added Gaining Sharing Knowledge-based Algorithm (GSKA)
- Added Brain Storm Optimization Algorithm (BSO)
- BaseBSO
- ImprovedBSO (Remove some parameters + Changed Equations + Levy-flight + BaseBSO)
Evolutionary-based group
- Added Flower Pollination Algorithm (FPA)
Bio-based group
- Added Artificial Algae Algorithm (Not working yet)
Change others
- models_history.csv: Update history of meta-heuristic algorithms
- examples: Added new examples of:
- BaseFA
- OriginalAAA
- BaseBSO and ImprovedBSO
- BaseGSKA
- BasePIO and LevyPIO
- BaseEHO and LevyEHO
- BaseFPA
- Python
Published by thieu1995 almost 6 years ago
mealpy -
Change models
- Added Sea Lion Optimization in Swarm-based group
- BaseSLO
- ImprovedSLO (Shrinking Encircling + Levy + SLO)
Change others
- models_history.csv: Update history of meta-heuristic algorithms
- examples: Added new examples of: BaseSLO and ImprovedSLO
- Python
Published by thieu1995 almost 6 years ago
mealpy -
Change models
- Added Coral Reefs Optimization in Evolutionary-based group
- BaseCRO
- OCRO (Opposition-based CRO)
Change others
- models_history.csv: Update history of meta-heuristic algorithms
- examples: Added new examples of: BaseCRO and CRO
- Python
Published by thieu1995 almost 6 years ago
mealpy -
Change models
- Added Levy-flight and Opposition-based techniques in Root.py
- Fixed codes include levy-flight and opposition-based of:
- QSA
- HGSO
- TWO
- NMRA
- PFA
- SFO
- SSO
- Added new modified version of models based on Levy-flight:
- LCBO (LevyLCBO)
- SSDO (LevySSDO)
- EO (LevyEO)
- AEO (LevyAEO)
- MRFO (LevyMRFO)
- NMRA (LevyNMRA)
Change others
- models_history.csv: Update history of meta-heuristic algorithms
- examples: Added new examples tested base-version and levy-version of: LCBO, SSDO, EO, AEO, MRFO, NMRA
- Python
Published by thieu1995 almost 6 years ago
mealpy -
Change
- Change input parameters of the root.py file
- Update the changed of input parameters of all algorithms
- Update examples folders
- Python
Published by thieu1995 almost 6 years ago
mealpy -
Change models
- Added new kind of meta-heuristics: math-based and music-based
- Math_based:
- SCA - Sine Cosine Algorithm
- OriginalSCA: The original version
- BaseSCA: My version changed the flow
- SCA - Sine Cosine Algorithm
- Music_based:
- HS - Harmony Search
- OriginalHS: The original version - not working
- BaseHS: My version which changed a few things
- First I changed the random usaged of harmony memory by best harmoney memory
- The fwrate = 0.0001, fwdamp = 0.9995, number of new harmonies = population size (nnew = popsize)
- HS - Harmony Search
Change others
- models_history.csv: Update history of meta-heuristic algorithms
- Python
Published by thieu1995 almost 6 years ago
mealpy -
Change models
- Added new kind of meta-heuristics: system-based
- System_based: Added the latest system-inspired meta-heuristic algorithms
- GCO - Germinal Center Optimization
- AEO - Artificial Ecosystem-based Optimization
Change others
- models_history.csv: Update history of meta-heuristic algorithms
- Python
Published by thieu1995 almost 6 years ago
mealpy -
Change models
- Bio_based: Added the latest bio-inspired meta-heuristic algorithms
- SBO - Satin Bowerbird Optimizer
- WHO - Wildebeest Herd Optimization
- OriginalWHO: The original version
- BaseWHO: I changed the flow of algorithm
- BWO - Black Widow Optimization
Change others
- models_history.csv: Update history of meta-heuristic algorithms
- Python
Published by thieu1995 almost 6 years ago
mealpy -
Change models
- Added new kind of meta-heuristics: bio-based (biology-inspired)
- Bio_based: Added some classical bio-inspired meta-heuristic algorithms
- IWO - Invasive Weed Optimization
- BBO - Biogeography-Based Optimization
Change others
- models_history.csv: Update history of meta-heuristic algorithms
- Python
Published by thieu1995 almost 6 years ago
mealpy -
Change models
- Human_based: Added the newest human-based meta-heuristic algorithms
- SARO - Search And Rescue Optimization
- LCBO: Life Choice-Based Optimization
- SSDO - Social Ski-Driver Optimization
- OriginalSSDO: The original version
- BaseSSDO: The flow changed + SSDO
Change others
- models_history.csv: Update history of meta-heuristic algorithms
- Python
Published by thieu1995 almost 6 years ago
mealpy -
Change models
- Human_based: Added some recent human-based meta-heuristic algorithms
- TLO - Teaching Learning Optimization
- OriginalTLO: The original version
- BaseTLO: The elitist version
- QSA - Queuing Search Algorithm
- BaseQSA: The original version
- OppoQSA: Opposition-based + QSA
- LevyQSA: Levy + QSA
- ImprovedQSA: Levy + Opposition-based + QSA
- TLO - Teaching Learning Optimization
Change others
- models_history.csv: Update history of meta-heuristic algorithms
- Python
Published by thieu1995 almost 6 years ago
mealpy -
Change models
- Physics_based: Added the cutting-edge physics-based meta-heuristic algorithms
- NRO - Nuclear Reaction Optimization
- HGSO - Henry Gas Solubility Optimization
- BaseHGSO: The original version
- OppoHGSO: Opposition-based + HGSO
- LevyHGSO: Levy + HGSO
- ASO - Atom Search Optimization
- EO - Equilibrium Optimizer
- NRO - Nuclear Reaction Optimization
Change others
- models_history.csv: Update history of meta-heuristic algorithms
- Python
Published by thieu1995 almost 6 years ago
mealpy -
Change models
- Physics_based: Added some recent physics-based meta-heuristic algorithms
- WDO - Wind Driven Optimization
- MVO - Multi-Verse Optimizer
- TWO - Tug of War Optimization
- BaseTWO: The original version
- OppoTWO / OTWO: Opposition-based + TWO
- LevyTWO: Levy + TWO
- ITWO: Levy + Opposition-based + TWO
- EFO - Electromagnetic Field Optimization
- OriginalEFO: The original version
- BaseEFO: My version (changed the flow of the algorithm)
Change others
- models_history.csv: Update history of meta-heuristic algorithms
- Python
Published by thieu1995 almost 6 years ago
mealpy -
Change models
- Swarm_based: Added the state-of-the-art swarm-based meta-heuristic algorithms
- SRSR - Swarm Robotics Search And Rescue
- GOA - Grasshopper Optimisation Algorithm
- EOA - Earthworm Optimisation Algorithm
- MSA - Moth Search Algorithm
- RHO - Rhino Herd Optimization
- BaseRHO: The original
- MyRHO: A little bit changed from BaseRHO version
- Version3RH: A little bit changed from MyRHO version
- EPO - Emperor Penguin Optimizer
- OriginalEPO: Not working
- BaseEPO: My version and works
- NMRA - Nake Mole-rat Algorithm
- BaseNMRA: The original
- LevyNMR: Levy + BaseNMRA
- BES - Bald Eagle Search
- PFA - Pathfinder Algorithm
- BasePFA: The original
- OPFA: Opposition-based PFA
- LPFA: Levy-based PFA
- IPFA: Improved PFA (Levy + Opposition + PFA)
- DePFA: DE + PFA
- LevyDePFA: Levy + DE + PFA
- SFO - Sailfish Optimizer
- BaseSFO: The original
- ImprovedSFO: Changed Equations + Opposition-based + SFO
- HHO - Harris Hawks Optimization
- MRFO - Manta Ray Foraging Optimization
- BaseMRFO: The original
- MyMRFO: The version I changed the flow of the original one
Change others
- models_history.csv: Update history of meta-heuristic algorithms
- Python
Published by thieu1995 almost 6 years ago
mealpy -
Change models
- Swarm_based: Added more recently algorithm (since 2010 to 2016)
- OriginalALO, BaseALO - Ant Lion Optimizer
- OriginalBA, AdaptiveBA, BaseBA - Bat Algorithm
- BSA - Bird Swarm Algorithm
- GWO - Grey Wolf Optimizer
- MFO - Moth-flame optimization
- SSA - Social Spider Algorithm
- SSO - Social Spider Optimization
Change others
- models_history.csv: Update history of meta-heuristic algorithms
- Python
Published by thieu1995 almost 6 years ago
mealpy -
Change models
- root.py : Add 1 more helper functions
- Swarm_based: Added
- PSO
- BFO, ABFOLS (Adaptive version of BFO)
- CSO
- ABC
- WOA
Change others
- models_history.csv: Adding history of meta-heuristic algorithms
- Python
Published by thieu1995 almost 6 years ago
mealpy -
Change models
- root.py : Add more helper functions
- Evolutionary_based
- GA : Change the format of input parameters
- DE : Change the format of input parameters
Change others
- Examples: Adding more complex examples
- Library: "Opfunu" update the latest verion 0.4.3
- Python
Published by thieu1995 almost 6 years ago
mealpy -
Changed models
- root.py (Very first file, the root of all algorithms)
- Evolutionary_based
- GA
- DE
- Python
Published by thieu1995 almost 6 years ago