Home - SPARHTACUS/SPTcpp GitHub Wiki

Sparhtacus

O projeto SPARHTACUS II (Stochastic Programming Algorithm foR HydroTermal Allocation via CUts and Sampling) foi um P&D ANEEL (PD-07427-0318/2018) desenvolvido pela Norus e pelo LABPLAN/UFSC e financiado pela Norte Energia S.A, contando com colaboração técnica do Operador Nacional do Sistema - ONS, em que resultou em um sistema computacional que incorpora técnicas de programação matemática para a resolução do problema do planejamento eletroenergético (programação hidrotérmica) brasileiro.

Dentre os principais objetivos do projeto, podem-se destacar:

  • O desenvolvimento de modelos computacionais de alto desempenho e grande porte de programação estocástica multiestágio linear e programação determinística inteira-mista, em que decisões eletro-energéticas são tomadas ao se tratar todas as etapas de planejamento, incluindo a programação diária, de maneira integrada.
  • A busca por maior alinhamento entre a representação computacional das etapas do SIN com a operação real do setor elétrico. Com a maior precisão na representação das etapas de planejamento, os resultados computacionais obtidos tendem a melhor sinalizar aos agentes e ao operador do sistema a realidade operativa a ser defrontada pelo setor.

Visão Geral dos Resultados do Projeto

Os resultados do projeto SPARHTACUS II são compreendidos por dois modelos computacionais, ou módulos, nomeados como SPTcpp e SPTpy. O modelo SPTcpp, implementado em C++ e compilado em Windows e Linux, pode ser instanciado (ou executado) para se resolver cada uma das etapas da cadeia de planejamento do ONS, desde o médio ao curtíssimo prazo. O modelo SPTcpp também permite uma ampla flexibilização nos horizontes das etapas de planejamento. Isto é, desde que sejam utilizados o algoritmo de solução e os dados apropriados para o problema, uma etapa de planejamento pode ser definida com os mais diversos horizontes de planejamento e períodos de tomada de decisão, podendo inclusive abranger todas as etapas de planejamento do setor em um único estudo. Isso torna possível que, por exemplo, um estudo de médio prazo seja configurado com decisões semanais, diárias e/ou horárias e inclusão de toda a complexidade de restrições usualmente empregada no curto e curtíssimo prazo.

O modelo SPTpy foi desenvolvido para a exploração de técnicas avançadas de programação matemática com foco na resolução de problemas com as características da etapa de curtíssimo prazo e inclusão do unit commitment hidráulico. Nesse contexto, no modelo SPTpy foi implementado (em Python) o algoritmo (P)arallel (D)ual (D)ynamic (i)nteger (P)rogramming PDDIP.

Este wiki serve como manual do usuário, onde será apresentado como utilizar modelo SPTcpp.


Características e Inovações do SPTcpp

O SPTcpp permite representar de forma mais precisa e realista as etapas de planejamento eletroenergético, assim como suas dinâmicas. Apesar de já existirem modelos comerciais e acadêmicos com este fim, muitos dos desenvolvimentos e abordagens utilizadas no modelo são originais e inovadoras.

A seguir são citadas algumas inovações do modelo:

  • Estrutura de dados simplificada e padronizada para a utilização em todas as etapas do planejamento eletroenergético;
  • Todos os arquivos do modelo SPT possuem extensão .csv e podem ser facilmente acessados e alterados;
  • Transparência e auditabilidade:
    • Toda a formulação a ser resolvida pelos resolvedores (seja de programação linear, programação linear inteira mista) pode ser impressa e conferida pelo usuário;
    • Todo o pré-processamento (ou processamento interno) foi elaborado de maneira a ser realizado à priori e seus resultados são impressos para serem consumidos como dados de entrada pelos algoritmos de solução. Com isso, o valor de cada coeficiente de uma equação, por exemplo, possui uma origem direta em um arquivo de entrada;
    • Todo o mecanismo de sorteio é realizado à priori (quando necessário) e seus resultados também são impressos para serem consumidos como dados de entrada pelos algoritmos de solução.
  • Flexibilidade na hora de montar o problema. O usuário pode definir a decomposição do problema alterando os períodos de otimização, de tomada de decisão e do processo estocástico;
  • Múltiplo instanciamento da etapas de planejamento;
  • Diferentes estratégias para acoplar as etapas de planejamento, estaticamente e dinamicamente;
  • Sofisticado tratamento de períodos temporais;
  • Limite de tempo dos subproblemas da etapa recursiva da PDDE;
  • Confiabilidade: Na ocorrência de uma falha na hora da execução do modelo, uma pilha de exceções indicará todos os métodos e funções que foram chamadas durante o evento;
  • Pode ser executado em Windows e Linux. Em relação aos resolvedores, podem ser utilizados o COIN-CLP (open-source) e o Gurobi;
  • Representação individualizada das hidrelétricas já na etapa de médio prazo. Afluência por bacia hidrográfica ou por usina e função de produção hidrelétrica modelada por funções lineares por partes ou produtibilidade constante;