Releases: thieu1995/mealpy
v2.5.3-alpha.1
Update yaml for next version
v2.5.2
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
- Add Brown-Bear Optimization Algorithm (BBOA)
-
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
- Add Heap-based optimizer (HBO)
-
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
- Add Q-Learning Embedded Sine Cosine Algorithm (QLESCA)
-
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
- Add rime-ice (RIME)
-
Evolutionary-based group:
- Add CMA-ES and Simple-CMA-ES
- Ref: Completely derandomized self-adaptation in evolution strategies.
- Add CMA-ES and Simple-CMA-ES
-
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
- Add Wavelet Mutation and Quadratic Interpolation MRFO (WMQIMRFO)
-
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
- Add Zebra Optimization Algorithm (ZOA)
-
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
v2.5.2-alpha.2
Test publish on pypi
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
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 create_pop_group() in Optimizer class
- Add method before_initialization() in Optimizer class
- Refactor initialization() and after_initialization() in Optimizer class
- Remove before_evolve(), after_evolve(), and levy_flight() in Optimizer class
- Convert termination_start() and termination_end() to check_termination() in Optimizer class
- Remove boundary.py in utils
- Add set_parameters() and get_parameters() 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
v2.4.2
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
v2.4.1
Update
- Add after_initialization(), termination_end() 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
Type: Parallel (no effect on updating process of agents) has 2 training modes:
1. Process: Using multi-cores to update fitness for whole population
2. Thread: Using multi-threads to update fitness for whole population
Type: Sequential has 2 training modes
3. Swarm (no effect on updating process): Updating fitness after the whole population move
4. Single (effect on updating process): Updating fitness after each agent move
- Add agent's history and starting positions to docs.
v2.4.0
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 get_global_best_global_worst_solution()
- replace save_optimization_process() by track_optimize_step() and track_optimize_process()
- update input of Problem and Termination object in Optimizer.
- add logger
- add validator and update all algorithms
- update function: get_special_solutions()
- rename function: crossover_arthmetic_recombination() to crossover_arithmetic()
- rename function: get_fitness_position() to get_target_wrapper()
- rename function: update_fitness_population() to update_target_wrapper_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 generate_position() and amend_position(). 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: obj_weight changed to obj_weights
- add parameter: save_population to control
-
Add Pareto-like Sequential Sampling (PSS) to math_based group
v2.3.0
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)
v2.2.0
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 (obj_func -> fit_func)
-
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, pop_size, ...., name='your model name', fit_name='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/)