ENTREGA DE CÓDIGO FUENTE DEL ALGORITMO USADO PARA LA ...

ENTREGA DE C?DIGO FUENTE DEL ALGORITMO USADO PARA LA SEGUNDA SUBASTA DE CLPE

NOVIEMBRE - 2019

Medell?n, 28 de noviembre de 2019

Ingeniero RICARDO RAM?REZ CARRERO Director UPME

Asunto: Entrega c?digo fuente algoritmo segunda subasta CLPE

Estimado Ingeniero Ramirez,

En el presente documento se hace la entrega del c?digo fuente del algoritmo desarrollado por Rightside para la segunda subasta de CLPE en Colombia. La versi?n descrita corresponde a la ejecutada el d?a 22 de octubre de 2019, d?a en que fue realizada la adjudicaci?n. Quedamos atentos a cualquier inquietud que pueda surgir con el c?digo.

Cordialmente,

__________________________ Oscar Mauricio Carre?o Rinc?n Representante Legal RIGHTSIDE S.A.S

C?DIGO ARCHIVO DATOSENTRADA.PY

# -------------------------------------------------------# MODELO SUBASTA CLPE # DESARROLLADO PARA LA UPME Y EL MME # Rightside SAS - 2019 - rightside.app # -------------------------------------------------------import pandas as pd from pandasql import sqldf import datetime from os import getcwd from openpyxl import load_workbook

import pyodbc conn = pyodbc.connect('Driver={SQL Server};'

'Server=localhost\SQLEXPRESS;' 'Database=Subasta;' 'Trusted_Connection=yes;')

cursor = conn.cursor()

sqlp1 = 'SELECT [IdParametroSubasta],[DemandaObjetivo],[TopeMaximoPromedio],[TopeMaximoIndiv idual],[TamanoPaquete]*1000 [TamanoPaquete] FROM [Subasta].[dbo].[ParametrosSubasta]'

for row in cursor.execute(sqlp1): paqueteKWH=(row.TamanoPaquete) PRECIOTOPE=(eMaximoPromedio) PRECIOMAXIMO=(eMaximoIndividual) DEMANDAOBJETIVO=(row.DemandaObjetivo)

optimizador = 'gams' tolerancia = 0.000001 toleranciaABS = 1 tiempoLimite = 10000

sql1='SELECT rtrim([nombre]) [nombre],rtrim([ID_oferta]) [ID_oferta],[energiaMax] energiaMax_ MWh_d,[precio] precio_COP_kWh,[ordenllegada] ordenLlegada,[Sobre],[Proceso],[energiaMin] ener giaMinima FROM [dbo].[ofertasCompra] where sobre=2' sql2='SELECT rtrim([nombre]) [nombre],rtrim([ID_oferta]) [ID_oferta] , rtrim([bloque]) [bloq ue],[numPaquetesMax],[numPaquetesMin],[precio] precio_COP_kWh,rtrim([simultanea]) [simultanea

omcarreno@.co

Carrera 48? # 16 sur ? 86 piso 6

MEDELL?N-COLOMBIA

],rtrim([excluyente]) [excluyente],rtrim([dependiente]) [dependiente],[ordenllegada] ordenLle gada,[Sobre],[Proceso],0 [obligatorio] FROM [dbo].[ofertasVenta] where sobre=2' sql3='SELECT rtrim([nombre]) [nombre],rtrim([empresa]) [empresa] ,[energiaMaximaGarantizada], [Proceso] FROM [dbo].[proyectosGeneracion]' sql4='SELECT rtrim([bloques]) [bloques],[pi],[pf] FROM [dbo].[bloques]'

ofertasCompra = pd.read_sql(sql1, conn).set_index(['ID_oferta']) ofertasVenta = pd.read_sql(sql2, conn).set_index(['ID_oferta','bloque']) proyectosVenta= pd.read_sql(sql2, conn).set_index(['nombre','ID_oferta']) proyectosCompra = pd.read_sql(sql1, conn).set_index(['nombre','ID_oferta']) proyectosGeneracion = pd.read_sql(sql3, conn).set_index(['nombre']) Bloques = pd.read_sql(sql4, conn).set_index(['bloques'])

conn.close()

#LECTURA DE INDICES; Comercializadores = sqldf("SELECT distinct(nombre) FROM ofertasCompra WHERE nombre ' ' OR DER BY nombre;", locals()) Generadores = sqldf("SELECT distinct(nombre) FROM proyectosGeneracion WHERE nombre ' ' OR DER BY nombre;", locals()) Empresas = sqldf("SELECT distinct(empresa) FROM proyectosGeneracion;", locals()) bloques = sqldf("SELECT distinct(bloques) FROM Bloques;", locals()) id_c = sqldf("SELECT distinct(ID_oferta) FROM ofertasCompra;", locals()) id_v = sqldf("SELECT distinct(ID_oferta) FROM ofertasVenta;", locals())

omcarreno@.co

Carrera 48? # 16 sur ? 86 piso 6

MEDELL?N-COLOMBIA

C?DIGO ARCHIVO SUBASTACLPE.PY

# ___________________________________________________________________________ # # Pyomo: Python Optimization Modeling Objects # Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC # Under the terms of Contract DE-NA0003525 with National Technology and # Engineering Solutions of Sandia, LLC, the U.S. Government retains certain # rights in this software. # This software is distributed under the 3-clause BSD License. # ___________________________________________________________________________ # -------------------------------------------------------# MODELO SUBASTA CLPE # DESARROLLADO PARA LA UPME Y EL Ministerio de Minas y Energia # Oscar Carreno - Rightside SAS - 2019 - rightside.app # -------------------------------------------------------from pyomo.environ import * from pyomo.opt import SolverFactory , SolverStatus, TerminationCondition from pyomo.core import Constraint from pyomo.opt import ProblemFormat from pandas import ExcelWriter from pandas import ExcelFile import pandas as pd from openpyxl import load_workbook from DatosEntrada import * import linecache import sys import math

import pyodbc

conn = pyodbc.connect('Driver={SQL Server};' 'Server=localhost\SQLEXPRESS;' 'Database=Subasta;' 'Trusted_Connection=yes;')

cursor = conn.cursor()

print () print(" EJECUTANDO MODELO DE SUBASTA CLPE Version 5.3 - Version Definitiva") print ()

def PrintException(): exc_type, exc_obj, tb = sys.exc_info() f = tb.tb_frame

omcarreno@.co

Carrera 48? # 16 sur ? 86 piso 6

MEDELL?N-COLOMBIA

................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download