Skip to main content

A test library

Project description

Portada: Import

lib_rr

lib_rr es una librería de Python 🐍 diseñada para facilitar la experimentación con algoritmos genéticos, especialmente aplicada a la optimización del ángulo de inclinación de paneles solares 🌞 y el cálculo de la distancia mínima (DM) entre ellos.

Esta herramienta está pensada para estudiantes, investigadores o desarrolladores interesados en la eficiencia energética y la aplicación de algoritmos evolutivos. 🏛️

A continuación encontraras la documentación de la libreria, y al final podras ver dos imagenes como ejemplos:

  1. Ejemplo para utilizar la libreria desde Google Colab y acceder a los metodos de las Funciones.

  2. Ejemplo para utilizar la libreria desde Google Colab y utilizar el algoritmo genetico.


👥 Autores

Jorge Andrés Rodríguez Castaño
Carlos Andrés Ramos García
Machine Learning y Algoritmos Genéticos – Universidad de Cundinamarca


🚀 Características principales

  • 🧬 Implementación de un algoritmo genético adaptativo.
  • 🌞 Optimización del ángulo óptimo de inclinación para paneles solares según latitud.
  • 📏 Cálculo automático de la distancia mínima (DM) entre paneles solares para evitar sombras.
  • 🔄 Funciones auxiliares para generación de individuos y poblaciones.
  • 🧩 Código modular y reutilizable.

📦 Instalación

Instálala fácilmente desde PyPI:

pip install lib_rr

from lib_rr import Funciones, algoritmo_genetico

🔧 Funcionalidades del módulo Funciones.py
Este módulo contiene funciones auxiliares fundamentales para el algoritmo genético,
enfocadas en la creación de individuos, evaluación de aptitud y cálculos solares.

funcion_objetivo(x)
Calcula una función cuadrática simple 🧮

Función objetivo

  usada como ejemplo de optimización.

Parámetros:
x (float): valor de entrada.

Retorna:
(float) resultado de aplicar la función cuadrática.

crear_individuo(valor_min, valor_max)
Genera un valor aleatorio dentro de un rango dado. Representa un individuo de la población. 🧍

Parámetros:
valor_min (float): límite inferior.
valor_max (float): límite superior.

Retorna:
(float) individuo 🧍 aleatorio generado.

crear_poblacion(tamano, valor_min, valor_max)
Crea una lista de individuos aleatorios que conforman una población inicial. 🌍

Parámetros:
tamano (int): número de individuos.
valor_min (float): valor mínimo por individuo. 🔽
valor_max (float): valor máximo por individuo. 🔼

Retorna:
(list[float]) población generada aleatoriamente.

calcular_Hmin(latitud, invierno)
Calcula el ángulo mínimo de altura solar (Hmin) considerando la latitud 🧭 y condiciones
invernales. ⛄

Parámetros:
latitud (float): ubicación geográfica.
invierno (float): corrección por estación invernal (en grados).

Retorna:
(float) ángulo solar mínimo.

calcular_DM(B, beta_grados, latitud, invierno)
Calcula la distancia mínima entre paneles solares para evitar sombras. 

Parámetros:
B (float): longitud del panel (m).
beta_grados (float): ángulo de inclinación del panel (°).
latitud (float): ubicación (°).
invierno (float): corrección por invierno (°). ❄️

Retorna:
(float) distancia mínima entre paneles (m).

fitness(beta_array, B, latitud, invierno)
Evalúa qué tan buenos son los ángulos beta en función de la distancia mínima obtenida.

Parámetros:
beta_array (list[float]): lista de ángulos a evaluar.
B (float): longitud del panel (m).
latitud (float): ubicación (°).
invierno (float): corrección estacional (°).

Retorna:
np.ndarray con la aptitud negativa de cada ángulo beta.

🤖 Funcionalidades del módulo algoritmo_genetico.py
Este módulo implementa el núcleo del algoritmo genético adaptativo utilizado para
optimizar el ángulo de inclinación de los paneles solares. También incluye funciones
clave para cálculos solares y evaluación de aptitud.

calcular_Hmin(latitud, invierno)
Calcula el ángulo mínimo de altura solar (Hmin) durante el invierno, utilizado en el
cálculo de distancia mínima.

Parámetros:
latitud (float): latitud geográfica (°).
invierno (float): corrección por invierno (°).

Retorna:
(float) ángulo solar mínimo. 📐

calcular_DM(B, beta_grados, latitud, invierno)
Calcula la distancia mínima entre paneles solares, en función de la latitud y el ángulo
de inclinación (beta).

Parámetros:
B (float): longitud del panel solar (m).
beta_grados (float): ángulo de inclinación del panel (°).
latitud (float): latitud geográfica (°).
invierno (float): corrección estacional por invierno (°).

Retorna:
(float) distancia mínima (m) entre paneles. ☀️

fitness(beta_array, B, latitud, invierno)
Evalúa la aptitud de cada ángulo beta calculando la distancia mínima entre paneles.
Entre menor la distancia, mejor la aptitud (negativa para facilitar la maximización).

Parámetros:
beta_array (list[float] o np.ndarray): lista de ángulos a evaluar.
B (float): longitud del panel solar.
latitud (float): latitud geográfica.
invierno (float): corrección estacional.

Retorna:
np.ndarray con los valores de aptitud (negativos).

ejecutar_algoritmo_genetico(tam_poblacion, ngen, p_cruce, p_mutacion, B, latitud, invierno)
Ejecuta un algoritmo genético adaptativo para encontrar el mejor ángulo de inclinación
beta que minimiza la distancia entre paneles solares, dadas ciertas condiciones. 💻

Parámetros:
tam_poblacion (int): tamaño de la población.
ngen (int): número de generaciones.
p_cruce (float): probabilidad de cruce entre individuos.
p_mutacion (float): probabilidad de mutación.
B (float): longitud del panel solar.
latitud (float): latitud geográfica.
invierno (float): corrección por estación invernal.

Retorna:

mejor_beta (float): ángulo de inclinación óptimo (°).

mejor_DM (float): distancia mínima alcanzada (m).

mejores (list[float]): historial del mejor fitness por generación. 💪

🎬 Ejemplos de uso

A continuación, se presentan tres ejemplos visuales del uso de la librería en Google Colab:

Primer ejemplo: Uso de funciones auxiliares 🛠️

Ejemplo 1: Uso de funciones auxiliares

Segundo ejemplo: como usar el algoritmo genético 🧬

Ejemplo 2: Ejecución del algoritmo genético

Ejemplo 3: Resultados visuales del proceso


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

lib_rr-0.2.9.tar.gz (5.2 kB view details)

Uploaded Source

Built Distribution

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

lib_rr-0.2.9-py3-none-any.whl (5.2 kB view details)

Uploaded Python 3

File details

Details for the file lib_rr-0.2.9.tar.gz.

File metadata

  • Download URL: lib_rr-0.2.9.tar.gz
  • Upload date:
  • Size: 5.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.8.10

File hashes

Hashes for lib_rr-0.2.9.tar.gz
Algorithm Hash digest
SHA256 dc6fa17516df0f419c18645b9df8c5daab11518187d66874fc47cd18d7e22ccc
MD5 ac27399e7d8e3d3e41303593fc855c45
BLAKE2b-256 af7feb6b2b89a1f2a927e27578baaaceae74ad78ded787bd9b38036976731bec

See more details on using hashes here.

File details

Details for the file lib_rr-0.2.9-py3-none-any.whl.

File metadata

  • Download URL: lib_rr-0.2.9-py3-none-any.whl
  • Upload date:
  • Size: 5.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.8.10

File hashes

Hashes for lib_rr-0.2.9-py3-none-any.whl
Algorithm Hash digest
SHA256 6695c236af20fcd9aaca16bf2bcf30b8df6d1c3dc41e93fdddc2394b1c375790
MD5 9e9785f94584f8eaf888163bb00a34f4
BLAKE2b-256 4d9b947b8aadad88ed23aa8637eea81bf894830a18f87c0a43b1ea071fd04f3f

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