MEALPY

repository·master·Indexed 22 days ago

https://github.com/thieu1995/mealpy

A comprehensive Python library for meta-heuristic algorithms, featuring a large collection of nature-inspired, bio-inspired, and black-box optimization methods. It provides various decision variable classes (such as FloatVar, IntegerVar, and PermutationVar) and categorizes optimizers into groups including Evolutionary, Swarm, Physics, Human, Biology, System, Math, and Music-based methods.

Tokens
37.1K
Snippets
57
Records
108
Agent score
79%

What's inside mealpy

  1. Explore Mealpy optimizer subpackages

    master

    Mealpy organizes its optimization algorithms into several specialized subpackages based on their underlying principles. You can find specific algorithms within these categories:

    • mealpy.bio_based: Bio-inspired algorithms.
    • mealpy.evolutionary_based: Evolutionary algorithms.
    • mealpy.game_based: Game-theory based algorithms.
    • mealpy.human_based: Human-behavior inspired algorithms.
    • mealpy.math_based: Mathematical-based algorithms.
    • mealpy.music_based: Music-inspired algorithms.
    • mealpy.physics_based: Physics-based algorithms.
    • mealpy.sota_based: State-of-the-art algorithms.
    • mealpy.swarm_based: Swarm intelligence algorithms.
    • mealpy.system_based: System-based algorithms.
    • mealpy.utils: Utility functions and helpers.
  2. Use swarm-based optimizers in mealpy

    master

    The mealpy.swarm_based package contains various swarm intelligence algorithms. Each algorithm is implemented as a module within this package. To use a specific optimizer, import the corresponding class from its module. Common swarm-based optimizers available in this package include:

    • SeaHO (Sea Horse Optimizer)
    • ServalOA (Serval Optimization Algorithm)
    • SquirrelSA (Squirrel Search Algorithm)
    • TDO (TDO Optimizer)
    • TSO (TSO Optimizer)
    • WOA (Whale Optimization Algorithm)
    • WSO (Water Swarm Optimization)
    • WaOA (Water Allocation Optimization Algorithm)
    • ZOA (Zebra Optimization Algorithm)

    Note: Specific implementation details, parameters, and method signatures for each optimizer are contained within their respective modules.

  3. Use human-based optimization algorithms in mealpy

    master

    The mealpy.human_based package contains a collection of optimization algorithms inspired by human behavior and social structures. You can use these algorithms to solve optimization problems by importing the specific optimizer class from its respective module.

    Available human-based modules include:

    • AFT (Artificial Flower Team)
    • BRO (Black Rose Optimization)
    • BSO (Binary Search Optimization)
    • CA (Chaos Algorithm)
    • CDDO (Collaborative Decision-making Optimization)
    • CHIO (Chaos Hill Optimization)
    • DOA (Decision-making Optimization Algorithm)
    • FBIO (Flower Bee Intelligence Optimization)
    • GSKA (Grey Squirrel Knowledge Algorithm)
    • HBO (Human Behavior Optimization)
    • HCO (Human Centric Optimization)
    • ICA (Intelligence Collective Algorithm)
    • ILA (Intelligence Learning Algorithm)
    • LCO (Learning Collective Optimization)
    • MGOA (Multi-group Optimization Algorithm)
    • PO (Pigeon Optimization)
    • QSA (Quantum Social Algorithm)
    • SARO (Social Awareness Rule Optimization)
    • SPBO (Social Power Based Optimization)
    • SSDO (Social Structure Decision Optimization)
    • TLO (Team Learning Optimization)
    • TOA (Team Optimization Algorithm)
    • WarSO (War Social Optimization)
  4. Explore the mealpy.utils package submodules

    master

    The mealpy.utils package provides a collection of utility modules used to support optimization tasks, data management, and algorithm execution. The available submodules include:

    • mealpy.utils.agent: Utilities related to agent management.
    • mealpy.utils.chaotic: Chaotic maps and sequences.
    • mealpy.utils.fuzzy: Fuzzy logic utilities.
    • mealpy.utils.history: Tools for tracking optimization history.
    • mealpy.utils.io: Input/Output operations.
    • mealpy.utils.logger: Logging utilities.
    • mealpy.utils.problem: Utilities for defining and managing optimization problems.
    • mealpy.utils.space: Search space management utilities.
    • mealpy.utils.target: Target-related utilities.
    • mealpy.utils.termination: Termination criteria and conditions.
    • mealpy.utils.transfer: Transfer utilities.
    • mealpy.utils.validator: Validation utilities.
    • mealpy.utils.visualize: Visualization tools (available via the mealpy.utils.visualize submodule).
  5. Use math-based optimizers in mealpy.math_based

    master

    The mealpy.math_based package provides a collection of optimization algorithms that are based on mathematical principles rather than biological or social behaviors. You can access various specific optimizer modules within this package to solve optimization problems.

    Available math-based optimizer modules include:

    • AOA (Arithmetic Optimization Algorithm)
    • CEM (Continuous Extreme Learning Machine)
    • CGO (Cuckoo Search Optimization - Note: verify specific math-based implementation)
    • CircleSA (Circle Simulated Annealing)
    • GBO (Grey Wolf Optimizer - Note: verify specific math-based implementation)
    • HC (Harmony Convergence)
    • INFO (Improved Firefly Optimization)
    • PSS (Pseudo-random Search)
    • RUN (Random Walk Optimization)
    • SCA (Sine Cosine Algorithm)
    • SHIO (Sine Hyperbolic Improved Optimizer)
    • TS (Teaching Search)
  6. Use bio-based optimizers in mealpy.bio_based

    master

    The mealpy.bio_based package provides a collection of bio-inspired optimization algorithms. Each algorithm is contained within its own module under the mealpy.bio_based namespace. To use these optimizers, you can import the specific algorithm class from its corresponding module.

    Available bio-based modules include:

    • AAA (Artificial Ant Colony Optimization)
    • APO (Artificial Prime Optimization)
    • BBO (Biogeography-Based Optimization)
    • BBOA (Biogeography-Based Optimization Algorithm)
    • BCO (Black Hole Computing Optimization)
    • BMO (Bacterial Mutation Optimization)
    • EAO (Evolutionary Algorithm Optimization)
    • EOA (Equilibrium Optimization Algorithm)
    • IWO (Imperialistla Wasp Optimization)
    • SBO (Sine Bounded Optimization)
    • SBOA (Sine Bounded Optimization Algorithm)
    • SFOA (Sine Frequency Optimization Algorithm)
    • SMA (Slime Mould Algorithm)
    • SOA (Sine Optimization Algorithm)
    • SOS (Sine Sine Optimization)
    • TPO (Trophic Position Optimization)
    • TSA (Trophic Search Algorithm)
    • TSeedA (Trophic Seed Algorithm)
    • VCS (Vulture Climbing Strategy)
    • WHO (Whale Optimization Algorithm)
  7. Use evolutionary-based optimizers in mealpy

    master

    The mealpy.evolutionary_based package contains a collection of evolutionary-based optimization algorithms. These algorithms are designed to solve optimization problems by simulating biological or evolutionary processes.

    Available modules in this package include:

    • BWOA (Black Widow Optimization Algorithm)
    • CRO (Cuckoo Search / similar evolutionary variant)
    • DE (Differential Evolution)
    • EP (Evolutionary Programming)
    • ES (Evolutionary Strategies)
    • FPA (Flower Pollination Algorithm)
    • GA (Genetic Algorithm)
    • MA (Memetic Algorithm)
    • SHADE (Success-History Adaptation Differential Evolution)
  8. Explore the MEALPY ecosystem

    master

    Mealpy is part of a broader ecosystem of specialized libraries that combine meta-heuristic optimizers with various machine learning and neural network architectures. You can extend your optimization tasks by using Mealpy with:

    • Neural Networks: Multi-Layer Perceptron (MetaPerceptron), Extreme Learning Machine (IntelELM), Random Vector Functional Link (GrafoRVFL), Cascade-Forward (deforce), Higher Order Functional Link (reflame), Radial Basis Function (EvoRBF), Wavelet Neural Network (WaveletML), Kolmogorov–Arnold Network (MetaKan), and Immune Algorithm-Inspired (IMAINET).
    • Other ML/AI: Adaptive Neuro Fuzzy Inference System (X-ANFIS), KMeans clustering (MetaCluster), and Feature Selection (mafese).
    • Framework Integrations: Scikit-Learn (MetaSklearn).
  9. Use physics-based optimizers in mealpy.physics_based

    master

    The mealpy.physics_based package provides a collection of optimization algorithms inspired by physical phenomena. You can use these modules to solve optimization problems by importing the specific optimizer class from its corresponding module.

    Available physics-based modules include:

    • ASO (Artificial Sine Optimization)
    • ArchOA (Archimedes Optimization Algorithm)
    • CDO (Chaotic Dragon Optimization)
    • CEO (Chaotic Elephant Optimization)
    • EFO (Equilibrium Fighter Optimization)
    • EO (Equilibrium Optimizer)
    • ESO (Equilibrium Sine Optimization)
    • EVO (Equilibrium Vortex Optimization)
    • FLA (Firefly Algorithm)
    • GRSA (Gravitational Search Algorithm)
    • HGSO (Helical Gravitational Search Optimization)
    • KLA (Kelvin Line Algorithm)
    • KOA (Kelvin Optimization Algorithm)
    • LSO (Lévy Search Optimization)
    • MSO (Modified Sine Optimization)
    • MVO (Multi-Verse Optimizer)
    • NRO (Newton Research Optimization)
    • RIME (Rime Optimization)
    • SA (Simulated Annealing)
    • SOO (Sine Optimization)
    • TWO (Two-Weight Optimization)
    • WDO (Water Dance Optimization)
  10. Explore swarm-based optimization algorithms in mealpy.swarm_based

    master

    The mealpy.swarm_based package contains a wide variety of swarm intelligence and nature-inspired optimization algorithms. Each algorithm is organized into its own module within this package. You can use these modules to solve optimization problems by importing the specific optimizer class you need.

    Available algorithm modules include:

    • ABC: Artificial Bee Colony
    • ACOR: Artificial Coral Reef
    • AGTO: Artificial Grasshopper Technic Optimization
    • AHO: Artificial Hive Optimization
    • ALO: Artificial Life Optimization
    • AO: Artificial Oyster
    • ARO: Artificial Rose Optimization
    • AVOA: African Vulture Optimization Algorithm
    • BA: Bat Algorithm
    • BES: Black and White Elephant Search
    • BFO: Bacterial Foraging Optimization
    • BSA: Black Swarm Algorithm
    • BWO: Black Widow Optimization
    • BeesA: Bee Algorithm
    • CCO: CCO Optimization
    • COA: COA Optimization
    • CSA: Cuckoo Search Algorithm
    • CSO: Cuckoo Search Optimization
    • ChOA: Chameleon Optimization Algorithm
    • ChameleonSA: Chameleon Search Algorithm
    • CoatiOA: Coati Optimization Algorithm
    • CrayfishOA: Crayfish Optimization Algorithm
    • DBO: Dragonfly Brain Optimization
    • DMOA: Dragonfly Meta-heuristic Optimization Algorithm
    • DO: Dragonfly Optimization
    • DSO: Dragonfly Swarm Optimization
    • DandelionO: Dandelion Optimization
    • EEFO: Elephant Evolutionary Foraging Optimization
    • EHO: Elephant Herding Optimization
    • EPC: Elephant Proactive Control
    • ESOA: Elephant Swarm Optimization Algorithm
    • FA: Firefly Algorithm
    • FDO: Firefly Dragonfly Optimization
    • FFA: Firefly Foraging Algorithm
    • FFO: Firefly Foraging Optimization
    • FHO: Firefly Herding Optimization
    • FOA: Firefly Optimization Algorithm
    • FOX: Fox Optimization
    • GJA: Grasshopper Jump Algorithm
    • GJO: Grasshopper Optimization
    • GOA: Grey Wolf Optimizer
    • GTO: Grasshopper Technic Optimization
    • GWO: Grey Wolf Optimizer
    • HBA: Honey Bee Algorithm
    • HGS: Honey Guide Search
    • HHO: Harris Hawks Optimization
    • JA: Jellyfish Algorithm
    • MFO: Moth-Flame Optimization
    • MGO: Moth Group Optimization
    • MPA: Marine Predators Algorithm
    • MRFO: Moth-Flame Research Optimization
    • MSA: Marine Swarm Algorithm
    • MShOA: Marine Swarm Hybrid Optimization Algorithm
    • NGO: Nightingale Optimization
    • NMRA: Nightingale Meta-heuristic Research Algorithm
    • NWOA: Nightingale Water Optimization Algorithm
    • OOA: Owl Optimization Algorithm
    • ORCA: Orca Optimization
    • OSA: Orca Swarm Algorithm
    • PFA: Piranha Fish Algorithm
    • POA: Piranha Optimization Algorithm
    • PSO: Particle Swarm Optimization
    • RFO: RFO Optimization
    • RSA: RSA Optimization
    • SCSO: SCSO Optimization
    • SFO: SFO Optimization
    • SHO: Sea Horse Optimization
    • SLO: Sea Lion Optimization
    • SMO: Sea Monster Optimization
    • SRSR: SRSR Optimization
    • SSA: Sea Swarm Algorithm
    • SSO: Sea Swarm Optimization
    • SSpiderA: Spider Algorithm A
    • SSpiderO: Spider Algorithm O
    • STO: STO Optimization
  11. Explore Mealpy application examples

    master

    Mealpy supports a wide range of applications. You can find specific implementation examples in the /examples directory of the repository for:

    • General Optimization: Large-scale, distributed/parallel, constrained, and multi-objective problems.
    • Machine Learning & AI: Hyperparameter optimization (e.g., SVM with Scikit-learn) and optimizing models with PyTorch.
    • Combinatorial Optimization: Traveling Salesman Problem (TSP), Job Shop Scheduling, Shortest Path, Supply Chain, and more.
    • Neural Network Integration: Replacing gradient descent in time-series or classification tasks using Keras/MLP.
    • Specialized Utilities: Using the Tuner class for hyper-parameter tuning and the Multitask class for multitask solving.
  12. Overview of Optimizer Classifications in Mealpy

    master

    Mealpy categorizes its optimization algorithms into several main groups, primarily Evolutionary, Swarm, and Physics-based methods. This classification helps developers choose an algorithm based on its underlying mathematical model and complexity.

    Main Groups:

    • Evolutionary: Includes Genetic Algorithms (GA), Differential Evolution (DE), Evolution Strategies (ES), and others.
    • Swarm: Includes Particle Swarm Optimization (PSO), Grey Wolf Optimizer (GWO), Whale Optimization Algorithm (WOA), and many others.
    • Physics: Includes Simulated Annealing (SA) and related methods.

    Each algorithm is characterized by its original publication year, number of parameters, and a difficulty rating (easy, medium, hard) which typically refers to the complexity of tuning or implementation.