Bonjour, je ne comprends pas pourquoi le programme suivant maple simulatant une file d'attente à un guichet avec loi des arrivées de poisson et loi des services exponentielle bugue à chaque foiis il semblerait que la boucle while ne se termine jamais mais je ne comprends pas pourquoi
simulation := proc (duree, mpoiss, mexp) local t_prochaine_arrivee, t, t_fin_service, n, file;
t := gpoiss(mpoiss); file := new(); t_fin_service := t+gexp(mexp); n := 1; t_prochaine_arrivee := t+gpoiss(mpoiss); while t < duree do if t_prochaine_arrivee < t_fin_service then t := t_prochaine_arrivee; n := n+1; file := ajouter(gexp(mexp), file); t_prochaine_arrivee := t+gpoiss(mpoiss); if nops(file) = 1 then t_fin_service := t+tete(file) if end else t := t_fin_service; file := retirer(file); if 0 < nops(file) then t_fin_service = t+tete(file) else t_fin_service = 3500 end if end if end do; n end proc ;
NB : new() génere une liste vide; ajouter et retirer ajoutent un élément en queue de file ou retirent l'élément en tete de file et gpoiss et gexp génerent des nombres aléatoires suivant une loi de poisson et une loi exponentielle ... Mais pourquoi mon programme ne reboucle jamais merci d'avance de vos réponses
Marsh Posté le 20-05-2007 à 21:59:06
Bonjour, je ne comprends pas pourquoi le programme suivant maple simulatant une file d'attente à un guichet avec loi des arrivées de poisson et loi des services exponentielle bugue à chaque foiis il semblerait que la boucle while ne se termine jamais mais je ne comprends pas pourquoi
simulation := proc (duree, mpoiss, mexp) local t_prochaine_arrivee, t, t_fin_service, n, file;
t := gpoiss(mpoiss);
file := new(); t_fin_service := t+gexp(mexp); n := 1; t_prochaine_arrivee := t+gpoiss(mpoiss);
while t < duree do
if t_prochaine_arrivee < t_fin_service
then t := t_prochaine_arrivee; n := n+1; file := ajouter(gexp(mexp), file); t_prochaine_arrivee := t+gpoiss(mpoiss);
if nops(file) = 1
then t_fin_service := t+tete(file) if end
else t := t_fin_service; file := retirer(file);
if 0 < nops(file)
then t_fin_service = t+tete(file)
else t_fin_service = 3500 end
if end if end do; n end proc ;
NB :
new() génere une liste vide; ajouter et retirer ajoutent un élément en queue de file ou retirent l'élément en tete de file et gpoiss et gexp génerent des nombres aléatoires suivant une loi de poisson et une loi exponentielle ... Mais pourquoi mon programme ne reboucle jamais
merci d'avance de vos réponses