Advertisement
Guest User

Untitled

a guest
Feb 21st, 2020
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.00 KB | None | 0 0
  1. const N=2
  2. range T = 0..N
  3. range ID = 1..N
  4.  
  5. DEPASSE_PAS_AB1 = C1[1],
  6. C1[i:ID] = ( [i].entreeAB -> C1[i%N+1] ).
  7. DEPASSE_PAS_AB2 = C2[1],
  8. C2[i:ID] = ( [i].sortieAB -> C2[i%N+1] ).
  9.  
  10. DEPASSE_PAS_BC1 = C1[1],
  11. C1[i:ID] = ( [i].entreeBC -> C1[i%N+1] ).
  12. DEPASSE_PAS_BC2 = C2[1],
  13. C2[i:ID] = ( [i].sortieBC -> C2[i%N+1] ).
  14.  
  15. DEPASSE_PAS_ABC1 = C1[1],
  16. C1[i:ID] = ( [i].entreeABC -> C1[i%N+1] ).
  17. DEPASSE_PAS_ABC2 = C2[1],
  18. C2[i:ID] = ( [i].sortieABC -> C2[i%N+1] ).
  19.  
  20. ||CONVOI_A = ([i:ID]:TrainA2 || DEPASSE_PAS_AB1 || DEPASSE_PAS_AB2 || DEPASSE_PAS_ABC1 || DEPASSE_PAS_ABC2 ).
  21. ||CONVOI_B = ([i:ID]:TrainB2 || DEPASSE_PAS_AB1 || DEPASSE_PAS_AB2 ||DEPASSE_PAS_BC1 || DEPASSE_PAS_BC2 || DEPASSE_PAS_ABC1 || DEPASSE_PAS_ABC2 ).
  22. ||CONVOI_C = ([i:ID]:TrainC2 ||DEPASSE_PAS_BC1 || DEPASSE_PAS_BC2 || DEPASSE_PAS_ABC1 || DEPASSE_PAS_ABC2 ).
  23.  
  24. ||TRAINS = (trainA:CONVOI_A || trainB: CONVOI_B || trainC: CONVOI_C).
  25.  
  26. CHEMIN_AB = CHEMIN_AB[0][0],
  27. CHEMIN_AB[na:T][nb:T]= (
  28. when (nb ==0) trainA[i:ID].entreeAB -> CHEMIN_AB[na+1][nb]|
  29. trainA[j:ID].sortieAB -> CHEMIN_AB[na-1][nb]|
  30. when (na ==0) trainB[i:ID].entreeAB -> CHEMIN_AB[na][nb+1]|
  31. trainB[j:ID].sortieAB -> CHEMIN_AB[na][nb-1]).
  32.  
  33. CHEMIN_BC = CHEMIN_BC[0][0],
  34. CHEMIN_BC[nb:T][nc:T]= (
  35. when (nc ==0) trainB[i:ID].entreeBC -> CHEMIN_BC[nb+1][nc]|
  36. trainB[j:ID].sortieBC -> CHEMIN_BC[nb-1][nc]|
  37. when (nb ==0) trainC[i:ID].entreeBC -> CHEMIN_BC[nb][nc+1]|
  38. trainC[j:ID].sortieBC -> CHEMIN_BC[nb][nc-1]).
  39.  
  40. CHEMIN_ABC = CHEMIN_ABC[0][0][0],
  41. CHEMIN_ABC[na:T][nb:T][nc:T]= (
  42. when (nc ==0 && na ==0) trainB[i:ID].entreeABC -> CHEMIN_ABC[na][nb+1][nc]|
  43. trainB[j:ID].sortieABC -> CHEMIN_ABC[na][nb-1][nc]|
  44. when (nc ==0 && nb ==0) trainA[i:ID].entreeABC -> CHEMIN_ABC[na+1][nb][nc]|
  45. trainA[j:ID].sortieABC -> CHEMIN_ABC[na-1][nb][nc]|
  46. when (na ==0 && nb ==0) trainC[i:ID].entreeABC -> CHEMIN_ABC[na][nb][nc+1]|
  47. trainC[j:ID].sortieABC -> CHEMIN_ABC[na][nb][nc-1]).
  48.  
  49. ||Reseau3 = ( CHEMIN_AB || CHEMIN_BC || CHEMIN_ABC || TRAINS).
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement