Skip to content

Releases: thieu1995/mealpy

v2.5.3-alpha.1

21 Mar 15:09
Compare
Choose a tag to compare
Update yaml for next version

v2.5.2

21 Mar 06:56
Compare
Choose a tag to compare

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

v2.5.2-alpha.2

20 Mar 14:57
Compare
Choose a tag to compare
Test publish on pypi

Optimization 2022

26 Oct 19:08
Compare
Choose a tag to compare

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

11 Sep 15:59
Compare
Choose a tag to compare

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

22 Jun 11:26
Compare
Choose a tag to compare

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

09 Jun 04:50
Compare
Choose a tag to compare

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

22 Mar 03:53
Compare
Choose a tag to compare

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

09 Mar 14:48
Compare
Choose a tag to compare

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

03 Mar 15:53
Compare
Choose a tag to compare

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