Subversion Repositories wimsdev

Rev

Rev 8560 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 8560 Rev 12676
Line 19... Line 19...
19
slib_S=$slib_s
19
slib_S=$slib_s
20
 
20
 
21
slib_precedent=!values $slib_s for x = 1 to $slib_n
21
slib_precedent=!values $slib_s for x = 1 to $slib_n
22
 
22
 
23
!for slib_j=1 to $slib_n
23
!for slib_j=1 to $slib_n
24
   slib_L=!line $slib_s of $slib_GM
24
  slib_L=!line $slib_s of $slib_GM
25
   !if $slib_j != $slib_s
25
  !if $slib_j != $slib_s
26
     slib_u=!item $slib_j of $slib_L
26
    slib_u=!item $slib_j of $slib_L
27
     !if $slib_u=0
27
    !if $slib_u=0
28
        slib_pi = $slib_pi,\infty
28
      slib_pi = $slib_pi,\infty
29
     !else
29
    !else
30
        slib_pi = $slib_pi,$slib_u
30
      slib_pi = $slib_pi,$slib_u
31
     !endif
31
    !endif
32
   !else
32
  !else
33
     slib_pi = $slib_pi,0
33
    slib_pi = $slib_pi,0
34
   !endif
34
  !endif
35
!next slib_j
35
!next slib_j
36
 slib_cor = ($slib_S), ($slib_pi)
36
slib_cor = ($slib_S), ($slib_pi)
37
 slib_pi = !nonempty items $slib_pi
37
slib_pi = !nonempty items $slib_pi
38
 
38
 
39
!for slib_i = 1 to $slib_n
39
!for slib_i = 1 to $slib_n
40
  !if $slib_i != $slib_s
40
  !if $slib_i != $slib_s
41
# 1. On trouve un sommet satisfaisant
41
  # 1. On trouve un sommet satisfaisant
42
    !distribute items $[($slib_bp+1)*$slib_n],0,0 into slib_x,slib_y,slib_z
42
    !distribute items $[($slib_bp+1)*$slib_n],0,0 into slib_x,slib_y,slib_z
43
    !for slib_j = 1 to $slib_n
43
    !for slib_j = 1 to $slib_n
44
       slib_u = !item $slib_j of $slib_pi
44
      slib_u = !item $slib_j of $slib_pi
45
       !if $slib_u notsametext \infty
45
      !if $slib_u notsametext \infty
46
         !if ($slib_j notitemof $slib_S) and ($slib_u < $slib_x)
46
        !if ($slib_j notitemof $slib_S) and ($slib_u < $slib_x)
47
           slib_x = $slib_u
47
          slib_x = $slib_u
48
           slib_y = $slib_j
48
          slib_y = $slib_j
49
         !endif
49
        !endif
50
       !else
50
      !else
51
         !if ($slib_j notitemof $slib_S) and ($slib_z=0)
51
        !if ($slib_j notitemof $slib_S) and ($slib_z=0)
52
           slib_z = $slib_j
52
          slib_z = $slib_j
53
         !endif
53
        !endif
54
       !endif
54
      !endif
55
    !next slib_j
55
    !next slib_j
56
    !if $slib_y != 0
56
    !if $slib_y != 0
57
        slib_sommet = $slib_y
57
      slib_sommet = $slib_y
58
    !else
58
    !else
59
        slib_sommet = $slib_z
59
      slib_sommet = $slib_z
60
    !endif
60
    !endif
61
 
61
 
62
    slib_S = $slib_S,$slib_sommet
62
    slib_S = $slib_S,$slib_sommet
63
# 2. On modifie le vecteur pi
63
    # 2. On modifie le vecteur pi
64
   !for slib_j = 1 to $slib_n
64
    !for slib_j = 1 to $slib_n
65
    !if $slib_j != $slib_s
65
      !if $slib_j != $slib_s
66
     slib_u = !item $slib_j of $slib_pi
66
        slib_u = !item $slib_j of $slib_pi
67
     slib_v = !item $slib_sommet of $slib_pi
67
        slib_v = !item $slib_sommet of $slib_pi
68
     slib_L = !line $slib_sommet of $slib_GM
68
        slib_L = !line $slib_sommet of $slib_GM
69
     slib_w = !item $slib_j of $slib_L
69
        slib_w = !item $slib_j of $slib_L
70
     slib_y = 0
70
        slib_y = 0
71
     !if $slib_v notsametext \infty
71
        !if $slib_v notsametext \infty
72
        !if $slib_u notsametext \infty
72
          !if $slib_u notsametext \infty
73
          slib_x = $[min($slib_u,$[$slib_v+$slib_w])]
73
            slib_x = $[min($slib_u,$[$slib_v+$slib_w])]
74
          !if ($slib_w != 0) and ($slib_j notitemof $slib_S)
74
            !if ($slib_w != 0) and ($slib_j notitemof $slib_S)
75
            slib_y = 1
75
              slib_y = 1
76
            !if $slib_x = $[$slib_v+$slib_w]
76
              !if $slib_x = $[$slib_v+$slib_w]
-
 
77
                slib_precedent = !replace item number $slib_j by $slib_sommet in $slib_precedent
-
 
78
              !endif
-
 
79
            !endif
-
 
80
          !else
-
 
81
            slib_x = $[$slib_v+$slib_w]
-
 
82
            !if ($slib_w != 0) and ($slib_j notitemof $slib_S)
-
 
83
              slib_y = 1
77
              slib_precedent = !replace item number $slib_j by $slib_sommet in $slib_precedent
84
              slib_precedent = !replace item number $slib_j by $slib_sommet in $slib_precedent
78
            !endif
85
            !endif
79
          !endif
86
          !endif
80
        !else
-
 
81
          slib_x = $[$slib_v+$slib_w]
-
 
82
          !if ($slib_w != 0) and ($slib_j notitemof $slib_S)
-
 
83
            slib_y = 1
87
          !if $slib_y=1
84
            slib_precedent = !replace item number $slib_j by $slib_sommet in $slib_precedent
88
            slib_pi = !replace item number $slib_j by $slib_x in $slib_pi
85
          !endif
89
          !endif
86
        !endif
90
        !endif
87
        !if $slib_y=1
-
 
88
          slib_pi = !replace item number $slib_j by $slib_x in $slib_pi
-
 
89
        !endif
-
 
90
     !endif
-
 
91
     !endif s
91
      !endif s
92
   !next slib_j
92
    !next slib_j
93
   slib_cor = $slib_cor, ($slib_S), ($slib_pi)
93
    slib_cor = $slib_cor, ($slib_S), ($slib_pi)
94
 !endif s
94
  !endif s
95
!next slib_i
95
!next slib_i
96
 
96
 
97
path from s to t
97
path from s to t
98
 slib_liste = $slib_t
98
slib_liste = $slib_t
99
 slib_pit = !item $slib_t of $slib_pi
99
slib_pit = !item $slib_t of $slib_pi
100
!if $slib_pit notsametext \infty
100
!if $slib_pit notsametext \infty
101
  slib_prec = $slib_t
101
  slib_prec = $slib_t
102
  !for slib_k = 1 to $slib_pit
102
  !for slib_k = 1 to $slib_pit
103
    slib_prec = !item $slib_prec of $slib_precedent
103
    slib_prec = !item $slib_prec of $slib_precedent
104
    slib_liste = $slib_prec,$slib_liste
104
    slib_liste = $slib_prec,$slib_liste
105
  !next slib_k
105
  !next slib_k
106
!endif
106
!endif
107
 
107
 
108
slib_out=$slib_liste
108
slib_out=$slib_liste
109
 
-
 
110
 
-