.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "examples/plot_sintese_execucao.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note :ref:`Go to the end ` to download the full example code. .. rst-class:: sphx-glr-example-title .. _sphx_glr_examples_plot_sintese_execucao.py: ======================================== Síntese da Execução ======================================== .. GENERATED FROM PYTHON SOURCE LINES 8-16 Para realizar a síntese da execução de um caso do DECOMP é necessário estar em um diretório no qual estão os principais arquivos de saída do modelo. Por exemplo, para se realizar a síntese de tempo de execução, é necessario o `decomp.tim`, para a síntese da convergência, o `relato.rvX` e, para a síntese de inviabilidades, o `inviab_unic.rvX`. Neste contexto, basta fazer:: $ sintetizador-decomp execucao .. GENERATED FROM PYTHON SOURCE LINES 18-43 O sintetizador irá exibir o log da sua execução:: >>> 2025-04-07 21:02:55,581 INFO: # Realizando síntese da EXECUÇÃO # >>> 2025-04-07 21:02:55,581 INFO: Realizando síntese de PROGRAMA >>> 2025-04-07 21:02:55,586 INFO: Tempo para sintese de PROGRAMA: 0.00 s >>> 2025-04-07 21:02:55,586 INFO: Realizando síntese de VERSAO >>> 2025-04-07 21:02:55,586 INFO: Lendo arquivo dec_oper_sist.csv >>> 2025-04-07 21:02:55,674 INFO: Tempo para sintese de VERSAO: 0.09 s >>> 2025-04-07 21:02:55,674 INFO: Realizando síntese de TITULO >>> 2025-04-07 21:02:55,684 INFO: Lendo arquivo dadger.rv0 >>> 2025-04-07 21:02:56,004 INFO: Tempo para sintese de TITULO: 0.33 s >>> 2025-04-07 21:02:56,004 INFO: Realizando síntese de CONVERGENCIA >>> 2025-04-07 21:02:56,004 INFO: Lendo arquivo relato.rv0 >>> 2025-04-07 21:02:56,692 INFO: Tempo para sintese de CONVERGENCIA: 0.69 s >>> 2025-04-07 21:02:56,692 INFO: Realizando síntese de TEMPO >>> 2025-04-07 21:02:56,692 INFO: Lendo arquivo decomp.tim >>> 2025-04-07 21:02:56,697 INFO: Tempo para sintese de TEMPO: 0.01 s >>> 2025-04-07 21:02:56,697 INFO: Realizando síntese de INVIABILIDADES >>> 2025-04-07 21:02:56,697 INFO: Lendo arquivo inviab_unic.rv0 >>> 2025-04-07 21:02:56,705 INFO: Lendo arquivo hidr.dat >>> 2025-04-07 21:02:58,220 INFO: Tempo para sintese de INVIABILIDADES: 1.52 s >>> 2025-04-07 21:02:58,221 INFO: Realizando síntese de CUSTOS >>> 2025-04-07 21:02:58,231 INFO: Tempo para sintese de CUSTOS: 0.01 s >>> 2025-04-07 21:02:58,236 INFO: Tempo para sintese da execucao: 2.65 s >>> 2025-04-07 21:02:58,236 INFO: # Fim da síntese # .. GENERATED FROM PYTHON SOURCE LINES 45-47 Os arquivos serão salvos no subdiretório `sintese`. Para realizar o processamento, pode ser utilizado o próprio `python`: .. GENERATED FROM PYTHON SOURCE LINES 47-51 .. code-block:: Python import plotly.express as px from datetime import timedelta import pandas as pd .. GENERATED FROM PYTHON SOURCE LINES 52-54 Para a síntese da execução é produzido um arquivo com as informações das sínteses que foram realizadas: .. GENERATED FROM PYTHON SOURCE LINES 54-62 .. code-block:: Python metadados = pd.read_parquet("sintese/METADADOS_EXECUCAO.parquet") print(metadados) # A leitura das sínteses realizadas pode ser feita da seguinte forma: convergencia = pd.read_parquet("sintese/CONVERGENCIA.parquet") custos = pd.read_parquet("sintese/CUSTOS.parquet") tempo = pd.read_parquet("sintese/TEMPO.parquet") .. rst-class:: sphx-glr-script-out .. code-block:: none chave nome_curto nome_longo 0 PROGRAMA PROGRAMA Modelo de Otimização 1 VERSAO VERSAO Versão do Modelo 2 TITULO TITULO Título do Estudo 3 CONVERGENCIA CONVERGENCIA Convergência do Processo Iterativo 4 TEMPO TEMPO Tempo de Execução 5 INVIABILIDADES INVIABILIDADES Violações das Restrições 6 CUSTOS CUSTOS Composição de Custos da Solução .. GENERATED FROM PYTHON SOURCE LINES 63-64 O formato dos dados de CONVERGÊNCIA: .. GENERATED FROM PYTHON SOURCE LINES 64-66 .. code-block:: Python print(convergencia.head(10)) .. rst-class:: sphx-glr-script-out .. code-block:: none iteracao zinf zsup ... violacao_hm3 delta_zinf execucao 0 1 NaN 1.956588e+09 ... 0.0 NaN 0 1 2 NaN 5.658944e+08 ... 0.0 NaN 0 2 3 533343777.1 5.465525e+08 ... 0.0 NaN 0 3 4 533343777.1 5.387266e+08 ... 0.0 0.000000e+00 0 4 5 533350638.4 5.357187e+08 ... 0.0 1.286469e-05 0 5 6 533370771.4 5.340916e+08 ... 0.0 3.774815e-05 0 6 7 533370989.3 5.339817e+08 ... 0.0 4.085338e-07 0 7 8 533371336.6 5.337387e+08 ... 0.0 6.511415e-07 0 8 9 533371360.9 5.337107e+08 ... 0.0 4.555925e-08 0 9 10 533372346.2 5.335950e+08 ... 0.0 1.847306e-06 0 [10 rows x 12 columns] .. GENERATED FROM PYTHON SOURCE LINES 67-68 O formato dos dados de CUSTOS: .. GENERATED FROM PYTHON SOURCE LINES 68-70 .. code-block:: Python print(custos) .. rst-class:: sphx-glr-script-out .. code-block:: none parcela valor_esperado desvio_padrao 0 geracao_termica 459104.14 0.0 1 penalidade_intercambio 1.57 0.0 2 penalidade_vertimento_fio 14.89 0.0 3 penalidade_vertimento_reservatorio 2.79 0.0 4 violacao_desvio 0.00 0.0 5 violacao_turbinamento_fio 34.30 0.0 6 violacao_turbinamento_reservatorio 13.67 0.0 .. GENERATED FROM PYTHON SOURCE LINES 71-72 O formato dos dados de TEMPO: .. GENERATED FROM PYTHON SOURCE LINES 72-74 .. code-block:: Python print(tempo) .. rst-class:: sphx-glr-script-out .. code-block:: none etapa tempo execucao 0 Leitura de Dados 12.0 0 1 Convergencia 412.0 0 2 Impressao 13.0 0 .. GENERATED FROM PYTHON SOURCE LINES 75-77 Cada arquivo pode ser visualizado de diferentes maneiras, a depender da aplicação. Por exemplo, é comum avaliar a convergência do modelo através da variação do gap. .. GENERATED FROM PYTHON SOURCE LINES 77-85 .. code-block:: Python fig = px.line( convergencia, x="iteracao", y="delta_zinf", ) fig .. raw:: html


.. GENERATED FROM PYTHON SOURCE LINES 86-88 Quando se analisam os custos de cada fonte, geralmente são feitos gráficos de barras empilhadas ou setores: .. GENERATED FROM PYTHON SOURCE LINES 88-96 .. code-block:: Python fig = px.pie( custos.loc[custos["valor_esperado"] > 0], values="valor_esperado", names="parcela", ) fig .. raw:: html


.. GENERATED FROM PYTHON SOURCE LINES 97-98 Uma abordagem semelhante é utilizada na análise do tempo de execução: .. GENERATED FROM PYTHON SOURCE LINES 98-109 .. code-block:: Python tempo["tempo"] = pd.to_timedelta(tempo["tempo"], unit="s") / timedelta(hours=1) tempo["label"] = [str(timedelta(hours=d)) for d in tempo["tempo"].tolist()] fig = px.bar( tempo, x="etapa", y="tempo", text="label", barmode="group", ) fig .. raw:: html


.. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 0.902 seconds) .. _sphx_glr_download_examples_plot_sintese_execucao.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_sintese_execucao.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_sintese_execucao.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: plot_sintese_execucao.zip ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_