14 KiB
\textbf{Pamhyr2}
- Problématique
- Proposition
- Solution technique
- Sauvegarde des résultats
- Question & remarque
#
#
#
Problématique
Problématique
Utilisateur
- Définire une version modifier de l'étude (changement dans les données)
- Comparé des résultats entre une variante et l'étude
{{{pause}}}
COMMENT Développeur
- Un unique fichier
- Limité la duplication de donnée à sauvegarder
- Garder une bonne cohérence entre données et résultats
{{{pause}}}
Scénarios
Un scénario est une variate d'une étude.
Problématique – Avancer
Utilisateur
- Définire une version modifier d'un senarios
- Comparé des résultats entre plusieurs senarios
{{{pause}}}
COMMENT Développeur
- Un unique fichier
- Limité la duplication de donnée à sauvegarder
- Garder une bonne cohérence entre données et résultats
{{{pause}}}
Scénarios
Un scénario peut être l'étude ou une variate d'un autre scénario.
Problématique – Encore plus avancer
Utilisateur
- Définire un ensemble fini de variante correspondant a un ensemble de valeur pour un(des) paramètre(s) et executer un solveur sur l'ensemble des variantes
- Pouvoir comparé des metrics sur un ensemble de résultats trop grand pour une comparaisont à la mains
{{{pause}}}
COMMENT Développeur
- Un unique fichier
- Limité la duplication de donnée à sauvegarder
- Garder une bonne cohérence entre données et résultats
{{{pause}}}
Scénarios
Un scénario peut être l'étude, une variate d'un scénarios ou un ensemble fini de variantes d'un scénarios.
Problématique – Encore plus plus avancer
Utilisateur
- Définire un ensemble fini de variante correspondant a un ensemble de valeur pour un(des) paramètre(s) et faire un nombre fini de tirage aléatoire dans ces paramètre pour executer un solveur ces paramètres
- Pouvoir comparé des metrics sur un ensemble de résultats trop grand pour une comparaisont à la mains
{{{pause}}}
Scénarios
Un scénario peut être l'étude, une variate d'un scénarios ou un ensemble fini ou un tirage aléatoire dans un ensemble de variantes d'un scénarios.
Problématique – Développeur
Développeur
- Permetre a l'utilisateur de garder une bonne cohérence entre données et résultats de façon claire
- Permetre a l'utilisateur de géré les scénarios de façon claire (représentation graphique)
- Garder un unique fichier (
.pamhyr) - Limité la duplication de donnée à sauvegarder
- Permetre à l'utilisateur de garder les résultats pertinant sans exploser la mémoire de l'ordinateur
Proposition
Proposition – Concept
{{{no}}}
\vspace{-1.2cm}
Deux type de scénarios
- Scénarios simple
- Scénarios d'éxecution d'ensemble
{{{pause}}}
Scénarios simple
Est composer:
- d'un identifiant unique
- d'un nom (définie par l'utilisateur)
- d'une description (définie par l'utilisateur)
- d'un parent (définie par l'utilisateur)
{{{pause}}}
\vspace{-0.5cm}
Scénarios d'ensembles
{{{no}}}
\vspace{-1cm} Est composer:
- d'un identifiant unique
- d'un nom (définie par l'utilisateur)
- d'une description (définie par l'utilisateur)
- d'un parent (définie par l'utilisateur)
- d'un ou plusieurs ensemble de valeur
{{{no}}}
\vspace{-0.5cm} Un ensemble de valeurs est definie par:
- une valeurs de départ
- une valeurs de fin
- un pas de valeur
- un élément d'origine (élément définie dans l'étude)
- une fonctions (modification de l'élément à l'aide d'une valeur de l'ensemble)
Proposition – Limitation
Scénarios simple
Si le scénarios est le parent d'un autre scénarios, il ne peut plus être modifier sans risquer des comportement difficilement comprehensible pour l'utilisateur.
{{{pause}}}
Scénarios d'ensembles
- Un scénarios d'ensemble ne peut pas être parent d'un autre scénarios
- Le nombre d'exécution peut très rapidement grossir
Proposition – Affichage
digraph {
bgcolor="transparent";
node[colorscheme=pastel19,shape=ellipse,style="filled",fillcolor=9];
b[fillcolor=2];
aa[shape=box,fillcolor=2];
aa2[label="aa'", shape=box, fillcolor=2];
ad[shape=box, fillcolor=2];
re[shape=box, fillcolor=2];
rf[shape=box, fillcolor=2];
default -> a;
default -> b;
default -> c;
a -> aa;
a -> aa2;
a -> f -> rf;
c -> d -> ad;
c -> e -> re;
}

Solution technique
Technique – scénarios
CREATE TABLE scenario(
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL, -- Name of the scenario
description TEXT NOT NULL, -- Rich text description
parent_id INTEGER REFERENCES scenario(id) -- Recursive references
-- for parent scenario
)
Technique – Données – Enregistrement
-- Unique ID (Must be unused, to delete)
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
-- New ID (not unique)
pamhyr_id INTEGER NOT NULL,
-- (Optional) Flag for set there is no data in this scenario and
-- ignore parent scenario
dummy BOOLEAN NOT NULL,
-- Corresponding scenario
scenario_id INTEGER NOT NULL,
PRIMARY KEY(pamhyr_id, scenario_id),
FOREIGN KEY(scenario_id) REFERENCES scenario(id),
Technique – Données – Chargement
def load(cls, db, current_scenario):
# Default case, end of recursion
if current_scenario is None:
return [] # Default value
table = db.execute(f"<MY SELECT> WHERE scenario_id = {current_scenario}")
# If no data for this scenario, recursion
if len(table) == 0:
parent_id = db.get_parent_id(current_scenario)
return cls.load(db, parent_id)
# Otherelse, parse data and return...
Technique – Données – Modification
def set_modified(self, current_scenario):
self.scenario = current_scenario
def delete(self, current_scenario):
self.deleted = True
self.set_modified(current_scenario)
Technique – Exécution d'ensemble
CREATE TABLE range_set(
id INTEGER PRIMARY KEY AUTOINCREMENT,
start REAL NOT NULL, -- Range start
end REAL NOT NULL, -- Range end
step REAL NOT NULL, -- Range step
generator_name TEXT NOT NULL, -- Generator function name (ex:
-- 'minor_strickler')
original_data_id INTEGER, -- (optional) Ref to data who apply
-- this range (ex: a strickler id)
scenario_id INTEGER NOT NULL,
FOREIGN KEY(scenario_id) REFERENCES scenario(id)
)
Sauvegarde des résultats
Sauvegarde des résultats
Scénarios simple
Sauvegarde d'un seul résultats complet par scénarios (et par solver).
Scénarios d'ensemble
Sauvegarde de metrics récupéré sur un ensemble de résultats (pas de sauvegarde de tous les résultats) ou certain résultats particuliers.
Question & remarque
Question & remarque
- Solution satisfaisante ?
- Cas d'usage intéressent non couvert ?
- Contre exemple ?
- Meilleur solution ?