Simulated Annealing with Metropolis algorithm w/ convergence tracking.
Project description
Metropolis
Una implementación pedagógica del algoritmo de Metropolis como núcleo del método de Simulated Annealing.
-
Soporte para 4 paisajes energéticos monodimensionales:
- square
- cube
- abs
- bimodal
-
Soporte 3 schedules de enfriamiento:
- lineal
- logarítmico
- exponencial
-
Tracking gráfico de la evolución energética durante el enfriamiento
Instalación
- En tu entorno de Anaconda (u otro entorno virtual):
pip install -e .
Esto instala el paquete localmente en modo editable.
- Si se prefiere usar dependencias explícitas:
pip install -r requirements.txt
- Como paquete PIP
pip install metropolis-SA==5.0.1
Estructura Metropolis V5.0.0
Metropolis-SA/
├── README.md
├── LICENSE
├── requirements.txt
├── metropolis/
│ ├── __init__.py # inicialización paquete
│ ├── core.py # núcleo del algoritmo
│ ├── main.py # main metropolis
│ ├── schedule.py # funciones de temperatura (v2+)
│ ├── energies.py # funciones de temperatura (v5+)
│ └── visualization.py # para plots de convergencia (v3+)
├── test/
│ └── anneal.py
└── tests/
Estructura Metropolis V5.0.1
Metropolis-SA/
├── README.md
├── LICENSE
├── requirements.txt
├── src/
├──metropolis_sa
├── __init__.py # inicialización paquete
├── main.py
├── core.py # núcleo del algoritmo
├── schedule.py # funciones de temperatura (v2+)
│ ├── energies.py # funciones de temperatura (v5+)
│ └── visualization.py # para plots de convergencia (v3+)
├── test/
│ └── anneal.py
└── doc/
Ejecución
- Como módulo ejecutable (sin instalación previa)
#from packet root
usage: python -m metropolis.main [-h] [--schedule {linear,exponential,logarithmic}] [--plot] {square,abs,cube,bimodal}
Execute Metropolis annealing with different energy landscapes and scheduling types
positional arguments:
{square,abs,cube,bimodal}
Energy landscape
options:
-h, --help show this help message and exit
--schedule {linear,exponential,logarithmic}
Type of scheduling to be used (default: exponential)
--plot Plotted Metropolis epochs
Ejemplos:
python -m metropolis.main square --plot
python -m metropolis.main bimodal --schedule exponential --plot
python -m metropolis.main bimodal --schedule linear
Versión >=5.0.1
Desde raiz del paquete /src
python -m metropolis_sa.main square --plot
python -m metropolis_sa.main bimodal --schedule exponential --plot
python -m metropolis_sa.main bimodal --schedule linear
- Instalándolo como paquete PIP
Instalando el paquete desde PyPI, se habilita el comando de consola con entry point metropolis-SA.
pip install metropolis-SA==5.0.1
metropolis-SA
Ejemplos:
metropolis-SA -h
metropolis-SA bimodal --schedule exponential --plot
metropolis-SA quare --schedule linear --plot
Historial
V1.0.0 Motor Monte Carlo básico Ejemplo de uso
V2.0.0 Incorpora varios schedules de enfriamiento
V3.0.0
- Añadido Módulo
visualization.pypara graficar convergencia. - Corregido bug en orden de parámetros de llamada a la función scheduling
- Se evitan energías negativas
- Otros cambios menores.
V4.0.0
- Añadido soporte línea de comandos.
V5.0.0
- Versión final estable
- Posibilidad de indicar función paisaje-energético
- Integrado un main al paquete
- Añadido como paquete PIP
- Salida en inglés
V5.0.1
- Reorganización de módulos
- Correcciones menores
Creación de releases
Flujo recomendado
git add . git commit -m "Prepare release vx.x.x" git push
git tag -a v1x.x.x -m "Release vx.x.x" git push origin vx.x.x
gh release create vx.x
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file metropolis_sa-5.0.1.tar.gz.
File metadata
- Download URL: metropolis_sa-5.0.1.tar.gz
- Upload date:
- Size: 6.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3bfd064a09de68ac5a3eb0aa192f8ad2f235a06045f72cbe981ce5084ad31639
|
|
| MD5 |
50da392122de7d60ccda37617354e1b0
|
|
| BLAKE2b-256 |
321cfb026610abda6399ce247e293dcf2037f4ae774a93acf072915ff34ffb2e
|
File details
Details for the file metropolis_sa-5.0.1-py3-none-any.whl.
File metadata
- Download URL: metropolis_sa-5.0.1-py3-none-any.whl
- Upload date:
- Size: 8.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2ca43fa2754bff4a249337741cd4092a4a73e89614da2be0a87a22af24a2233a
|
|
| MD5 |
06a7776c0087939f8763b86fc76a505d
|
|
| BLAKE2b-256 |
503c14d5f4f839ac8ef56475c924d06b03346744da0edb1606b04f614501ea70
|