Set of metaheuristic for solve optimization problems.
Project description
Pyristic
Librería de Python con metaheurísticas para resolver problemas de optimización mono-objetivo con o sin restricciones. El objetivo de esta librería es facilitar la resolución de problemas de optimización utilizando metaheurísticas. Pyristic se divide como sigue:
🗀 Pyristic
│
└─── 🗀 heuristic
│ │ EvolutionStrategy_search
│ │ EvolutiveProgramming_search
│ │ GeneticAlgorithm_search
│ │ SimulatedAnnealing_search
│ │ Tabu_search
│
└─── 🗀 utils
│ helpers
│ test_function
│
└─── 🗀 operators
│ │ crossover
│ │ mutation
│ │ selection
Instalación
La instalación de la librería y dependencias se realiza a través del manejador de paquetes pip:
pip install pyristic
Ejemplo
Uso de la librería Pyristic para resolver la función de Beale con la metaheurística de Estrategias Evolutivas.
from pyristic.heuristic.EvolutionStrategy_search import EvolutionStrategy
from pyristic.utils.test_function import beale_
"""
Instancia de la clase EvolutionStrategy:
- Función objetivo (recibe la funci
- Lista de restricciones
- Límite inferior y superior de las variables de decisión
- Número de variables de decisión
"""
BealeOptimizer = EvolutionStrategy(**beale_)
"""
Ejecución de la metaheurística con los siguientes parámetros:
- Número de iteraciones
- Tamaño de la población a cada iteración
- Tamaño de la población de hijos
- Mostrar la iteración en la que se encuentra
"""
BealeOptimizer.optimize(300,80,160,verbose=True)
#Resultados obtenidos por la ejecución del método optimize.
print(BealeOptimizer)
Contribución
Los usuarios interesados en participar deben seguir los siguientes pasos:
- Clonar el proyecto.
git clone https://github.com/JAOP1/pyristic.git
- Crear branch en relación al tipo de acción a realizar (añadir metaheurística, crear utilidad o resolver errores):
- Solucionar error, fix-archivo-funcion.
git checkout -b fix-crossover-n_point_crossover- Añadir metaheurística, attach-metaheuristic-nombreMetaheuristica.
git checkout -b attach-metaheuristic-fireflyAlgorithm- Crear utilidad, attach-utility-nombreUtilidad.
git checkout -b attach-utility-binaryCrossover - Realizar commit con un mensaje explicando lo realizado. Por ejemplo:
git add pyristic/utils/operators/crossover.py
git commit -m "Operador de cruza para problemas discretos."
Nota: las metaheurísticas anexadas deben ser clases que mantienen los mismos parámetros en el método __init__ que son:
- function -> Función objetivo (función de python).
- decision_variables -> Número de variables de decisión (valor entero).
- constraints -> Restricciones, arreglo con funciones de python que retornan un valor booleano.
- bounds -> Lista con los límites de las variables de decisión. Además, debe tener el método optimize (con los parámetros de la respectiva metaheurística).
Agradecimientos
- Dra. Adriana Menchaca Méndez (usuario github: adriana1304), titular del proyecto que supervisó y evaluó el desarrollo de la librería pyristic.
- El apoyo del Programa UNAM-DGAPA-PAPIME PE102320.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file pyristic-1.4.1.tar.gz.
File metadata
- Download URL: pyristic-1.4.1.tar.gz
- Upload date:
- Size: 22.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3750aa3d25b169cfa76f0558207baec060ba724b955e82db5cc2fb52943b0f52
|
|
| MD5 |
e4d333071b78cd5a4805c96fc03f6bc9
|
|
| BLAKE2b-256 |
700fa146e3b529b77ab5c2970999d8c4039c5b6584e70a627e5ae87c55ca0a28
|