Suppression des fichiers inutiles

master
Yvan CALATAYUD 2 years ago
parent c5ba5a7915
commit 916f11b1d6

@ -1,105 +0,0 @@
import csv
import networkx as nx
import matplotlib.pyplot as plt
from typing import Dict, Tuple
pert = nx.DiGraph()
with open('tasks-sae.csv') as csvfile:
tasks = list(csv.reader(csvfile, delimiter=','))
for task, duration, predecessors, label, _ in tasks:
pert.add_node(task, duration=int(duration))
for task, duration, predecessors, label, _ in tasks:
if predecessors == '':
continue
for predecessor in predecessors.split('-'):
pert.add_edge(predecessor, task)
layout = nx.nx_pydot.graphviz_layout(pert, prog='dot')
nx.draw(pert, pos=layout)
nx.draw_networkx_labels(pert, pos=layout)
labels: Dict[Tuple[str, str], int] = {}
for task in pert.nodes:
for edge in pert.out_edges(task):
labels[edge] = pert.nodes[task]['duration']
nx.draw_networkx_edge_labels(pert, pos=layout, edge_labels=labels)
plt.show()
sources = [task for task in pert.nodes if pert.in_degree(task) == 0]
puits = [task for task in pert.nodes if pert.out_degree(task) == 0]
asap: Dict[str, str] = dict()
for source in sources:
asap[source] = pert.nodes[source]['duration']
frontiere = []
for task in sources:
frontiere.extend(pert.successors(task))
while len(frontiere):
sucessors = []
for task in frontiere:
start = 0
stop = False
for predecessor in pert.predecessors(task):
if predecessor not in asap:
stop = True
break
start = max(start, asap[predecessor])
if stop:
continue
asap[task] = start + pert.nodes[task]['duration']
sucessors.extend(pert.successors(task))
frontiere = sucessors
total_duration = 0
for task in pert.nodes:
total_duration = max(asap[task], total_duration)
alap: Dict[str, str] = dict()
for puit in puits:
alap[puit] = total_duration - pert.nodes[puit]['duration']
frontiere = []
for task in puits:
frontiere.extend(pert.predecessors(task))
while len(frontiere):
predecessors = []
for task in frontiere:
end = total_duration
stop = False
for successor in pert.successors(task):
if successor not in alap:
stop = True
break
end = min(end, alap[successor])
if stop:
continue
alap[task] = end - pert.nodes[task]['duration']
predecessors.extend(pert.predecessors(task))
frontiere = predecessors
print('Durée totale :', total_duration, 'heures')
for task in pert.nodes:
duration = pert.nodes[task]['duration']
print('|', task, '|', duration, '|', '-'.join(pert.predecessors(task)), '|', asap[task] - duration, '|', asap[task], '|', alap[task], '|', alap[task] + duration, '|', alap[task] + duration - asap[task], '|', sep='')
nrow = pert.number_of_nodes()
plt.figure()
bar_width = 0.9
tasks = list(pert.nodes)
for i, task in enumerate(reversed(tasks)):
duration = pert.nodes[task]['duration']
plt.broken_barh([(asap[task] - duration, duration)], (i - bar_width / 2, bar_width))
#plt.broken_barh([(asap[task], alap[task] - asap[task])], (i - bar_width / 2, bar_width), color='green')
plt.yticks([i for i in range(nrow)], reversed(tasks))
plt.show()

@ -1,111 +0,0 @@
import networkx as nx
from random import randint
from typing import Dict
import matplotlib.pyplot as plt
pert = nx.DiGraph()
"""pert.add_node('A', duration=3)
pert.add_node('B', duration=4)
pert.add_node('C', duration=8)
pert.add_node('D', duration=6)
pert.add_node('E', duration=2)
pert.add_node('F', duration=10)
pert.add_node('G', duration=5)
pert.add_node('H', duration=3)
pert.add_node('I', duration=2)
pert.add_node('J', duration=4)
pert.add_node('K', duration=4)
pert.add_node('L', duration=4)
pert.add_node('M', duration=10)
pert.add_edge('A', 'C')
pert.add_edge('B', 'D')
pert.add_edge('C', 'D')
pert.add_edge('D', 'E')
pert.add_edge('D', 'F')
pert.add_edge('F', 'G')
pert.add_edge('D', 'H')
pert.add_edge('E', 'I')
pert.add_edge('C', 'J')
pert.add_edge('B', 'J')
pert.add_edge('G', 'K')
pert.add_edge('H', 'K')
pert.add_edge('I', 'L')
pert.add_edge('J', 'L')
pert.add_edge('K', 'L')
pert.add_edge('L', 'M')"""
pert.add_edge('A', 'B')
pert.add_edge('B', 'C')
pert.add_edge('B', 'D')
pert.add_edge('C', 'E')
pert.add_edge('D', 'E')
pert.add_edge('E', 'I')
pert.add_edge('I', 'J')
pert.add_edge('J', 'K')
pert.add_edge('I', 'G')
pert.add_edge('G', 'J')
for task in pert.nodes:
pert.nodes[task]['duration'] = randint(1, 10)
layout = nx.nx_pydot.graphviz_layout(pert, prog='dot')
nx.draw(pert, pos=layout)
nx.draw_networkx_labels(pert, pos=layout)
labels = {}
for task in pert.nodes:
for edge in pert.out_edges(task):
labels[edge] = pert.nodes[task]['duration']
nx.draw_networkx_edge_labels(pert, pos=layout, edge_labels=labels)
plt.show()
sources = [task for task in pert.nodes if pert.in_degree(task) == 0]
puits = [task for task in pert.nodes if pert.out_degree(task) == 0]
asap: Dict[str, str] = dict()
for source in sources:
asap[source] = pert.nodes[source]['duration']
frontiere = []
for task in sources:
frontiere.extend(pert.successors(task))
while len(frontiere):
sucessors = []
for task in frontiere:
start = 0
for predecessor in pert.predecessors(task):
start = max(start, asap[predecessor])
asap[task] = start + pert.nodes[task]['duration']
sucessors.extend(pert.successors(task))
frontiere = sucessors
m = 0
for task in pert.nodes:
m = max(asap[task], m)
alap: Dict[str, str] = dict()
for puit in puits:
alap[puit] = m
frontiere = []
for task in puits:
frontiere.extend(pert.predecessors(task))
while len(frontiere):
predecessors = []
for task in frontiere:
end = m
for successor in pert.successors(task):
end = min(end, alap[successor] - pert.nodes[successor]['duration'])
alap[task] = end - pert.nodes[task]['duration']
predecessors.extend(pert.predecessors(task))
frontiere = predecessors
print(pert)
print(asap)
print(alap)
for task in pert.nodes:
duration = pert.nodes[task]['duration']
print(task, '|', '-'.join(pert.predecessors(task)), '|', asap[task] - duration, asap[task], '|')#, alap[task] - duration, alap[task], '|', alap[task] - asap[task])

@ -1,20 +0,0 @@
A,2,,Établir le modèle de données
B,5,A,Assembler les objets et les dépendances entre eux -> grapĥe
C,4,B,Implémenter la recherche d'une recette de fabrication
D,4,C,Implémenter la fabrication d'objets
E,7,C,Créer l'interface pour combiner des objets
F,5,D-E,Lier les données à l'interface de combinaison
G,2,F,Documenter l'architecture et les algorithmes utilisés
H,6,G,Identifier les problèmes de performance
I,9,H,Expérimenter et optimiser l'application
J,4,E,Créer un menu
K,15,J,Permettre la persistence de l'inventaire
L,20,I-K,Tester sur différentes plateformes
M,7,K,Documenter
N,12,L-M,Supporter différents profils de joueur
O,25,N,Permettre le multi joueur sur le réseau
P,3,N,Réaliser une bêta fermée
Q,20,P,Répertorier les bugs trouvés pendant la bêta
R,10,O-Q,Corriger
S,40,J,Réaliser une campagne publicitaire
T,5,R-S,Publier
1 A 2 Établir le modèle de données
2 B 5 A Assembler les objets et les dépendances entre eux -> grapĥe
3 C 4 B Implémenter la recherche d'une recette de fabrication
4 D 4 C Implémenter la fabrication d'objets
5 E 7 C Créer l'interface pour combiner des objets
6 F 5 D-E Lier les données à l'interface de combinaison
7 G 2 F Documenter l'architecture et les algorithmes utilisés
8 H 6 G Identifier les problèmes de performance
9 I 9 H Expérimenter et optimiser l'application
10 J 4 E Créer un menu
11 K 15 J Permettre la persistence de l'inventaire
12 L 20 I-K Tester sur différentes plateformes
13 M 7 K Documenter
14 N 12 L-M Supporter différents profils de joueur
15 O 25 N Permettre le multi joueur sur le réseau
16 P 3 N Réaliser une bêta fermée
17 Q 20 P Répertorier les bugs trouvés pendant la bêta
18 R 10 O-Q Corriger
19 S 40 J Réaliser une campagne publicitaire
20 T 5 R-S Publier

@ -1,11 +0,0 @@
A,2,,Établir le modèle de données,X-Y
B,5,A,Assembler les objets et les dépendances entre eux -> grapĥe,Y
C,4,B,Implémenter la recherche d'une recette de fabrication,X
D,4,C,Implémenter la fabrication d'objets,X
E,5,C,Créer l'interface pour combiner des objets,Y
F,2,D-E,Lier les données à l'interface de combinaison,Y
G,2,F,Documenter l'architecture et les algorithmes utilisés,X
H,4,G,Identifier les problèmes de performance,X
I,3,H,Expérimenter et optimiser l'application,X
J,4,E,Créer un menu,Y
K,1,I-J,Rendre les livrables,X-Y
1 A 2 Établir le modèle de données X-Y
2 B 5 A Assembler les objets et les dépendances entre eux -> grapĥe Y
3 C 4 B Implémenter la recherche d'une recette de fabrication X
4 D 4 C Implémenter la fabrication d'objets X
5 E 5 C Créer l'interface pour combiner des objets Y
6 F 2 D-E Lier les données à l'interface de combinaison Y
7 G 2 F Documenter l'architecture et les algorithmes utilisés X
8 H 4 G Identifier les problèmes de performance X
9 I 3 H Expérimenter et optimiser l'application X
10 J 4 E Créer un menu Y
11 K 1 I-J Rendre les livrables X-Y

@ -1,16 +0,0 @@
A,3,,Choix du projet
B,6,A,Description du projet
C,2,B,Identification des contraintes
D,4,B,Transcriptions des besoins
E,2,C-D,Identification des tâches
A,1,,Créer le MCD
B,2,A,Implémenter la base de données
C,4,B,Créer une API exposant la base de données via HTTP
D,6,C,Permettre de créer un projet, le supprimer et ajouter une version depuis le web
E,10,C,Télécharger et afficher les informations de l'API en console
F,8,C,Réaliser une maquette pour le design du site
G,5,F,Implémenter la maquette
H,5,E,Intégrer le paquet installé dans le projet de l'utilisateur
I,3,H,Comparer les versions installées avec celles du dépôt distant
1 A,3,,Choix du projet
2 B,6,A,Description du projet
3 C,2,B,Identification des contraintes
4 D,4,B,Transcriptions des besoins
5 E,2,C-D,Identification des tâches
6 A,1,,Créer le MCD
7 B,2,A,Implémenter la base de données
8 C,4,B,Créer une API exposant la base de données via HTTP
9 D,6,C,Permettre de créer un projet, le supprimer et ajouter une version depuis le web
10 E,10,C,Télécharger et afficher les informations de l'API en console
11 F,8,C,Réaliser une maquette pour le design du site
12 G,5,F,Implémenter la maquette
13 H,5,E,Intégrer le paquet installé dans le projet de l'utilisateur
14 I,3,H,Comparer les versions installées avec celles du dépôt distant

@ -1,12 +0,0 @@
A,4,,Définir les caractéristiques voulues avec le client
B,5,A,Rechercher le concept le plus approprié
C,10,B,Établir les plans
D,12,A,Tester sur des modèles réduits et simuler en soufflerie
E,2,H-F,Préparer la ligne de production
F,8,C-D,Réaliser un prototype
G,3,E,Importer les pièces détachées nécessaires à la fabrication
H,4,F,Établissement des documents présentant les caractéristiques détaillées du futur avion
I,1,H,Entrainement des employés
J,12,I,Certification du modèle
K,16,J-G,Production de la commande
L,3,K,Livraison de la commande
1 A 4 Définir les caractéristiques voulues avec le client
2 B 5 A Rechercher le concept le plus approprié
3 C 10 B Établir les plans
4 D 12 A Tester sur des modèles réduits et simuler en soufflerie
5 E 2 H-F Préparer la ligne de production
6 F 8 C-D Réaliser un prototype
7 G 3 E Importer les pièces détachées nécessaires à la fabrication
8 H 4 F Établissement des documents présentant les caractéristiques détaillées du futur avion
9 I 1 H Entrainement des employés
10 J 12 I Certification du modèle
11 K 16 J-G Production de la commande
12 L 3 K Livraison de la commande
Loading…
Cancel
Save