Ресинхронизация схемы: инкрементный подход: различия между версиями

Перейти к навигации Перейти к поиску
Строка 60: Строка 60:
     <math> \neg P2 \to update \; t</math>
     <math> \neg P2 \to update \; t</math>
     <math> \neg P3 \to update \; r</math>
     <math> \neg P3 \to update \; r</math>
     do <math>\{ P0 \and P1 \and P2 \and P3 \} \;</math>.
     od <math>\{ P0 \and P1 \and P2 \and P3 \} \;</math>.
 
 


Первую команду цикла можно переписать в виде  <math>\exist (u, v) \in E: r[u] - r[v] = w[u, v] \and t[v] - t[u] < d[v] \to t[v] := t[u] + d[v] \;</math>.
Первую команду цикла можно переписать в виде  <math>\exist (u, v) \in E: r[u] - r[v] = w[u, v] \and t[v] - t[u] < d[v] \to t[v] := t[u] + d[v] \;</math>.
Строка 91: Строка 91:


После объединения всех нововведений алгоритм приобретает следующую форму.
После объединения всех нововведений алгоритм приобретает следующую форму.
r, t,<j> := 0,d,oo; dofP1g
 
9(U; V) 2 E: r[u] r[v] = w[u; v]
  <math>r, t, \phi := 0, d, \infty \;</math>
A t[v] - t[u] < d[v] ! t[v] := t[u] + d[v] -P3A3v 2 V: t[v] > ф
  do {P1}
!r[v];t[v]:=r[v] + 1;d[v] P0 Л P2 Л ф > max(t) ! ф := max(t) 9(U; V) 2 E: r[u] r[v] > w[u; v]
  <math>\exist (u, v) \in E: r[u] - r[v] = w[u, v]</math>
-> r[v] := r[u] w[u; v] odfP0 Л P1 Л P2 Л P3g :
  <math>\and \; t[v] - t[u] < d[v] \to t[v] := t[u] + d[v]</math>
  <math>\neg P3 \and \exist v \in V: t[v] \ge \phi</math>
  <math>\to r[v], t[v] := r[v] + 1, d[v]</math>
  <math>P0 \and P2 \and \phi > max(t) \to \phi := max(t)</math>
  <math>\exist (u, v) \in E: r[u] - r[v] > w[u, v]</math>
  <math>\to r[v] := r[u] - w[u, v]</math>
  <math>od \{ P0 \and P1 \and P2 \and P3 \} \;</math>.




4551

правка

Навигация