pyristic


Namepyristic JSON
Version 1.4.1 PyPI version JSON
download
home_pagehttps://github.com/JAOP1/
SummarySet of metaheuristic for solve optimization problems.
upload_time2023-04-16 01:02:36
maintainer
docs_urlNone
authorJesús Armando Ortíz Peñafiel
requires_python
licenseMIT
keywords optimization metaheuristic python
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 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.
```python
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:
1. Clonar el proyecto.
```
git clone https://github.com/JAOP1/pyristic.git
```
2. 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
   ```
3. 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](https://github.com/adriana1304)), titular del proyecto que supervisó y evaluó el desarrollo de la librería pyristic.
* El apoyo del Programa UNAM-DGAPA-PAPIME PE102320.



            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/JAOP1/",
    "name": "pyristic",
    "maintainer": "",
    "docs_url": null,
    "requires_python": "",
    "maintainer_email": "",
    "keywords": "Optimization,Metaheuristic,Python",
    "author": "Jes\u00fas Armando Ort\u00edz Pe\u00f1afiel",
    "author_email": "armandopenafiel12@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/70/0f/a146e3b529b77ab5c2970999d8c4039c5b6584e70a627e5ae87c55ca0a28/pyristic-1.4.1.tar.gz",
    "platform": null,
    "description": "# Pyristic\nLibrer\u00eda de *Python* con metaheur\u00edsticas para resolver problemas de optimizaci\u00f3n mono-objetivo con o sin restricciones. El objetivo de esta librer\u00eda es facilitar la resoluci\u00f3n de problemas de optimizaci\u00f3n utilizando metaheur\u00edsticas. *Pyristic* se divide como sigue:\n```\n\ud83d\uddc0 Pyristic\n\u2502   \n\u2514\u2500\u2500\u2500 \ud83d\uddc0 heuristic\n\u2502   \u2502   EvolutionStrategy_search \n\u2502   \u2502   EvolutiveProgramming_search\n\u2502   \u2502   GeneticAlgorithm_search\n\u2502   \u2502   SimulatedAnnealing_search\n\u2502   \u2502   Tabu_search\n\u2502  \n\u2514\u2500\u2500\u2500 \ud83d\uddc0 utils\n     \u2502   helpers\n     \u2502   test_function\n     \u2502\n     \u2514\u2500\u2500\u2500 \ud83d\uddc0 operators\n     \u2502   \u2502   crossover\n     \u2502   \u2502   mutation\n     \u2502   \u2502   selection \n```\n\n\n## Instalaci\u00f3n\nLa instalaci\u00f3n de la librer\u00eda y dependencias se realiza a trav\u00e9s del manejador de paquetes *pip*:\n```\npip install pyristic\n```\n\n## Ejemplo\n\nUso de la librer\u00eda *Pyristic* para resolver la funci\u00f3n de Beale con la metaheur\u00edstica de Estrategias Evolutivas.\n```python\nfrom pyristic.heuristic.EvolutionStrategy_search import EvolutionStrategy\nfrom pyristic.utils.test_function import beale_\n\"\"\"\nInstancia de la clase EvolutionStrategy: \n- Funci\u00f3n objetivo (recibe la funci\n- Lista de restricciones\n- L\u00edmite inferior y superior de las variables de decisi\u00f3n\n- N\u00famero de variables de decisi\u00f3n\n\"\"\"\nBealeOptimizer = EvolutionStrategy(**beale_)\n\n\"\"\"\nEjecuci\u00f3n de la metaheur\u00edstica con los siguientes par\u00e1metros:\n- N\u00famero de iteraciones\n- Tama\u00f1o de la poblaci\u00f3n a cada iteraci\u00f3n\n- Tama\u00f1o de la poblaci\u00f3n de hijos\n- Mostrar la iteraci\u00f3n en la que se encuentra\n\"\"\"\nBealeOptimizer.optimize(300,80,160,verbose=True)\n\n#Resultados obtenidos por la ejecuci\u00f3n del m\u00e9todo optimize.\nprint(BealeOptimizer)\n```\n\n\n## Contribuci\u00f3n\nLos usuarios interesados en participar deben seguir los siguientes pasos:\n1. Clonar el proyecto.\n```\ngit clone https://github.com/JAOP1/pyristic.git\n```\n2. Crear branch en relaci\u00f3n al tipo de acci\u00f3n a realizar (a\u00f1adir metaheur\u00edstica, crear utilidad o resolver errores):\n   * Solucionar error, *fix-archivo-funcion*.\n    ```\n    git checkout -b fix-crossover-n_point_crossover\n    ```\n   * A\u00f1adir metaheur\u00edstica, *attach-metaheuristic-nombreMetaheuristica*. \n   ```\n   git checkout -b attach-metaheuristic-fireflyAlgorithm\n   ```\n   * Crear utilidad, *attach-utility-nombreUtilidad*.\n   ```\n   git checkout -b attach-utility-binaryCrossover\n   ```\n3. Realizar commit con un mensaje explicando lo realizado. Por ejemplo:\n```\ngit add pyristic/utils/operators/crossover.py\ngit commit -m \"Operador de cruza para problemas discretos.\"\n```\n\n**Nota:** las metaheur\u00edsticas anexadas deben ser clases que mantienen los mismos par\u00e1metros en el m\u00e9todo \\_\\_init\\_\\_ que son:\n* function           -> Funci\u00f3n objetivo (funci\u00f3n de python).\n* decision_variables -> N\u00famero de variables de decisi\u00f3n (valor entero).\n* constraints        -> Restricciones, arreglo con funciones de python que retornan un valor booleano.\n* bounds -> Lista con los l\u00edmites de las variables de decisi\u00f3n.\n  Adem\u00e1s, debe tener el m\u00e9todo *optimize* (con los par\u00e1metros de la respectiva metaheur\u00edstica).\n   \n### Agradecimientos\n* Dra. Adriana Menchaca M\u00e9ndez (usuario github: [adriana1304](https://github.com/adriana1304)), titular del proyecto que supervis\u00f3 y evalu\u00f3 el desarrollo de la librer\u00eda pyristic.\n* El apoyo del Programa UNAM-DGAPA-PAPIME PE102320.\n\n\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Set of metaheuristic for solve optimization problems.",
    "version": "1.4.1",
    "split_keywords": [
        "optimization",
        "metaheuristic",
        "python"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "700fa146e3b529b77ab5c2970999d8c4039c5b6584e70a627e5ae87c55ca0a28",
                "md5": "e4d333071b78cd5a4805c96fc03f6bc9",
                "sha256": "3750aa3d25b169cfa76f0558207baec060ba724b955e82db5cc2fb52943b0f52"
            },
            "downloads": -1,
            "filename": "pyristic-1.4.1.tar.gz",
            "has_sig": false,
            "md5_digest": "e4d333071b78cd5a4805c96fc03f6bc9",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 22147,
            "upload_time": "2023-04-16T01:02:36",
            "upload_time_iso_8601": "2023-04-16T01:02:36.911861Z",
            "url": "https://files.pythonhosted.org/packages/70/0f/a146e3b529b77ab5c2970999d8c4039c5b6584e70a627e5ae87c55ca0a28/pyristic-1.4.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-04-16 01:02:36",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "lcname": "pyristic"
}
        
Elapsed time: 0.06434s