Problème d'ordonnancement : casse tete

miki -  
tafiscobar Messages postés 1281 Statut Contributeur -
Bonjour,

J'essaie de resoudre un problème qui me cause pas mal de soucis..il s'agit d'un problème de planification. Concretement voici le problème :
- j'ai une liste doublement chainée composée d'elements de
la forme STRUCT Element { string nomElem;
int debut;
int duree;
}
Ces elements sont classés par ordre croissant dans la liste (par "debut") (ordonnancement). On me fourni ensuite un ensemble d'elements avec une deadline pour l'ensemble de ces elements et je dois les inserer dans la liste. Noter ici que les nouveaux elements peuvent s'inserer n'importe en respectant le deadline (en debut,milieu,fin de la liste). Etant donné que les elements doivent etre classés par ordre croissant, il faut prevoir le cas ou on soit obligé de trouver un "trou" entre 2 elements ou de decaler des elements existants pour avoir assez de place pour inserer l'element qui arrive. Le hic,c'est que lorsqu'on arrive pas à inserer TOUS les nouveaux elements,il faut stoper l'operation et remettre la liste dans l'etat initial (suppression des nouveaux elements supprimés). Bien sur ,entre temps,il y'a eu certainement des operations de decalage et la suppression pure et simple des nouveaux elements ne peut pas remettre la liste dans l'etat initial......
Quelqu'un aurait il une idée pour gerer cette situation ??

Merci à tous..

4 réponses

gator
 
ben une base de données???
0
mikila
 
c'est du code qui doit tourner simultanement sur plusieurs noeuds,je peux pas me permettre d'utiliser une base de données par noeud. peux tu aussi m'expliker comment cette implementation peut se faire avec une base de données ???
merci
0
gator
 
une base de données ,un serveur web(pages dynamiques).les clients se log et c'est tout .
0
mikila
 
j'ai trouvé une solution : c'est de journaliser les decalages successives des Elements dans un fichier et lorsque la planif ne marche pas,je restaure les Listes initiales à partir du fichier de journalisation.

Mais le problème de cette solution,qui marche parfaitement bien,c'est les accès disques pour l'ecriture et surtout pour la lecture,trop importants pour une application temps réel. Il me faut donc trouver une solution qui marche de la meme facon, mais tout en gardant les journalisations en memoire (j'avoue ne pas savoir comment le faire pour le moment). Si t'a une idée de comment je pourai garder ces infos de decalage en memoire,fais moi signe.
C'est comme trouver une solution pour garder en memoire les lignes qu'on devait ecrire dans un fichier de log.

Bien sur,je suis preneur pour toute autre solution..
Bon week end a toi et à bientot.
0
tafiscobar Messages postés 1281 Statut Contributeur 177
 
salut, si les listes ne sont énormes, pourqoi ne pas recopiées la liste initiale avant le début des opérations et lorsq t'es sur que l'opération s'est bien passée, tu la supprimes. Ou bien j'ai mal compris ?

tafiscobar "lou waye def bopame"
la nullite n'existe pas, l'ignorance oui, ah je suppose!!!
0
gator
 
tu réinventes la base de données relationnelle.
sur ta base tu as un champ valide Y/N
date xxxxx
0