marota / ExpertOp4Grid

Expert System agent to operate a power grid
https://expertop4grid.readthedocs.io/en/latest
Mozilla Public License 2.0
7 stars 2 forks source link

function rank_topologies is very slow on larger graph #25

Closed marota closed 4 years ago

marota commented 4 years ago

This leads to an almost infinite computation there on larger graph such as the WCCI grid This should be optimized This could be improved by avoiding copy of an entire graph for just a one node assessment for instance...

marota commented 4 years ago

image Illustration of test case

marota commented 4 years ago

Derouler_rank_topo.pptx

NMegel commented 4 years ago

Done in commit 37ea16b737bcf90578f3b01fcc40ff69b0cfbd00

marota commented 4 years ago

AVAL_Node_5_L2RPN_2019.xlsx

A bug was corrected because loads and prods where not always properly sum, with the proper sign in apply_new_topo. As shown on substation 5

marota commented 4 years ago

Temps de calcul :

Deux grosses modifications ont permis de gagner du temps de calcul :

On n’utilise plus la fonction « apply_new_topo_to_graph » mais on applique des masques dans « rank_current_topo_at_node_x » On ne remplit plus le DataFrame ligne par ligne dans la fonction « rank_topologies » car c’est une opération gourmande

Désormais, le usecase suivant (screenshot) sur WCCI qui mettait un temps infini met 12 secondes à calculer !

Conservation des résultats :

Sur le réseau l2rpn_2019, nous avons essayé de retrouver les mêmes scores que renvoyés par la version gourmande d’alphadeesp.

Nous te proposons de regarder 3 nœuds (CF les 3 csv ci-joints)

Le nœud 4 (nœud amont de la contrainte) : on retrouve les mêmes résultats Le nœud 5 (nœud aval de la contrainte) : Il y a des lignes en trop par rapport à avant, qui sont liés au fait qu’on ne filtre plus les configurations weakly connected On s’était dit que ce n’était pas un problème ? De toutes manières, ces topos ont des scores relativement faibles Il y a aussi des différences dans certains scores (en orange clair). Par exemple, prenons la première ligne du graphe. La différence est qu’il y a une prod comptabilisée négativement dans le fonctionnement de Marc et que nous l’avons comptabilisée positivement. Pourtant, tout semble indiquer qu’on doive la comptabiliser positivement. La raison se trouve dans une partie étrange de la méthode « apply_new_topo_to_graph » que nous n’appliquons plus

Nous te proposons de discuter lundi de l’utilité de ce traitement

Le nœud 3 (ni amont, ni aval, mais dans une « red loop ») : on retrouve les mêmes résultats

marota commented 4 years ago

Closing