Skip to main content

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

  1. En tu entorno de Anaconda (u otro entorno virtual):
pip install -e .

Esto instala el paquete localmente en modo editable.

  1. Si se prefiere usar dependencias explícitas:
pip install -r requirements.txt
  1. 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

  1. 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
  1. 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.py para 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

metropolis_sa-5.0.1.tar.gz (6.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

metropolis_sa-5.0.1-py3-none-any.whl (8.0 kB view details)

Uploaded Python 3

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

Hashes for metropolis_sa-5.0.1.tar.gz
Algorithm Hash digest
SHA256 3bfd064a09de68ac5a3eb0aa192f8ad2f235a06045f72cbe981ce5084ad31639
MD5 50da392122de7d60ccda37617354e1b0
BLAKE2b-256 321cfb026610abda6399ce247e293dcf2037f4ae774a93acf072915ff34ffb2e

See more details on using hashes here.

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

Hashes for metropolis_sa-5.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2ca43fa2754bff4a249337741cd4092a4a73e89614da2be0a87a22af24a2233a
MD5 06a7776c0087939f8763b86fc76a505d
BLAKE2b-256 503c14d5f4f839ac8ef56475c924d06b03346744da0edb1606b04f614501ea70

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page