t s - - PowerPoint PPT Presentation
t s - - PowerPoint PPT Presentation
t s ss r r
❉❛t❛ tr❛♥s❢❡r ♣r♦t♦❝♦❧✿ DtpDist
Lossy/Lrd Channel DtpDist a2 a1 tx, rx tx, rx a2 a1 tx, rx tx, rx Dtp Dtp
■♠♣❧❡♠❡♥ts ❋✐❢♦❈❤❛♥♥❡❧✭❛✶✱❛✷✮ ✉s✐♥❣ ❧♦ss②✴❧r❞ ❝❤❛♥♥❡❧ ❙❧✐❞✐♥❣ ✇✐♥❞♦✇ ♣r♦t♦❝♦❧ ✭❙✇♣✮ ✜❢♦ tr❛♥s❢❡r ❞❡✜♥❡ ♣r♦❣r❛♠s ❛t ✏❛❧❣♦r✐t❤♠✲❧❡✈❡❧✑✿ ❛t♦♠✐❝ r✉❧❡s ♣r♦✈❡ ❝♦rr❡❝t♥❡ss ✇✐t❤ ♠♦❞✉❧♦✲◆ s❡q✉❡♥❝❡ ♥✉♠❜❡rs ❝♦rr❡❝t♥❡ss✲♣r❡s❡r✈✐♥❣ r❡✜♥❡♠❡♥t t♦ ❛✇❛✐t ♣r♦❣r❛♠ ❖❜t❛✐♥ ✈✐❛ ❝♦rr❡❝t♥❡ss✲♣r❡s❡r✈✐♥❣ ♠❡r❣❡ ♦❢ t✇♦
❉❛t❛ tr❛♥s❢❡r ♣r♦t♦❝♦❧✿ DtpDist
Lossy/Lrd Channel DtpDist a2 a1 tx, rx tx, rx a2 a1 tx, rx tx, rx Dtp Dtp
■♠♣❧❡♠❡♥ts ❋✐❢♦❈❤❛♥♥❡❧✭❛✶✱❛✷✮ ✉s✐♥❣ ❧♦ss②✴❧r❞ ❝❤❛♥♥❡❧ ❙❧✐❞✐♥❣ ✇✐♥❞♦✇ ♣r♦t♦❝♦❧ ✭❙✇♣✮ a1 → a2 ✜❢♦ tr❛♥s❢❡r ❞❡✜♥❡ ♣r♦❣r❛♠s ❛t ✏❛❧❣♦r✐t❤♠✲❧❡✈❡❧✑✿ ❛t♦♠✐❝ r✉❧❡s ♣r♦✈❡ ❝♦rr❡❝t♥❡ss ✇✐t❤ ♠♦❞✉❧♦✲◆ s❡q✉❡♥❝❡ ♥✉♠❜❡rs ❝♦rr❡❝t♥❡ss✲♣r❡s❡r✈✐♥❣ r❡✜♥❡♠❡♥t t♦ ❛✇❛✐t ♣r♦❣r❛♠ ❖❜t❛✐♥ DtpDist ✈✐❛ ❝♦rr❡❝t♥❡ss✲♣r❡s❡r✈✐♥❣ ♠❡r❣❡ ♦❢ t✇♦ SwpDist
❖✉t❧✐♥❡
s✇♣
❙❧✐❞✐♥❣ ❲✐♥❞♦✇ Pr♦t♦❝♦❧ ❆♥❛❧②s✐s ♦❢ ❙❧✐❞✐♥❣ ❲✐♥❞♦✇ Pr♦t♦❝♦❧ ❆✇❛✐t✲str✉❝t✉r❡❞ ❙♦✉r❝❡ ❛♥❞ ❙✐♥❦ Pr♦❣r❛♠s ❉❛t❛ tr❛♥s❢❡r Pr♦t♦❝♦❧ ❛♥❞ Pr♦♦❢
- r❛❝❡❢✉❧✲❝❧♦s✐♥❣ ❉❛t❛ tr❛♥s❢❡r Pr♦t♦❝♦❧
❆❜♦rt❛❜❧❡ ❉❛t❛ tr❛♥s❢❡r Pr♦t♦❝♦❧
❙❧✐❞✐♥❣ ✇✐♥❞♦✇ ♣r♦t♦❝♦❧✿ SwpDist
s✇♣
data blocks messages a2 a1 tx, rx tx, rx a2 a1 tx rx Sink Source SwpDist Lossy/Lrd Channel SwpDist(a1, a2, ...) [xa1, xa2] ← startSystem ( Lossy / LrdChannel (a1, a2) ); ya1 ← startSystem ( Source(a1, a2, xa1, ...)); ya2 ← startSystem ( Sink(a2, a1, xa2, ...)); return [ya1, ya2]
❙♦❧✉t✐♦♥ ✉s✐♥❣ s❡q✉❡♥❝❡ ♥✉♠❜❡rs
s✇♣
d✵✱ d✶✱ · · · ✿ ❞❛t❛ ❜❧♦❝❦s s❡♥t ✐♥t♦ s♦✉r❝❡ ❜② ✐ts ✉s❡r ❙♦✉r❝❡ t① r❡♣❡❛t❡❞❧② ✉♥t✐❧ ❛❝❦❡❞ ✿ s❡q ★ ❙✐♥❦ r❡s♣♦♥❞ ✇✐t❤ ❛✇❛✐t❡❞ s❡q ★ ❝✉♠✉❧❛t✐✈❡ ❛❝❦ ❤❛s ✿ r① ✼ ✴ t① ✺❀ r① ✺ ✴ t① ✾ ♣❛ss❡s ❞❛t❛ ❜❧♦❝❦s t♦ ✐ts ✉s❡r ✐♥ ♦r❞❡r ❋♦r ❣♦♦❞ t❤r♦✉❣❤♣✉t ✶ ♦✉tst❛♥❞✐♥❣ ❛t s♦✉r❝❡✱ ❜✉✛❡r ♦✉t✲♦❢✲s❡q✉❡♥❝❡ ❛t s✐♥❦ ❆❜♦✈❡ r❡q✉✐r❡s ✉♥❜♦✉♥❞❡❞ s❡q ★s ✭✉s♥✮ ♥♦t ❣♦♦❞ ❢♦r ❤✇ ✐♠♣❧❡♠❡♥t❛t✐♦♥ ■♥st❡❛❞ ✉s❡ ❝②❝❧✐❝ s❡q ★s ✭❝s♥✮
❙♦❧✉t✐♦♥ ✉s✐♥❣ s❡q✉❡♥❝❡ ♥✉♠❜❡rs
s✇♣
d✵✱ d✶✱ · · · ✿ ❞❛t❛ ❜❧♦❝❦s s❡♥t ✐♥t♦ s♦✉r❝❡ ❜② ✐ts ✉s❡r ❙♦✉r❝❡ t① [dk, k] r❡♣❡❛t❡❞❧② ✉♥t✐❧ ❛❝❦❡❞ / / k✿ s❡q ★ ❙✐♥❦ r❡s♣♦♥❞ ✇✐t❤ ❛✇❛✐t❡❞ s❡q ★ ❝✉♠✉❧❛t✐✈❡ ❛❝❦ ❤❛s ✿ r① ✼ ✴ t① ✺❀ r① ✺ ✴ t① ✾ ♣❛ss❡s ❞❛t❛ ❜❧♦❝❦s t♦ ✐ts ✉s❡r ✐♥ ♦r❞❡r ❋♦r ❣♦♦❞ t❤r♦✉❣❤♣✉t ✶ ♦✉tst❛♥❞✐♥❣ ❛t s♦✉r❝❡✱ ❜✉✛❡r ♦✉t✲♦❢✲s❡q✉❡♥❝❡ ❛t s✐♥❦ ❆❜♦✈❡ r❡q✉✐r❡s ✉♥❜♦✉♥❞❡❞ s❡q ★s ✭✉s♥✮ ♥♦t ❣♦♦❞ ❢♦r ❤✇ ✐♠♣❧❡♠❡♥t❛t✐♦♥ ■♥st❡❛❞ ✉s❡ ❝②❝❧✐❝ s❡q ★s ✭❝s♥✮
❙♦❧✉t✐♦♥ ✉s✐♥❣ s❡q✉❡♥❝❡ ♥✉♠❜❡rs
s✇♣
d✵✱ d✶✱ · · · ✿ ❞❛t❛ ❜❧♦❝❦s s❡♥t ✐♥t♦ s♦✉r❝❡ ❜② ✐ts ✉s❡r ❙♦✉r❝❡ t① [dk, k] r❡♣❡❛t❡❞❧② ✉♥t✐❧ ❛❝❦❡❞ / / k✿ s❡q ★ ❙✐♥❦ r❡s♣♦♥❞ ✇✐t❤ ❛✇❛✐t❡❞ s❡q ★ / / ❝✉♠✉❧❛t✐✈❡ ❛❝❦ ❤❛s 0 ... 4 ⊔ 6, ... 8✿ r① ✼ ✴ t① ✺❀ r① ✺ ✴ t① ✾ ♣❛ss❡s ❞❛t❛ ❜❧♦❝❦s t♦ ✐ts ✉s❡r ✐♥ ♦r❞❡r ❋♦r ❣♦♦❞ t❤r♦✉❣❤♣✉t ✶ ♦✉tst❛♥❞✐♥❣ ❛t s♦✉r❝❡✱ ❜✉✛❡r ♦✉t✲♦❢✲s❡q✉❡♥❝❡ ❛t s✐♥❦ ❆❜♦✈❡ r❡q✉✐r❡s ✉♥❜♦✉♥❞❡❞ s❡q ★s ✭✉s♥✮ ♥♦t ❣♦♦❞ ❢♦r ❤✇ ✐♠♣❧❡♠❡♥t❛t✐♦♥ ■♥st❡❛❞ ✉s❡ ❝②❝❧✐❝ s❡q ★s ✭❝s♥✮
❙♦❧✉t✐♦♥ ✉s✐♥❣ s❡q✉❡♥❝❡ ♥✉♠❜❡rs
s✇♣
d✵✱ d✶✱ · · · ✿ ❞❛t❛ ❜❧♦❝❦s s❡♥t ✐♥t♦ s♦✉r❝❡ ❜② ✐ts ✉s❡r ❙♦✉r❝❡ t① [dk, k] r❡♣❡❛t❡❞❧② ✉♥t✐❧ ❛❝❦❡❞ / / k✿ s❡q ★ ❙✐♥❦ r❡s♣♦♥❞ ✇✐t❤ ❛✇❛✐t❡❞ s❡q ★ / / ❝✉♠✉❧❛t✐✈❡ ❛❝❦ ❤❛s 0 ... 4 ⊔ 6, ... 8✿ r① ✼ ✴ t① ✺❀ r① ✺ ✴ t① ✾ ♣❛ss❡s ❞❛t❛ ❜❧♦❝❦s t♦ ✐ts ✉s❡r ✐♥ ♦r❞❡r ❋♦r ❣♦♦❞ t❤r♦✉❣❤♣✉t ✶ ♦✉tst❛♥❞✐♥❣ ❛t s♦✉r❝❡✱ ❜✉✛❡r ♦✉t✲♦❢✲s❡q✉❡♥❝❡ ❛t s✐♥❦ ❆❜♦✈❡ r❡q✉✐r❡s ✉♥❜♦✉♥❞❡❞ s❡q ★s ✭✉s♥✮ ♥♦t ❣♦♦❞ ❢♦r ❤✇ ✐♠♣❧❡♠❡♥t❛t✐♦♥ ■♥st❡❛❞ ✉s❡ ❝②❝❧✐❝ s❡q ★s ✭❝s♥✮
❙♦❧✉t✐♦♥ ✉s✐♥❣ s❡q✉❡♥❝❡ ♥✉♠❜❡rs
s✇♣
d✵✱ d✶✱ · · · ✿ ❞❛t❛ ❜❧♦❝❦s s❡♥t ✐♥t♦ s♦✉r❝❡ ❜② ✐ts ✉s❡r ❙♦✉r❝❡ t① [dk, k] r❡♣❡❛t❡❞❧② ✉♥t✐❧ ❛❝❦❡❞ / / k✿ s❡q ★ ❙✐♥❦ r❡s♣♦♥❞ ✇✐t❤ ❛✇❛✐t❡❞ s❡q ★ / / ❝✉♠✉❧❛t✐✈❡ ❛❝❦ ❤❛s 0 ... 4 ⊔ 6, ... 8✿ r① ✼ ✴ t① ✺❀ r① ✺ ✴ t① ✾ ♣❛ss❡s ❞❛t❛ ❜❧♦❝❦s t♦ ✐ts ✉s❡r ✐♥ ♦r❞❡r ❋♦r ❣♦♦❞ t❤r♦✉❣❤♣✉t > ✶ ♦✉tst❛♥❞✐♥❣ ❛t s♦✉r❝❡✱ ❜✉✛❡r ♦✉t✲♦❢✲s❡q✉❡♥❝❡ ❛t s✐♥❦ ❆❜♦✈❡ r❡q✉✐r❡s ✉♥❜♦✉♥❞❡❞ s❡q ★s ✭✉s♥✮ ♥♦t ❣♦♦❞ ❢♦r ❤✇ ✐♠♣❧❡♠❡♥t❛t✐♦♥ ■♥st❡❛❞ ✉s❡ ❝②❝❧✐❝ s❡q ★s ✭❝s♥✮
❙♦❧✉t✐♦♥ ✉s✐♥❣ s❡q✉❡♥❝❡ ♥✉♠❜❡rs
s✇♣
d✵✱ d✶✱ · · · ✿ ❞❛t❛ ❜❧♦❝❦s s❡♥t ✐♥t♦ s♦✉r❝❡ ❜② ✐ts ✉s❡r ❙♦✉r❝❡ t① [dk, k] r❡♣❡❛t❡❞❧② ✉♥t✐❧ ❛❝❦❡❞ / / k✿ s❡q ★ ❙✐♥❦ r❡s♣♦♥❞ ✇✐t❤ ❛✇❛✐t❡❞ s❡q ★ / / ❝✉♠✉❧❛t✐✈❡ ❛❝❦ ❤❛s 0 ... 4 ⊔ 6, ... 8✿ r① ✼ ✴ t① ✺❀ r① ✺ ✴ t① ✾ ♣❛ss❡s ❞❛t❛ ❜❧♦❝❦s t♦ ✐ts ✉s❡r ✐♥ ♦r❞❡r ❋♦r ❣♦♦❞ t❤r♦✉❣❤♣✉t > ✶ ♦✉tst❛♥❞✐♥❣ ❛t s♦✉r❝❡✱ ❜✉✛❡r ♦✉t✲♦❢✲s❡q✉❡♥❝❡ ❛t s✐♥❦ ❆❜♦✈❡ r❡q✉✐r❡s ✉♥❜♦✉♥❞❡❞ s❡q ★s ✭✉s♥✮ ♥♦t ❣♦♦❞ ❢♦r ❤✇ ✐♠♣❧❡♠❡♥t❛t✐♦♥ ■♥st❡❛❞ ✉s❡ ❝②❝❧✐❝ s❡q ★s ✭❝s♥✮
❯s✐♥❣ ♠♦❞✉❧♦✲N ❝②❝❧✐❝ s❡q✉❡♥❝❡ ♥✉♠❜❡rs
s✇♣
❯s❡ ♠♦❞✲N ❝s♥ ✐♥st❡❛❞ ♦❢ ✉s♥ ❙❡♥❞ ❝s♥ ♠♦❞✭k✱N✮ ✐♥st❡❛❞ ♦❢ ✉s♥ k ❘❡❝❡✐✈❡r ♦❢ csn ❤❛s t♦ ✐♥❢❡r t❤❡ ❝♦rr❡s♣♦♥❞✐♥❣ usn ♠❛✐♥t❛✐♥s ✇✐♥❞♦✇ ♦❢ ✏♣♦ss✐❜❧❡✑ ✉s♥ s❛② ♠❛♣s r❝✈❞ t♦ ✇✐t❤ s❛♠❡ ❝②❝❧✐❝ ✈❛❧✉❡ ♠♦❞ ❀ ✐❢ ✐❣♥♦r❡ r❝✈❞ ❙❡q ★s ✐♥ tr❛♥s✐t ♠✉st r❡♠❛✐♥ ❝❧♦s❡ t♦ ✇✐♥❞♦✇
❯s✐♥❣ ♠♦❞✉❧♦✲N ❝②❝❧✐❝ s❡q✉❡♥❝❡ ♥✉♠❜❡rs
s✇♣
❯s❡ ♠♦❞✲N ❝s♥ ✐♥st❡❛❞ ♦❢ ✉s♥ ❙❡♥❞ ❝s♥ ♠♦❞✭k✱N✮ ✐♥st❡❛❞ ♦❢ ✉s♥ k ❘❡❝❡✐✈❡r ♦❢ csn ❤❛s t♦ ✐♥❢❡r t❤❡ ❝♦rr❡s♣♦♥❞✐♥❣ usn ♠❛✐♥t❛✐♥s ✇✐♥❞♦✇ ♦❢ ✏♣♦ss✐❜❧❡✑ ✉s♥ s❛② L · · · U ♠❛♣s r❝✈❞ csn t♦ usn ✇✐t❤ s❛♠❡ ❝②❝❧✐❝ ✈❛❧✉❡ usn ← L + ♠♦❞(csn − L, N)❀ ✐❢ usn > U ✐❣♥♦r❡ r❝✈❞ csn ❙❡q ★s ✐♥ tr❛♥s✐t ♠✉st r❡♠❛✐♥ ❝❧♦s❡ t♦ ✇✐♥❞♦✇
❯s✐♥❣ ♠♦❞✉❧♦✲N ❝②❝❧✐❝ s❡q✉❡♥❝❡ ♥✉♠❜❡rs
s✇♣
❯s❡ ♠♦❞✲N ❝s♥ ✐♥st❡❛❞ ♦❢ ✉s♥ ❙❡♥❞ ❝s♥ ♠♦❞✭k✱N✮ ✐♥st❡❛❞ ♦❢ ✉s♥ k ❘❡❝❡✐✈❡r ♦❢ csn ❤❛s t♦ ✐♥❢❡r t❤❡ ❝♦rr❡s♣♦♥❞✐♥❣ usn ♠❛✐♥t❛✐♥s ✇✐♥❞♦✇ ♦❢ ✏♣♦ss✐❜❧❡✑ ✉s♥ s❛② L · · · U ♠❛♣s r❝✈❞ csn t♦ usn ✇✐t❤ s❛♠❡ ❝②❝❧✐❝ ✈❛❧✉❡ usn ← L + ♠♦❞(csn − L, N)❀ ✐❢ usn > U ✐❣♥♦r❡ r❝✈❞ csn ❙❡q ★s ✐♥ tr❛♥s✐t ♠✉st r❡♠❛✐♥ ❝❧♦s❡ t♦ ✇✐♥❞♦✇
❙❧✐❞✐♥❣ ✇✐♥❞♦✇ ♣r♦t♦❝♦❧ ✇✐t❤ ♠♦❞✲◆ ❝s♥
s✇♣
❙♦✉r❝❡ ng✿ # ❜❧❦s ❢r♦♠ ✉s❡r ns✿ # ❜❧❦s s❡♥t ❛t ❧❡❛st ♦♥❝❡ na✿ # ❜❧❦s ❛❝❦❡❞ ♠❛♣ sbuff✿ ❢♦r ❜❧❦s na · · · ng−1 s❡♥❞ ✇✐♥❞♦✇✿ na · · · ns✰SW−1 / / SW < N ♦✉tst❛♥❞✐♥❣ ✇✐♥❞♦✇✿ na · · · ns / / ♦❦ ✐❢ ❧♦✇ ❡♥❞ ✐s na+1 ❙✐♥❦ ✿ ❜❧❦s t♦ ✉s❡r ✿ ❝♦♥t✐❣✉♦✉s ❜❧❦s r❝✈❞ ♠❛♣ ✿ ❢♦r ❜❧❦s r❡❝❡✐✈❡ ✇✐♥❞♦✇✿ ❖✈❡r t✐♠❡✱ ✇✐♥❞♦✇s s❧✐❞❡ t♦ ✐♥❝r❡❛s✐♥❣ s❡q s
❙❧✐❞✐♥❣ ✇✐♥❞♦✇ ♣r♦t♦❝♦❧ ✇✐t❤ ♠♦❞✲◆ ❝s♥
s✇♣
❙♦✉r❝❡ ng✿ # ❜❧❦s ❢r♦♠ ✉s❡r ns✿ # ❜❧❦s s❡♥t ❛t ❧❡❛st ♦♥❝❡ na✿ # ❜❧❦s ❛❝❦❡❞ ♠❛♣ sbuff✿ ❢♦r ❜❧❦s na · · · ng−1 s❡♥❞ ✇✐♥❞♦✇✿ na · · · ns✰SW−1 / / SW < N ♦✉tst❛♥❞✐♥❣ ✇✐♥❞♦✇✿ na · · · ns / / ♦❦ ✐❢ ❧♦✇ ❡♥❞ ✐s na+1 ❙✐♥❦ nd✿ # ❜❧❦s t♦ ✉s❡r nr✿ # ❝♦♥t✐❣✉♦✉s ❜❧❦s r❝✈❞ ♠❛♣ rbuff✿ ❢♦r ❜❧❦s nd · · · nd + RW−1 / / RW < N r❡❝❡✐✈❡ ✇✐♥❞♦✇✿ nr · · · nd + RW−1 ❖✈❡r t✐♠❡✱ ✇✐♥❞♦✇s s❧✐❞❡ t♦ ✐♥❝r❡❛s✐♥❣ s❡q s
❙❧✐❞✐♥❣ ✇✐♥❞♦✇ ♣r♦t♦❝♦❧ ✇✐t❤ ♠♦❞✲◆ ❝s♥
s✇♣
❙♦✉r❝❡ ng✿ # ❜❧❦s ❢r♦♠ ✉s❡r ns✿ # ❜❧❦s s❡♥t ❛t ❧❡❛st ♦♥❝❡ na✿ # ❜❧❦s ❛❝❦❡❞ ♠❛♣ sbuff✿ ❢♦r ❜❧❦s na · · · ng−1 s❡♥❞ ✇✐♥❞♦✇✿ na · · · ns✰SW−1 / / SW < N ♦✉tst❛♥❞✐♥❣ ✇✐♥❞♦✇✿ na · · · ns / / ♦❦ ✐❢ ❧♦✇ ❡♥❞ ✐s na+1 ❙✐♥❦ nd✿ # ❜❧❦s t♦ ✉s❡r nr✿ # ❝♦♥t✐❣✉♦✉s ❜❧❦s r❝✈❞ ♠❛♣ rbuff✿ ❢♦r ❜❧❦s nd · · · nd + RW−1 / / RW < N r❡❝❡✐✈❡ ✇✐♥❞♦✇✿ nr · · · nd + RW−1 ❖✈❡r t✐♠❡✱ ✇✐♥❞♦✇s s❧✐❞❡ t♦ ✐♥❝r❡❛s✐♥❣ s❡q #s
❙❧✐❞✐♥❣ ✇✐♥❞♦✇s
s✇♣
- 1
ns ng na+SW-1 1 nd nr delivered
- utstanding
not yet sent acked received possibly sbuff window receive na nd+RW-1 rbuff Sink Source (not received) send window received na nr vars : # blks : # sent : # acked from user vars : # blks : blk next to user awaited ng ns na sbuff rbuff nr nd
❙✇♣ ♠♦❞✲◆✿ ❛❧❣♦r✐t❤♠✲❧❡✈❡❧
s✇♣
❙♦✉r❝❡ na,ns,ng ← 0❀ sbuff ← [] ❢r♦♠ ✉s❡r✿ ❀ ✿ s❡♥❞ ❀ ✿ s❡♥❞ r❝✈ ❬ ❪✿ ❙✐♥❦ t♦ ✉s❡r❀ r❝✈ ✇❤✐❧❡ s❡♥❞ ❬ ❪ ✿ ♠♦❞✭ ✱◆✮
❙✇♣ ♠♦❞✲◆✿ ❛❧❣♦r✐t❤♠✲❧❡✈❡❧
s✇♣
❙♦✉r❝❡ na,ns,ng ← 0❀ sbuff ← [] db ❢r♦♠ ✉s❡r✿ sbuffng ← db❀ ng++ ✿ s❡♥❞ ❀ ✿ s❡♥❞ r❝✈ ❬ ❪✿ ❙✐♥❦ t♦ ✉s❡r❀ r❝✈ ✇❤✐❧❡ s❡♥❞ ❬ ❪ ✿ ♠♦❞✭ ✱◆✮
❙✇♣ ♠♦❞✲◆✿ ❛❧❣♦r✐t❤♠✲❧❡✈❡❧
s✇♣
❙♦✉r❝❡ na,ns,ng ← 0❀ sbuff ← [] db ❢r♦♠ ✉s❡r✿ sbuffng ← db❀ ng++ ns < min (na+SW, ng)✿ s❡♥❞ [sbuffns, ns]❀ ns++ ✿ s❡♥❞ r❝✈ ❬ ❪✿ ❙✐♥❦ t♦ ✉s❡r❀ r❝✈ ✇❤✐❧❡ s❡♥❞ ❬ ❪ ✿ ♠♦❞✭ ✱◆✮
❙✇♣ ♠♦❞✲◆✿ ❛❧❣♦r✐t❤♠✲❧❡✈❡❧
s✇♣
❙♦✉r❝❡ na,ns,ng ← 0❀ sbuff ← [] db ❢r♦♠ ✉s❡r✿ sbuffng ← db❀ ng++ ns < min (na+SW, ng)✿ s❡♥❞ [sbuffns, ns]❀ ns++ k in na..ns−1✿ s❡♥❞ [sbuffk, k] r❝✈ ❬ ❪✿ ❙✐♥❦ t♦ ✉s❡r❀ r❝✈ ✇❤✐❧❡ s❡♥❞ ❬ ❪ ✿ ♠♦❞✭ ✱◆✮
❙✇♣ ♠♦❞✲◆✿ ❛❧❣♦r✐t❤♠✲❧❡✈❡❧
s✇♣
❙♦✉r❝❡ na,ns,ng ← 0❀ sbuff ← [] db ❢r♦♠ ✉s❡r✿ sbuffng ← db❀ ng++ ns < min (na+SW, ng)✿ s❡♥❞ [sbuffns, ns]❀ ns++ k in na..ns−1✿ s❡♥❞ [sbuffk, k] r❝✈ ❬cn❪✿ j ← na + cn−na if (na < j ≤ ns) sbuff.remove(na..j−1) na ← j ❙✐♥❦ t♦ ✉s❡r❀ r❝✈ ✇❤✐❧❡ s❡♥❞ ❬ ❪ k ✿ ♠♦❞✭k✱◆✮
❙✇♣ ♠♦❞✲◆✿ ❛❧❣♦r✐t❤♠✲❧❡✈❡❧
s✇♣
❙♦✉r❝❡ na,ns,ng ← 0❀ sbuff ← [] db ❢r♦♠ ✉s❡r✿ sbuffng ← db❀ ng++ ns < min (na+SW, ng)✿ s❡♥❞ [sbuffns, ns]❀ ns++ k in na..ns−1✿ s❡♥❞ [sbuffk, k] r❝✈ ❬cn❪✿ j ← na + cn−na if (na < j ≤ ns) sbuff.remove(na..j−1) na ← j ❙✐♥❦ nd,nr ← 0; rbuff ← [] nd < nr rbuffnd t♦ ✉s❡r❀ nd++ r❝✈ [db,cn] j ← nr + cn−nr if (nr ≤ j < nd+RW) rbuffj ← db ✇❤✐❧❡ (nr in rbuff.keys) nr ← nr+1 s❡♥❞ ❬nr❪ k ✿ ♠♦❞✭k✱◆✮
❖✉t❧✐♥❡
s✇♣ ❛♥❛❧②s✐s
❙❧✐❞✐♥❣ ❲✐♥❞♦✇ Pr♦t♦❝♦❧ ❆♥❛❧②s✐s ♦❢ ❙❧✐❞✐♥❣ ❲✐♥❞♦✇ Pr♦t♦❝♦❧ ❆✇❛✐t✲str✉❝t✉r❡❞ ❙♦✉r❝❡ ❛♥❞ ❙✐♥❦ Pr♦❣r❛♠s ❉❛t❛ tr❛♥s❢❡r Pr♦t♦❝♦❧ ❛♥❞ Pr♦♦❢
- r❛❝❡❢✉❧✲❝❧♦s✐♥❣ ❉❛t❛ tr❛♥s❢❡r Pr♦t♦❝♦❧
❆❜♦rt❛❜❧❡ ❉❛t❛ tr❛♥s❢❡r Pr♦t♦❝♦❧
❉❡s✐r❡❞ ♣r♦♣❡rt✐❡s ♦❢ SwpDist
s✇♣ ❛♥❛❧②s✐s
dbh✿ ❛✉①✐❧✐❛r② ✈❛r ✐♥❞✐❝❛t✐♥❣ s❡q ♦❢ ❜❧❦s s❡♥t ❜② ✉s❡r ❉❡s✐r❡❞ ♣r♦♣❡rt✐❡s
✶
■♥✈
✷
❧❡❛❞s✲t♦ ❛ss✉♠✐♥❣ ✇❢❛✐r s❡♥❞ ✱ r❡s❡♥❞ ✱ ❞❡❧✐✈❡r t♦ ✉s❡r✱ s♦✉r❝❡✴s✐♥❦ r❝✈ ♠s❣✱ ❝❤❛♥♥❡❧ ♣r♦❣r❡ss ■♥t❡r♠❡❞✐❛t❡ ❞❡s✐r❡❞ ■♥✈
✶✕ ✸ ✵
✐♥
✶
✐♥
✵ ✶ ✶✳♣r❡❞ ✷
❛♥❞
❉❡s✐r❡❞ ♣r♦♣❡rt✐❡s ♦❢ SwpDist
s✇♣ ❛♥❛❧②s✐s
dbh✿ ❛✉①✐❧✐❛r② ✈❛r ✐♥❞✐❝❛t✐♥❣ s❡q ♦❢ ❜❧❦s s❡♥t ❜② ✉s❡r ❉❡s✐r❡❞ ♣r♦♣❡rt✐❡s X✶ : ■♥✈ (nd < nr ⇒ rbuffnd = dbhnd)
✷
❧❡❛❞s✲t♦ ❛ss✉♠✐♥❣ ✇❢❛✐r s❡♥❞ ✱ r❡s❡♥❞ ✱ ❞❡❧✐✈❡r t♦ ✉s❡r✱ s♦✉r❝❡✴s✐♥❦ r❝✈ ♠s❣✱ ❝❤❛♥♥❡❧ ♣r♦❣r❡ss ■♥t❡r♠❡❞✐❛t❡ ❞❡s✐r❡❞ ■♥✈
✶✕ ✸ ✵
✐♥
✶
✐♥
✵ ✶ ✶✳♣r❡❞ ✷
❛♥❞
❉❡s✐r❡❞ ♣r♦♣❡rt✐❡s ♦❢ SwpDist
s✇♣ ❛♥❛❧②s✐s
dbh✿ ❛✉①✐❧✐❛r② ✈❛r ✐♥❞✐❝❛t✐♥❣ s❡q ♦❢ ❜❧❦s s❡♥t ❜② ✉s❡r ❉❡s✐r❡❞ ♣r♦♣❡rt✐❡s X✶ : ■♥✈ (nd < nr ⇒ rbuffnd = dbhnd) X✷ : (nd = k < ng ❧❡❛❞s✲t♦ nd > k) ❛ss✉♠✐♥❣ ✇❢❛✐r s❡♥❞ sbuffns✱ r❡s❡♥❞ sbuffna✱ ❞❡❧✐✈❡r rbuffnd t♦ ✉s❡r✱ s♦✉r❝❡✴s✐♥❦ r❝✈ ♠s❣✱ ❝❤❛♥♥❡❧ ♣r♦❣r❡ss ■♥t❡r♠❡❞✐❛t❡ ❞❡s✐r❡❞ ■♥✈
✶✕ ✸ ✵
✐♥
✶
✐♥
✵ ✶ ✶✳♣r❡❞ ✷
❛♥❞
❉❡s✐r❡❞ ♣r♦♣❡rt✐❡s ♦❢ SwpDist
s✇♣ ❛♥❛❧②s✐s
dbh✿ ❛✉①✐❧✐❛r② ✈❛r ✐♥❞✐❝❛t✐♥❣ s❡q ♦❢ ❜❧❦s s❡♥t ❜② ✉s❡r ❉❡s✐r❡❞ ♣r♦♣❡rt✐❡s X✶ : ■♥✈ (nd < nr ⇒ rbuffnd = dbhnd) X✷ : (nd = k < ng ❧❡❛❞s✲t♦ nd > k) ❛ss✉♠✐♥❣ ✇❢❛✐r s❡♥❞ sbuffns✱ r❡s❡♥❞ sbuffna✱ ❞❡❧✐✈❡r rbuffnd t♦ ✉s❡r✱ s♦✉r❝❡✴s✐♥❦ r❝✈ ♠s❣✱ ❝❤❛♥♥❡❧ ♣r♦❣r❡ss ■♥t❡r♠❡❞✐❛t❡ ❞❡s✐r❡❞ ■♥✈ A✶✕A✸
✵
✐♥
✶
✐♥
✵ ✶ ✶✳♣r❡❞ ✷
❛♥❞
❉❡s✐r❡❞ ♣r♦♣❡rt✐❡s ♦❢ SwpDist
s✇♣ ❛♥❛❧②s✐s
dbh✿ ❛✉①✐❧✐❛r② ✈❛r ✐♥❞✐❝❛t✐♥❣ s❡q ♦❢ ❜❧❦s s❡♥t ❜② ✉s❡r ❉❡s✐r❡❞ ♣r♦♣❡rt✐❡s X✶ : ■♥✈ (nd < nr ⇒ rbuffnd = dbhnd) X✷ : (nd = k < ng ❧❡❛❞s✲t♦ nd > k) ❛ss✉♠✐♥❣ ✇❢❛✐r s❡♥❞ sbuffns✱ r❡s❡♥❞ sbuffna✱ ❞❡❧✐✈❡r rbuffnd t♦ ✉s❡r✱ s♦✉r❝❡✴s✐♥❦ r❝✈ ♠s❣✱ ❝❤❛♥♥❡❧ ♣r♦❣r❡ss ■♥t❡r♠❡❞✐❛t❡ ❞❡s✐r❡❞ ■♥✈ A✶✕A✸ A✵ : nd · · · nr−1 ✐♥ rbuff.keys
✶
✐♥
✵ ✶ ✶✳♣r❡❞ ✷
❛♥❞
❉❡s✐r❡❞ ♣r♦♣❡rt✐❡s ♦❢ SwpDist
s✇♣ ❛♥❛❧②s✐s
dbh✿ ❛✉①✐❧✐❛r② ✈❛r ✐♥❞✐❝❛t✐♥❣ s❡q ♦❢ ❜❧❦s s❡♥t ❜② ✉s❡r ❉❡s✐r❡❞ ♣r♦♣❡rt✐❡s X✶ : ■♥✈ (nd < nr ⇒ rbuffnd = dbhnd) X✷ : (nd = k < ng ❧❡❛❞s✲t♦ nd > k) ❛ss✉♠✐♥❣ ✇❢❛✐r s❡♥❞ sbuffns✱ r❡s❡♥❞ sbuffna✱ ❞❡❧✐✈❡r rbuffnd t♦ ✉s❡r✱ s♦✉r❝❡✴s✐♥❦ r❝✈ ♠s❣✱ ❝❤❛♥♥❡❧ ♣r♦❣r❡ss ■♥t❡r♠❡❞✐❛t❡ ❞❡s✐r❡❞ ■♥✈ A✶✕A✸ A✵ : nd · · · nr−1 ✐♥ rbuff.keys A✶ : (k ✐♥ rbuff.keys) ⇒ rbuffk = dbhk / / A✵,✶ ⇒ X✶✳♣r❡❞
✷
❛♥❞
❉❡s✐r❡❞ ♣r♦♣❡rt✐❡s ♦❢ SwpDist
s✇♣ ❛♥❛❧②s✐s
dbh✿ ❛✉①✐❧✐❛r② ✈❛r ✐♥❞✐❝❛t✐♥❣ s❡q ♦❢ ❜❧❦s s❡♥t ❜② ✉s❡r ❉❡s✐r❡❞ ♣r♦♣❡rt✐❡s X✶ : ■♥✈ (nd < nr ⇒ rbuffnd = dbhnd) X✷ : (nd = k < ng ❧❡❛❞s✲t♦ nd > k) ❛ss✉♠✐♥❣ ✇❢❛✐r s❡♥❞ sbuffns✱ r❡s❡♥❞ sbuffna✱ ❞❡❧✐✈❡r rbuffnd t♦ ✉s❡r✱ s♦✉r❝❡✴s✐♥❦ r❝✈ ♠s❣✱ ❝❤❛♥♥❡❧ ♣r♦❣r❡ss ■♥t❡r♠❡❞✐❛t❡ ❞❡s✐r❡❞ ■♥✈ A✶✕A✸ A✵ : nd · · · nr−1 ✐♥ rbuff.keys A✶ : (k ✐♥ rbuff.keys) ⇒ rbuffk = dbhk / / A✵,✶ ⇒ X✶✳♣r❡❞ A✷ : na ≤ nr ≤ ns ≤ na+SW ❛♥❞ ns ≤ ng
❈♦rr❡❝t ✐♥t❡r♣r❡t❛t✐♦♥ ❝♦♥❞✐t✐♦♥s
s✇♣ ❛♥❛❧②s✐s
❆❞❞ ❛✉①✐❧✐❛r② usn ✜❡❧❞ t♦ ♠s❣s / / ♥♦t r❡❛❞ s♦✉r❝❡ s❡♥❞s [sbuffj, j, j] s✐♥❦ s❡♥❞s [nr, nr] ❙✐♥❦ ♠❛♣s r❝✈❞ ✇rt r❝✈ ✇✐♥❞♦✇ ✐♥ ✇✐♥❞♦✇✿ ♠❛♣♣❡❞ ❝♦rr❡❝t❧② ✇✐♥❞♦✇✿ ✱ ✱ ✱ ✇✐♥❞♦✇✿ ✱ ✱ ✱ ❞❡s✐r❡❞ ■♥✈
✸ ✸
❞❛t❛ r❝✈❛❜❧❡ ✐♥ ❙♦✉r❝❡ ♠❛♣s r❝✈❞ ✇rt ♦✉tst❛♥❞✐♥❣ ✇✐♥❞♦✇ ❞❡s✐r❡❞ ■♥✈
✸ ✹
❛❝❦ r❝✈❛❜❧❡ ✐♥
❈♦rr❡❝t ✐♥t❡r♣r❡t❛t✐♦♥ ❝♦♥❞✐t✐♦♥s
s✇♣ ❛♥❛❧②s✐s
❆❞❞ ❛✉①✐❧✐❛r② usn ✜❡❧❞ t♦ ♠s❣s / / ♥♦t r❡❛❞ s♦✉r❝❡ s❡♥❞s [sbuffj, j, j] s✐♥❦ s❡♥❞s [nr, nr] ❙✐♥❦ ♠❛♣s r❝✈❞ [j, j] ✇rt r❝✈ ✇✐♥❞♦✇ nr · · · nr+RW−1 ✐♥ ✇✐♥❞♦✇✿ ♠❛♣♣❡❞ ❝♦rr❡❝t❧② ✇✐♥❞♦✇✿ ✱ ✱ ✱ ✇✐♥❞♦✇✿ ✱ ✱ ✱ ❞❡s✐r❡❞ ■♥✈
✸ ✸
❞❛t❛ r❝✈❛❜❧❡ ✐♥ ❙♦✉r❝❡ ♠❛♣s r❝✈❞ ✇rt ♦✉tst❛♥❞✐♥❣ ✇✐♥❞♦✇ ❞❡s✐r❡❞ ■♥✈
✸ ✹
❛❝❦ r❝✈❛❜❧❡ ✐♥
❈♦rr❡❝t ✐♥t❡r♣r❡t❛t✐♦♥ ❝♦♥❞✐t✐♦♥s
s✇♣ ❛♥❛❧②s✐s
❆❞❞ ❛✉①✐❧✐❛r② usn ✜❡❧❞ t♦ ♠s❣s / / ♥♦t r❡❛❞ s♦✉r❝❡ s❡♥❞s [sbuffj, j, j] s✐♥❦ s❡♥❞s [nr, nr] ❙✐♥❦ ♠❛♣s r❝✈❞ [j, j] ✇rt r❝✈ ✇✐♥❞♦✇ nr · · · nr+RW−1 j ✐♥ ✇✐♥❞♦✇✿ ♠❛♣♣❡❞ ❝♦rr❡❝t❧② ✇✐♥❞♦✇✿ ✱ ✱ ✱ ✇✐♥❞♦✇✿ ✱ ✱ ✱ ❞❡s✐r❡❞ ■♥✈
✸ ✸
❞❛t❛ r❝✈❛❜❧❡ ✐♥ ❙♦✉r❝❡ ♠❛♣s r❝✈❞ ✇rt ♦✉tst❛♥❞✐♥❣ ✇✐♥❞♦✇ ❞❡s✐r❡❞ ■♥✈
✸ ✹
❛❝❦ r❝✈❛❜❧❡ ✐♥
❈♦rr❡❝t ✐♥t❡r♣r❡t❛t✐♦♥ ❝♦♥❞✐t✐♦♥s
s✇♣ ❛♥❛❧②s✐s
❆❞❞ ❛✉①✐❧✐❛r② usn ✜❡❧❞ t♦ ♠s❣s / / ♥♦t r❡❛❞ s♦✉r❝❡ s❡♥❞s [sbuffj, j, j] s✐♥❦ s❡♥❞s [nr, nr] ❙✐♥❦ ♠❛♣s r❝✈❞ [j, j] ✇rt r❝✈ ✇✐♥❞♦✇ nr · · · nr+RW−1 j ✐♥ ✇✐♥❞♦✇✿ ♠❛♣♣❡❞ ❝♦rr❡❝t❧② j < ✇✐♥❞♦✇✿ ✱ ✱ ✱ ✇✐♥❞♦✇✿ ✱ ✱ ✱ ❞❡s✐r❡❞ ■♥✈
✸ ✸
❞❛t❛ r❝✈❛❜❧❡ ✐♥ ❙♦✉r❝❡ ♠❛♣s r❝✈❞ ✇rt ♦✉tst❛♥❞✐♥❣ ✇✐♥❞♦✇ ❞❡s✐r❡❞ ■♥✈
✸ ✹
❛❝❦ r❝✈❛❜❧❡ ✐♥
❈♦rr❡❝t ✐♥t❡r♣r❡t❛t✐♦♥ ❝♦♥❞✐t✐♦♥s
s✇♣ ❛♥❛❧②s✐s
❆❞❞ ❛✉①✐❧✐❛r② usn ✜❡❧❞ t♦ ♠s❣s / / ♥♦t r❡❛❞ s♦✉r❝❡ s❡♥❞s [sbuffj, j, j] s✐♥❦ s❡♥❞s [nr, nr] ❙✐♥❦ ♠❛♣s r❝✈❞ [j, j] ✇rt r❝✈ ✇✐♥❞♦✇ nr · · · nr+RW−1 j ✐♥ ✇✐♥❞♦✇✿ ♠❛♣♣❡❞ ❝♦rr❡❝t❧② j < ✇✐♥❞♦✇✿ nr−1 ✱ ✱ ✱ ✇✐♥❞♦✇✿ ✱ ✱ ✱ ❞❡s✐r❡❞ ■♥✈
✸ ✸
❞❛t❛ r❝✈❛❜❧❡ ✐♥ ❙♦✉r❝❡ ♠❛♣s r❝✈❞ ✇rt ♦✉tst❛♥❞✐♥❣ ✇✐♥❞♦✇ ❞❡s✐r❡❞ ■♥✈
✸ ✹
❛❝❦ r❝✈❛❜❧❡ ✐♥
❈♦rr❡❝t ✐♥t❡r♣r❡t❛t✐♦♥ ❝♦♥❞✐t✐♦♥s
s✇♣ ❛♥❛❧②s✐s
❆❞❞ ❛✉①✐❧✐❛r② usn ✜❡❧❞ t♦ ♠s❣s / / ♥♦t r❡❛❞ s♦✉r❝❡ s❡♥❞s [sbuffj, j, j] s✐♥❦ s❡♥❞s [nr, nr] ❙✐♥❦ ♠❛♣s r❝✈❞ [j, j] ✇rt r❝✈ ✇✐♥❞♦✇ nr · · · nr+RW−1 j ✐♥ ✇✐♥❞♦✇✿ ♠❛♣♣❡❞ ❝♦rr❡❝t❧② j < ✇✐♥❞♦✇✿ nr−1 ✱ nr−2 ✱ ✱ ✇✐♥❞♦✇✿ ✱ ✱ ✱ ❞❡s✐r❡❞ ■♥✈
✸ ✸
❞❛t❛ r❝✈❛❜❧❡ ✐♥ ❙♦✉r❝❡ ♠❛♣s r❝✈❞ ✇rt ♦✉tst❛♥❞✐♥❣ ✇✐♥❞♦✇ ❞❡s✐r❡❞ ■♥✈
✸ ✹
❛❝❦ r❝✈❛❜❧❡ ✐♥
❈♦rr❡❝t ✐♥t❡r♣r❡t❛t✐♦♥ ❝♦♥❞✐t✐♦♥s
s✇♣ ❛♥❛❧②s✐s
❆❞❞ ❛✉①✐❧✐❛r② usn ✜❡❧❞ t♦ ♠s❣s / / ♥♦t r❡❛❞ s♦✉r❝❡ s❡♥❞s [sbuffj, j, j] s✐♥❦ s❡♥❞s [nr, nr] ❙✐♥❦ ♠❛♣s r❝✈❞ [j, j] ✇rt r❝✈ ✇✐♥❞♦✇ nr · · · nr+RW−1 j ✐♥ ✇✐♥❞♦✇✿ ♠❛♣♣❡❞ ❝♦rr❡❝t❧② j < ✇✐♥❞♦✇✿ nr−1 ✱ nr−2 ✱ · · · ✱ ✇✐♥❞♦✇✿ ✱ ✱ ✱ ❞❡s✐r❡❞ ■♥✈
✸ ✸
❞❛t❛ r❝✈❛❜❧❡ ✐♥ ❙♦✉r❝❡ ♠❛♣s r❝✈❞ ✇rt ♦✉tst❛♥❞✐♥❣ ✇✐♥❞♦✇ ❞❡s✐r❡❞ ■♥✈
✸ ✹
❛❝❦ r❝✈❛❜❧❡ ✐♥
❈♦rr❡❝t ✐♥t❡r♣r❡t❛t✐♦♥ ❝♦♥❞✐t✐♦♥s
s✇♣ ❛♥❛❧②s✐s
❆❞❞ ❛✉①✐❧✐❛r② usn ✜❡❧❞ t♦ ♠s❣s / / ♥♦t r❡❛❞ s♦✉r❝❡ s❡♥❞s [sbuffj, j, j] s✐♥❦ s❡♥❞s [nr, nr] ❙✐♥❦ ♠❛♣s r❝✈❞ [j, j] ✇rt r❝✈ ✇✐♥❞♦✇ nr · · · nr+RW−1 j ✐♥ ✇✐♥❞♦✇✿ ♠❛♣♣❡❞ ❝♦rr❡❝t❧② j < ✇✐♥❞♦✇✿ nr−1 ✱ nr−2 ✱ · · · ✱ nr−N+RW−1 × ✇✐♥❞♦✇✿ ✱ ✱ ✱ ❞❡s✐r❡❞ ■♥✈
✸ ✸
❞❛t❛ r❝✈❛❜❧❡ ✐♥ ❙♦✉r❝❡ ♠❛♣s r❝✈❞ ✇rt ♦✉tst❛♥❞✐♥❣ ✇✐♥❞♦✇ ❞❡s✐r❡❞ ■♥✈
✸ ✹
❛❝❦ r❝✈❛❜❧❡ ✐♥
❈♦rr❡❝t ✐♥t❡r♣r❡t❛t✐♦♥ ❝♦♥❞✐t✐♦♥s
s✇♣ ❛♥❛❧②s✐s
❆❞❞ ❛✉①✐❧✐❛r② usn ✜❡❧❞ t♦ ♠s❣s / / ♥♦t r❡❛❞ s♦✉r❝❡ s❡♥❞s [sbuffj, j, j] s✐♥❦ s❡♥❞s [nr, nr] ❙✐♥❦ ♠❛♣s r❝✈❞ [j, j] ✇rt r❝✈ ✇✐♥❞♦✇ nr · · · nr+RW−1 j ✐♥ ✇✐♥❞♦✇✿ ♠❛♣♣❡❞ ❝♦rr❡❝t❧② j < ✇✐♥❞♦✇✿ nr−1 ✱ nr−2 ✱ · · · ✱ nr−N+RW−1 × j > ✇✐♥❞♦✇✿ ✱ ✱ ✱ ❞❡s✐r❡❞ ■♥✈
✸ ✸
❞❛t❛ r❝✈❛❜❧❡ ✐♥ ❙♦✉r❝❡ ♠❛♣s r❝✈❞ ✇rt ♦✉tst❛♥❞✐♥❣ ✇✐♥❞♦✇ ❞❡s✐r❡❞ ■♥✈
✸ ✹
❛❝❦ r❝✈❛❜❧❡ ✐♥
❈♦rr❡❝t ✐♥t❡r♣r❡t❛t✐♦♥ ❝♦♥❞✐t✐♦♥s
s✇♣ ❛♥❛❧②s✐s
❆❞❞ ❛✉①✐❧✐❛r② usn ✜❡❧❞ t♦ ♠s❣s / / ♥♦t r❡❛❞ s♦✉r❝❡ s❡♥❞s [sbuffj, j, j] s✐♥❦ s❡♥❞s [nr, nr] ❙✐♥❦ ♠❛♣s r❝✈❞ [j, j] ✇rt r❝✈ ✇✐♥❞♦✇ nr · · · nr+RW−1 j ✐♥ ✇✐♥❞♦✇✿ ♠❛♣♣❡❞ ❝♦rr❡❝t❧② j < ✇✐♥❞♦✇✿ nr−1 ✱ nr−2 ✱ · · · ✱ nr−N+RW−1 × j > ✇✐♥❞♦✇✿ nr+RW ✱ ✱ ✱ ❞❡s✐r❡❞ ■♥✈
✸ ✸
❞❛t❛ r❝✈❛❜❧❡ ✐♥ ❙♦✉r❝❡ ♠❛♣s r❝✈❞ ✇rt ♦✉tst❛♥❞✐♥❣ ✇✐♥❞♦✇ ❞❡s✐r❡❞ ■♥✈
✸ ✹
❛❝❦ r❝✈❛❜❧❡ ✐♥
❈♦rr❡❝t ✐♥t❡r♣r❡t❛t✐♦♥ ❝♦♥❞✐t✐♦♥s
s✇♣ ❛♥❛❧②s✐s
❆❞❞ ❛✉①✐❧✐❛r② usn ✜❡❧❞ t♦ ♠s❣s / / ♥♦t r❡❛❞ s♦✉r❝❡ s❡♥❞s [sbuffj, j, j] s✐♥❦ s❡♥❞s [nr, nr] ❙✐♥❦ ♠❛♣s r❝✈❞ [j, j] ✇rt r❝✈ ✇✐♥❞♦✇ nr · · · nr+RW−1 j ✐♥ ✇✐♥❞♦✇✿ ♠❛♣♣❡❞ ❝♦rr❡❝t❧② j < ✇✐♥❞♦✇✿ nr−1 ✱ nr−2 ✱ · · · ✱ nr−N+RW−1 × j > ✇✐♥❞♦✇✿ nr+RW ✱ nr+RW+1 ✱ ✱ ❞❡s✐r❡❞ ■♥✈
✸ ✸
❞❛t❛ r❝✈❛❜❧❡ ✐♥ ❙♦✉r❝❡ ♠❛♣s r❝✈❞ ✇rt ♦✉tst❛♥❞✐♥❣ ✇✐♥❞♦✇ ❞❡s✐r❡❞ ■♥✈
✸ ✹
❛❝❦ r❝✈❛❜❧❡ ✐♥
❈♦rr❡❝t ✐♥t❡r♣r❡t❛t✐♦♥ ❝♦♥❞✐t✐♦♥s
s✇♣ ❛♥❛❧②s✐s
❆❞❞ ❛✉①✐❧✐❛r② usn ✜❡❧❞ t♦ ♠s❣s / / ♥♦t r❡❛❞ s♦✉r❝❡ s❡♥❞s [sbuffj, j, j] s✐♥❦ s❡♥❞s [nr, nr] ❙✐♥❦ ♠❛♣s r❝✈❞ [j, j] ✇rt r❝✈ ✇✐♥❞♦✇ nr · · · nr+RW−1 j ✐♥ ✇✐♥❞♦✇✿ ♠❛♣♣❡❞ ❝♦rr❡❝t❧② j < ✇✐♥❞♦✇✿ nr−1 ✱ nr−2 ✱ · · · ✱ nr−N+RW−1 × j > ✇✐♥❞♦✇✿ nr+RW ✱ nr+RW+1 ✱ · · · ✱ ❞❡s✐r❡❞ ■♥✈
✸ ✸
❞❛t❛ r❝✈❛❜❧❡ ✐♥ ❙♦✉r❝❡ ♠❛♣s r❝✈❞ ✇rt ♦✉tst❛♥❞✐♥❣ ✇✐♥❞♦✇ ❞❡s✐r❡❞ ■♥✈
✸ ✹
❛❝❦ r❝✈❛❜❧❡ ✐♥
❈♦rr❡❝t ✐♥t❡r♣r❡t❛t✐♦♥ ❝♦♥❞✐t✐♦♥s
s✇♣ ❛♥❛❧②s✐s
❆❞❞ ❛✉①✐❧✐❛r② usn ✜❡❧❞ t♦ ♠s❣s / / ♥♦t r❡❛❞ s♦✉r❝❡ s❡♥❞s [sbuffj, j, j] s✐♥❦ s❡♥❞s [nr, nr] ❙✐♥❦ ♠❛♣s r❝✈❞ [j, j] ✇rt r❝✈ ✇✐♥❞♦✇ nr · · · nr+RW−1 j ✐♥ ✇✐♥❞♦✇✿ ♠❛♣♣❡❞ ❝♦rr❡❝t❧② j < ✇✐♥❞♦✇✿ nr−1 ✱ nr−2 ✱ · · · ✱ nr−N+RW−1 × j > ✇✐♥❞♦✇✿ nr+RW ✱ nr+RW+1 ✱ · · · ✱ nr+N × ❞❡s✐r❡❞ ■♥✈
✸ ✸
❞❛t❛ r❝✈❛❜❧❡ ✐♥ ❙♦✉r❝❡ ♠❛♣s r❝✈❞ ✇rt ♦✉tst❛♥❞✐♥❣ ✇✐♥❞♦✇ ❞❡s✐r❡❞ ■♥✈
✸ ✹
❛❝❦ r❝✈❛❜❧❡ ✐♥
❈♦rr❡❝t ✐♥t❡r♣r❡t❛t✐♦♥ ❝♦♥❞✐t✐♦♥s
s✇♣ ❛♥❛❧②s✐s
❆❞❞ ❛✉①✐❧✐❛r② usn ✜❡❧❞ t♦ ♠s❣s / / ♥♦t r❡❛❞ s♦✉r❝❡ s❡♥❞s [sbuffj, j, j] s✐♥❦ s❡♥❞s [nr, nr] ❙✐♥❦ ♠❛♣s r❝✈❞ [j, j] ✇rt r❝✈ ✇✐♥❞♦✇ nr · · · nr+RW−1 j ✐♥ ✇✐♥❞♦✇✿ ♠❛♣♣❡❞ ❝♦rr❡❝t❧② j < ✇✐♥❞♦✇✿ nr−1 ✱ nr−2 ✱ · · · ✱ nr−N+RW−1 × j > ✇✐♥❞♦✇✿ nr+RW ✱ nr+RW+1 ✱ · · · ✱ nr+N × ❞❡s✐r❡❞ ■♥✈ A✸ A✸ : ❞❛t❛ j r❝✈❛❜❧❡ ⇒ j ✐♥ nr−N+RW · · · nr+N−1 ❙♦✉r❝❡ ♠❛♣s r❝✈❞ ✇rt ♦✉tst❛♥❞✐♥❣ ✇✐♥❞♦✇ ❞❡s✐r❡❞ ■♥✈
✸ ✹
❛❝❦ r❝✈❛❜❧❡ ✐♥
❈♦rr❡❝t ✐♥t❡r♣r❡t❛t✐♦♥ ❝♦♥❞✐t✐♦♥s
s✇♣ ❛♥❛❧②s✐s
❆❞❞ ❛✉①✐❧✐❛r② usn ✜❡❧❞ t♦ ♠s❣s / / ♥♦t r❡❛❞ s♦✉r❝❡ s❡♥❞s [sbuffj, j, j] s✐♥❦ s❡♥❞s [nr, nr] ❙✐♥❦ ♠❛♣s r❝✈❞ [j, j] ✇rt r❝✈ ✇✐♥❞♦✇ nr · · · nr+RW−1 j ✐♥ ✇✐♥❞♦✇✿ ♠❛♣♣❡❞ ❝♦rr❡❝t❧② j < ✇✐♥❞♦✇✿ nr−1 ✱ nr−2 ✱ · · · ✱ nr−N+RW−1 × j > ✇✐♥❞♦✇✿ nr+RW ✱ nr+RW+1 ✱ · · · ✱ nr+N × ❞❡s✐r❡❞ ■♥✈ A✸ A✸ : ❞❛t❛ j r❝✈❛❜❧❡ ⇒ j ✐♥ nr−N+RW · · · nr+N−1 ❙♦✉r❝❡ ♠❛♣s r❝✈❞ [j, j] ✇rt ♦✉tst❛♥❞✐♥❣ ✇✐♥❞♦✇ na · · · ns ❞❡s✐r❡❞ ■♥✈
✸ ✹
❛❝❦ r❝✈❛❜❧❡ ✐♥
❈♦rr❡❝t ✐♥t❡r♣r❡t❛t✐♦♥ ❝♦♥❞✐t✐♦♥s
s✇♣ ❛♥❛❧②s✐s
❆❞❞ ❛✉①✐❧✐❛r② usn ✜❡❧❞ t♦ ♠s❣s / / ♥♦t r❡❛❞ s♦✉r❝❡ s❡♥❞s [sbuffj, j, j] s✐♥❦ s❡♥❞s [nr, nr] ❙✐♥❦ ♠❛♣s r❝✈❞ [j, j] ✇rt r❝✈ ✇✐♥❞♦✇ nr · · · nr+RW−1 j ✐♥ ✇✐♥❞♦✇✿ ♠❛♣♣❡❞ ❝♦rr❡❝t❧② j < ✇✐♥❞♦✇✿ nr−1 ✱ nr−2 ✱ · · · ✱ nr−N+RW−1 × j > ✇✐♥❞♦✇✿ nr+RW ✱ nr+RW+1 ✱ · · · ✱ nr+N × ❞❡s✐r❡❞ ■♥✈ A✸ A✸ : ❞❛t❛ j r❝✈❛❜❧❡ ⇒ j ✐♥ nr−N+RW · · · nr+N−1 ❙♦✉r❝❡ ♠❛♣s r❝✈❞ [j, j] ✇rt ♦✉tst❛♥❞✐♥❣ ✇✐♥❞♦✇ na · · · ns ❞❡s✐r❡❞ ■♥✈ A✸ A✹ : ❛❝❦ j r❝✈❛❜❧❡ ⇒ j ✐♥ ns−N+1 · · · na+N
❘❡❝❛♣
s✇♣ ❛♥❛❧②s✐s
- ♦❛❧
A✵ : nd · · · nr−1 ✐♥ rbuff.keys A✶ : (k ✐♥ rbuff.keys) ⇒ rbuffk = dbhk A✷ : na ≤ nr ≤ ns ≤ na+SW ❈♦rr❡❝t ✐♥t❡r♣r❡t❛t✐♦♥ A✸ : ❞❛t❛ j r❝✈❛❜❧❡ ⇒ j ✐♥ nr−N+RW · · · nr+N−1 A✹ : ❛❝❦ j r❝✈❛❜❧❡ ⇒ j ✐♥ ns−N+1 · · · na+N ❋♦r ❡✈❡r② st❡♣ ✿
✵ ✕ ✹ ✵ ✶ ✷
❤♦❧❞s ❙✉✣❝❡s t♦ ❡st❛❜❧✐s❤
✷ ✸ ✹ ✸
❢♦r ✿ s❡♥❞ ❞❛t❛❀ r❝✈ ❞❛t❛ ❛✛❡❝t✐♥❣
✷ ✸ ✹ ✹
❢♦r ✿ s❡♥❞ ❛❝❦❀ r❝✈ ❛❝❦ ❛✛❡❝t✐♥❣
❘❡❝❛♣
s✇♣ ❛♥❛❧②s✐s
- ♦❛❧
A✵ : nd · · · nr−1 ✐♥ rbuff.keys A✶ : (k ✐♥ rbuff.keys) ⇒ rbuffk = dbhk A✷ : na ≤ nr ≤ ns ≤ na+SW ❈♦rr❡❝t ✐♥t❡r♣r❡t❛t✐♦♥ A✸ : ❞❛t❛ j r❝✈❛❜❧❡ ⇒ j ✐♥ nr−N+RW · · · nr+N−1 A✹ : ❛❝❦ j r❝✈❛❜❧❡ ⇒ j ✐♥ ns−N+1 · · · na+N ❋♦r ❡✈❡r② st❡♣ e✿ {A✵ ✕ A✹} e {A✵, A✶, A✷} ❤♦❧❞s ❙✉✣❝❡s t♦ ❡st❛❜❧✐s❤
✷ ✸ ✹ ✸
❢♦r ✿ s❡♥❞ ❞❛t❛❀ r❝✈ ❞❛t❛ ❛✛❡❝t✐♥❣
✷ ✸ ✹ ✹
❢♦r ✿ s❡♥❞ ❛❝❦❀ r❝✈ ❛❝❦ ❛✛❡❝t✐♥❣
❘❡❝❛♣
s✇♣ ❛♥❛❧②s✐s
- ♦❛❧
A✵ : nd · · · nr−1 ✐♥ rbuff.keys A✶ : (k ✐♥ rbuff.keys) ⇒ rbuffk = dbhk A✷ : na ≤ nr ≤ ns ≤ na+SW ❈♦rr❡❝t ✐♥t❡r♣r❡t❛t✐♦♥ A✸ : ❞❛t❛ j r❝✈❛❜❧❡ ⇒ j ✐♥ nr−N+RW · · · nr+N−1 A✹ : ❛❝❦ j r❝✈❛❜❧❡ ⇒ j ✐♥ ns−N+1 · · · na+N ❋♦r ❡✈❡r② st❡♣ e✿ {A✵ ✕ A✹} e {A✵, A✶, A✷} ❤♦❧❞s ❙✉✣❝❡s t♦ ❡st❛❜❧✐s❤ {A✷,✸,✹} e {A✸} ❢♦r e✿ s❡♥❞ ❞❛t❛❀ r❝✈ ❞❛t❛ ❛✛❡❝t✐♥❣ nr
✷ ✸ ✹ ✹
❢♦r ✿ s❡♥❞ ❛❝❦❀ r❝✈ ❛❝❦ ❛✛❡❝t✐♥❣
❘❡❝❛♣
s✇♣ ❛♥❛❧②s✐s
- ♦❛❧
A✵ : nd · · · nr−1 ✐♥ rbuff.keys A✶ : (k ✐♥ rbuff.keys) ⇒ rbuffk = dbhk A✷ : na ≤ nr ≤ ns ≤ na+SW ❈♦rr❡❝t ✐♥t❡r♣r❡t❛t✐♦♥ A✸ : ❞❛t❛ j r❝✈❛❜❧❡ ⇒ j ✐♥ nr−N+RW · · · nr+N−1 A✹ : ❛❝❦ j r❝✈❛❜❧❡ ⇒ j ✐♥ ns−N+1 · · · na+N ❋♦r ❡✈❡r② st❡♣ e✿ {A✵ ✕ A✹} e {A✵, A✶, A✷} ❤♦❧❞s ❙✉✣❝❡s t♦ ❡st❛❜❧✐s❤ {A✷,✸,✹} e {A✸} ❢♦r e✿ s❡♥❞ ❞❛t❛❀ r❝✈ ❞❛t❛ ❛✛❡❝t✐♥❣ nr {A✷,✸,✹} e {A✹} ❢♦r e✿ s❡♥❞ ❛❝❦❀ r❝✈ ❛❝❦ ❛✛❡❝t✐♥❣ ns
❖✉t❧✐♥❡
❧♦ss② ❝❤❛♥♥❡❧ s✇♣ ❛♥❛❧②s✐s
❙❧✐❞✐♥❣ ❲✐♥❞♦✇ Pr♦t♦❝♦❧ ❆♥❛❧②s✐s ♦❢ ❙❧✐❞✐♥❣ ❲✐♥❞♦✇ Pr♦t♦❝♦❧ ■♥✈ A✸✕A✹ ❢♦r ❧♦ss② ❝❤❛♥♥❡❧ ■♥✈ A✸✕A✹ ❢♦r ▲❘❉ ❝❤❛♥♥❡❧ Pr♦❣r❡ss ❢♦r ❧♦ss②✴▲❘❉ ❝❤❛♥♥❡❧ ❆✇❛✐t✲str✉❝t✉r❡❞ ❙♦✉r❝❡ ❛♥❞ ❙✐♥❦ Pr♦❣r❛♠s ❉❛t❛ tr❛♥s❢❡r Pr♦t♦❝♦❧ ❛♥❞ Pr♦♦❢
- r❛❝❡❢✉❧✲❝❧♦s✐♥❣ ❉❛t❛ tr❛♥s❢❡r Pr♦t♦❝♦❧
❆❜♦rt❛❜❧❡ ❉❛t❛ tr❛♥s❢❡r Pr♦t♦❝♦❧
❆♥❛❧②s✐s ❢♦r ▲♦ss② ❈❤❛♥♥❡❧
❧♦ss② ❝❤❛♥♥❡❧ s✇♣ ❛♥❛❧②s✐s
❋♦r SwpDist ✇✐t❤ ❧♦ss② ❝❤❛♥♥❡❧ ♥♦✇ s❤♦✇ t❤❛t ■♥✈ A✸✕A✹ ❤♦❧❞s ✐❢ N ≥ SW + RW
Pr❡s❡r✈✐♥❣ A✸ ✇rt s❡♥❞ ❞❛t❛
❧♦ss② ❝❤❛♥♥❡❧ s✇♣ ❛♥❛❧②s✐s
A✷ : na ≤ nr ≤ ns ≤ na+SW A✸ : ❞❛t❛ j r❝✈❛❜❧❡ ⇒ j ✐♥ nr−N+RW · · · nr+N−1 ❙❡♥❞ ❞❛t❛ ♣r❡s❡r✈❡s
✸✳r❤s ❧♦✇❡r ❜♦✉♥❞ ✐❢
❣✉❛r❞s✱
✷ ✷ ✷
❙❡♥❞ ❞❛t❛ ♣r❡s❡r✈❡s
✸✳r❤s ✉♣♣❡r ❜♦✉♥❞
❣✉❛r❞s✱
✷ ✷
Pr❡s❡r✈✐♥❣ A✸ ✇rt s❡♥❞ ❞❛t❛
❧♦ss② ❝❤❛♥♥❡❧ s✇♣ ❛♥❛❧②s✐s
A✷ : na ≤ nr ≤ ns ≤ na+SW A✸ : ❞❛t❛ j r❝✈❛❜❧❡ ⇒ j ✐♥ nr−N+RW · · · nr+N−1 ❙❡♥❞ ❞❛t❛ k ♣r❡s❡r✈❡s A✸✳r❤s ❧♦✇❡r ❜♦✉♥❞ ✐❢ N ≥ SW + RW k ≥ na / / ❣✉❛r❞s✱ A✷
≥ ns − SW
/ / A✷
≥ nr − SW
/ / A✷
≥ nr − N + RW
/ / N ≥ SW + RW ❙❡♥❞ ❞❛t❛ ♣r❡s❡r✈❡s
✸✳r❤s ✉♣♣❡r ❜♦✉♥❞
❣✉❛r❞s✱
✷ ✷
Pr❡s❡r✈✐♥❣ A✸ ✇rt s❡♥❞ ❞❛t❛
❧♦ss② ❝❤❛♥♥❡❧ s✇♣ ❛♥❛❧②s✐s
A✷ : na ≤ nr ≤ ns ≤ na+SW A✸ : ❞❛t❛ j r❝✈❛❜❧❡ ⇒ j ✐♥ nr−N+RW · · · nr+N−1 ❙❡♥❞ ❞❛t❛ k ♣r❡s❡r✈❡s A✸✳r❤s ❧♦✇❡r ❜♦✉♥❞ ✐❢ N ≥ SW + RW k ≥ na / / ❣✉❛r❞s✱ A✷
≥ ns − SW
/ / A✷
≥ nr − SW
/ / A✷
≥ nr − N + RW
/ / N ≥ SW + RW ❙❡♥❞ ❞❛t❛ k ♣r❡s❡r✈❡s A✸✳r❤s ✉♣♣❡r ❜♦✉♥❞ k ≤ na + SW − 1 / / ❣✉❛r❞s✱ A✷
≤ nr + SW − 1
/ / A✷
≤ nr + N − 1
/ / N ≥ SW
Pr❡s❡r✈✐♥❣ A✸ ✇rt nr ✐♥❝r❡❛s❡
❧♦ss② ❝❤❛♥♥❡❧ s✇♣ ❛♥❛❧②s✐s
A✷ : na ≤ nr ≤ ns ≤ na+SW A✸ : ❞❛t❛ j r❝✈❛❜❧❡ ⇒ j ✐♥ nr−N+RW · · · nr+N−1 ✐♥❝r❡❛s❡ ♣r❡s❡r✈❡s
✸ ✐❢
❧❡t ❜❡❝♦♠❡ ❛t t✐♠❡
✵✳
s♦ r❝✈❞ ❛t
✵ ♦r ♣r✐♦r✱ s♦ s❡♥t ❛t s♦♠❡ ✶ ✶ ✵ ✶
❣✉❛r❞s
✶ ✷
❧❡t ❜❡ r❝✈❛❜❧❡ ❛❢t❡r
✵✱ s♦ s❡♥t ❛t s♦♠❡ ✷ ❛❢t❡r ✶ ✷ ✶
♥♦♥✲❞❡❝r❡❛s✐♥❣ ❆❜♦✈❡ ✐s ❛♥ ♦♣❡r❛t✐♦♥❛❧ ♣r♦♦❢❀ s❡❡ t❡①t ❢♦r ❛♥ ❛ss❡rt✐♦♥❛❧ ♣r♦♦❢
Pr❡s❡r✈✐♥❣ A✸ ✇rt nr ✐♥❝r❡❛s❡
❧♦ss② ❝❤❛♥♥❡❧ s✇♣ ❛♥❛❧②s✐s
A✷ : na ≤ nr ≤ ns ≤ na+SW A✸ : ❞❛t❛ j r❝✈❛❜❧❡ ⇒ j ✐♥ nr−N+RW · · · nr+N−1 nr ✐♥❝r❡❛s❡ ♣r❡s❡r✈❡s A✸ ✐❢ N ≥ SW + RW ❧❡t ❜❡❝♦♠❡ ❛t t✐♠❡
✵✳
s♦ r❝✈❞ ❛t
✵ ♦r ♣r✐♦r✱ s♦ s❡♥t ❛t s♦♠❡ ✶ ✶ ✵ ✶
❣✉❛r❞s
✶ ✷
❧❡t ❜❡ r❝✈❛❜❧❡ ❛❢t❡r
✵✱ s♦ s❡♥t ❛t s♦♠❡ ✷ ❛❢t❡r ✶ ✷ ✶
♥♦♥✲❞❡❝r❡❛s✐♥❣ ❆❜♦✈❡ ✐s ❛♥ ♦♣❡r❛t✐♦♥❛❧ ♣r♦♦❢❀ s❡❡ t❡①t ❢♦r ❛♥ ❛ss❡rt✐♦♥❛❧ ♣r♦♦❢
Pr❡s❡r✈✐♥❣ A✸ ✇rt nr ✐♥❝r❡❛s❡
❧♦ss② ❝❤❛♥♥❡❧ s✇♣ ❛♥❛❧②s✐s
A✷ : na ≤ nr ≤ ns ≤ na+SW A✸ : ❞❛t❛ j r❝✈❛❜❧❡ ⇒ j ✐♥ nr−N+RW · · · nr+N−1 nr ✐♥❝r❡❛s❡ ♣r❡s❡r✈❡s A✸ ✐❢ N ≥ SW + RW ❧❡t nr ❜❡❝♦♠❡ k ❛t t✐♠❡ t✵✳ s♦ r❝✈❞ ❛t
✵ ♦r ♣r✐♦r✱ s♦ s❡♥t ❛t s♦♠❡ ✶ ✶ ✵ ✶
❣✉❛r❞s
✶ ✷
❧❡t ❜❡ r❝✈❛❜❧❡ ❛❢t❡r
✵✱ s♦ s❡♥t ❛t s♦♠❡ ✷ ❛❢t❡r ✶ ✷ ✶
♥♦♥✲❞❡❝r❡❛s✐♥❣ ❆❜♦✈❡ ✐s ❛♥ ♦♣❡r❛t✐♦♥❛❧ ♣r♦♦❢❀ s❡❡ t❡①t ❢♦r ❛♥ ❛ss❡rt✐♦♥❛❧ ♣r♦♦❢
Pr❡s❡r✈✐♥❣ A✸ ✇rt nr ✐♥❝r❡❛s❡
❧♦ss② ❝❤❛♥♥❡❧ s✇♣ ❛♥❛❧②s✐s
A✷ : na ≤ nr ≤ ns ≤ na+SW A✸ : ❞❛t❛ j r❝✈❛❜❧❡ ⇒ j ✐♥ nr−N+RW · · · nr+N−1 nr ✐♥❝r❡❛s❡ ♣r❡s❡r✈❡s A✸ ✐❢ N ≥ SW + RW ❧❡t nr ❜❡❝♦♠❡ k ❛t t✐♠❡ t✵✳ s♦ k−1 r❝✈❞ ❛t t✵ ♦r ♣r✐♦r✱ s♦ s❡♥t ❛t s♦♠❡ t✶ / / t✶ < t✵
✶
❣✉❛r❞s
✶ ✷
❧❡t ❜❡ r❝✈❛❜❧❡ ❛❢t❡r
✵✱ s♦ s❡♥t ❛t s♦♠❡ ✷ ❛❢t❡r ✶ ✷ ✶
♥♦♥✲❞❡❝r❡❛s✐♥❣ ❆❜♦✈❡ ✐s ❛♥ ♦♣❡r❛t✐♦♥❛❧ ♣r♦♦❢❀ s❡❡ t❡①t ❢♦r ❛♥ ❛ss❡rt✐♦♥❛❧ ♣r♦♦❢
Pr❡s❡r✈✐♥❣ A✸ ✇rt nr ✐♥❝r❡❛s❡
❧♦ss② ❝❤❛♥♥❡❧ s✇♣ ❛♥❛❧②s✐s
A✷ : na ≤ nr ≤ ns ≤ na+SW A✸ : ❞❛t❛ j r❝✈❛❜❧❡ ⇒ j ✐♥ nr−N+RW · · · nr+N−1 nr ✐♥❝r❡❛s❡ ♣r❡s❡r✈❡s A✸ ✐❢ N ≥ SW + RW ❧❡t nr ❜❡❝♦♠❡ k ❛t t✐♠❡ t✵✳ s♦ k−1 r❝✈❞ ❛t t✵ ♦r ♣r✐♦r✱ s♦ s❡♥t ❛t s♦♠❡ t✶ / / t✶ < t✵ ns(t✶) ≥ k+1 / / ❣✉❛r❞s
✶ ✷
❧❡t ❜❡ r❝✈❛❜❧❡ ❛❢t❡r
✵✱ s♦ s❡♥t ❛t s♦♠❡ ✷ ❛❢t❡r ✶ ✷ ✶
♥♦♥✲❞❡❝r❡❛s✐♥❣ ❆❜♦✈❡ ✐s ❛♥ ♦♣❡r❛t✐♦♥❛❧ ♣r♦♦❢❀ s❡❡ t❡①t ❢♦r ❛♥ ❛ss❡rt✐♦♥❛❧ ♣r♦♦❢
Pr❡s❡r✈✐♥❣ A✸ ✇rt nr ✐♥❝r❡❛s❡
❧♦ss② ❝❤❛♥♥❡❧ s✇♣ ❛♥❛❧②s✐s
A✷ : na ≤ nr ≤ ns ≤ na+SW A✸ : ❞❛t❛ j r❝✈❛❜❧❡ ⇒ j ✐♥ nr−N+RW · · · nr+N−1 nr ✐♥❝r❡❛s❡ ♣r❡s❡r✈❡s A✸ ✐❢ N ≥ SW + RW ❧❡t nr ❜❡❝♦♠❡ k ❛t t✐♠❡ t✵✳ s♦ k−1 r❝✈❞ ❛t t✵ ♦r ♣r✐♦r✱ s♦ s❡♥t ❛t s♦♠❡ t✶ / / t✶ < t✵ ns(t✶) ≥ k+1 / / ❣✉❛r❞s na(t✶) ≥ k+1−SW ⋆⋆ / / A✷ ❧❡t ❜❡ r❝✈❛❜❧❡ ❛❢t❡r
✵✱ s♦ s❡♥t ❛t s♦♠❡ ✷ ❛❢t❡r ✶ ✷ ✶
♥♦♥✲❞❡❝r❡❛s✐♥❣ ❆❜♦✈❡ ✐s ❛♥ ♦♣❡r❛t✐♦♥❛❧ ♣r♦♦❢❀ s❡❡ t❡①t ❢♦r ❛♥ ❛ss❡rt✐♦♥❛❧ ♣r♦♦❢
Pr❡s❡r✈✐♥❣ A✸ ✇rt nr ✐♥❝r❡❛s❡
❧♦ss② ❝❤❛♥♥❡❧ s✇♣ ❛♥❛❧②s✐s
A✷ : na ≤ nr ≤ ns ≤ na+SW A✸ : ❞❛t❛ j r❝✈❛❜❧❡ ⇒ j ✐♥ nr−N+RW · · · nr+N−1 nr ✐♥❝r❡❛s❡ ♣r❡s❡r✈❡s A✸ ✐❢ N ≥ SW + RW ❧❡t nr ❜❡❝♦♠❡ k ❛t t✐♠❡ t✵✳ s♦ k−1 r❝✈❞ ❛t t✵ ♦r ♣r✐♦r✱ s♦ s❡♥t ❛t s♦♠❡ t✶ / / t✶ < t✵ ns(t✶) ≥ k+1 / / ❣✉❛r❞s na(t✶) ≥ k+1−SW ⋆⋆ / / A✷ ❧❡t j ❜❡ r❝✈❛❜❧❡ ❛❢t❡r t✵✱ s♦ s❡♥t ❛t s♦♠❡ t✷ ❛❢t❡r t✶
✷ ✶
♥♦♥✲❞❡❝r❡❛s✐♥❣ ❆❜♦✈❡ ✐s ❛♥ ♦♣❡r❛t✐♦♥❛❧ ♣r♦♦❢❀ s❡❡ t❡①t ❢♦r ❛♥ ❛ss❡rt✐♦♥❛❧ ♣r♦♦❢
Pr❡s❡r✈✐♥❣ A✸ ✇rt nr ✐♥❝r❡❛s❡
❧♦ss② ❝❤❛♥♥❡❧ s✇♣ ❛♥❛❧②s✐s
A✷ : na ≤ nr ≤ ns ≤ na+SW A✸ : ❞❛t❛ j r❝✈❛❜❧❡ ⇒ j ✐♥ nr−N+RW · · · nr+N−1 nr ✐♥❝r❡❛s❡ ♣r❡s❡r✈❡s A✸ ✐❢ N ≥ SW + RW ❧❡t nr ❜❡❝♦♠❡ k ❛t t✐♠❡ t✵✳ s♦ k−1 r❝✈❞ ❛t t✵ ♦r ♣r✐♦r✱ s♦ s❡♥t ❛t s♦♠❡ t✶ / / t✶ < t✵ ns(t✶) ≥ k+1 / / ❣✉❛r❞s na(t✶) ≥ k+1−SW ⋆⋆ / / A✷ ❧❡t j ❜❡ r❝✈❛❜❧❡ ❛❢t❡r t✵✱ s♦ s❡♥t ❛t s♦♠❡ t✷ ❛❢t❡r t✶ j ≥ na(t✷) ≥ na(t✶) / / na ♥♦♥✲❞❡❝r❡❛s✐♥❣ ❆❜♦✈❡ ✐s ❛♥ ♦♣❡r❛t✐♦♥❛❧ ♣r♦♦❢❀ s❡❡ t❡①t ❢♦r ❛♥ ❛ss❡rt✐♦♥❛❧ ♣r♦♦❢
Pr❡s❡r✈✐♥❣ A✸ ✇rt nr ✐♥❝r❡❛s❡
❧♦ss② ❝❤❛♥♥❡❧ s✇♣ ❛♥❛❧②s✐s
A✷ : na ≤ nr ≤ ns ≤ na+SW A✸ : ❞❛t❛ j r❝✈❛❜❧❡ ⇒ j ✐♥ nr−N+RW · · · nr+N−1 nr ✐♥❝r❡❛s❡ ♣r❡s❡r✈❡s A✸ ✐❢ N ≥ SW + RW ❧❡t nr ❜❡❝♦♠❡ k ❛t t✐♠❡ t✵✳ s♦ k−1 r❝✈❞ ❛t t✵ ♦r ♣r✐♦r✱ s♦ s❡♥t ❛t s♦♠❡ t✶ / / t✶ < t✵ ns(t✶) ≥ k+1 / / ❣✉❛r❞s na(t✶) ≥ k+1−SW ⋆⋆ / / A✷ ❧❡t j ❜❡ r❝✈❛❜❧❡ ❛❢t❡r t✵✱ s♦ s❡♥t ❛t s♦♠❡ t✷ ❛❢t❡r t✶ j ≥ na(t✷) ≥ na(t✶) / / na ♥♦♥✲❞❡❝r❡❛s✐♥❣ ≥ k+1−SW / / ⋆⋆ ❆❜♦✈❡ ✐s ❛♥ ♦♣❡r❛t✐♦♥❛❧ ♣r♦♦❢❀ s❡❡ t❡①t ❢♦r ❛♥ ❛ss❡rt✐♦♥❛❧ ♣r♦♦❢
Pr❡s❡r✈✐♥❣ A✸ ✇rt nr ✐♥❝r❡❛s❡
❧♦ss② ❝❤❛♥♥❡❧ s✇♣ ❛♥❛❧②s✐s
A✷ : na ≤ nr ≤ ns ≤ na+SW A✸ : ❞❛t❛ j r❝✈❛❜❧❡ ⇒ j ✐♥ nr−N+RW · · · nr+N−1 nr ✐♥❝r❡❛s❡ ♣r❡s❡r✈❡s A✸ ✐❢ N ≥ SW + RW ❧❡t nr ❜❡❝♦♠❡ k ❛t t✐♠❡ t✵✳ s♦ k−1 r❝✈❞ ❛t t✵ ♦r ♣r✐♦r✱ s♦ s❡♥t ❛t s♦♠❡ t✶ / / t✶ < t✵ ns(t✶) ≥ k+1 / / ❣✉❛r❞s na(t✶) ≥ k+1−SW ⋆⋆ / / A✷ ❧❡t j ❜❡ r❝✈❛❜❧❡ ❛❢t❡r t✵✱ s♦ s❡♥t ❛t s♦♠❡ t✷ ❛❢t❡r t✶ j ≥ na(t✷) ≥ na(t✶) / / na ♥♦♥✲❞❡❝r❡❛s✐♥❣ ≥ k+1−SW / / ⋆⋆ ≥ k+1−N+RW / / N ≥ SW + RW ❆❜♦✈❡ ✐s ❛♥ ♦♣❡r❛t✐♦♥❛❧ ♣r♦♦❢❀ s❡❡ t❡①t ❢♦r ❛♥ ❛ss❡rt✐♦♥❛❧ ♣r♦♦❢
Pr❡s❡r✈✐♥❣ A✸ ✇rt nr ✐♥❝r❡❛s❡
❧♦ss② ❝❤❛♥♥❡❧ s✇♣ ❛♥❛❧②s✐s
A✷ : na ≤ nr ≤ ns ≤ na+SW A✸ : ❞❛t❛ j r❝✈❛❜❧❡ ⇒ j ✐♥ nr−N+RW · · · nr+N−1 nr ✐♥❝r❡❛s❡ ♣r❡s❡r✈❡s A✸ ✐❢ N ≥ SW + RW ❧❡t nr ❜❡❝♦♠❡ k ❛t t✐♠❡ t✵✳ s♦ k−1 r❝✈❞ ❛t t✵ ♦r ♣r✐♦r✱ s♦ s❡♥t ❛t s♦♠❡ t✶ / / t✶ < t✵ ns(t✶) ≥ k+1 / / ❣✉❛r❞s na(t✶) ≥ k+1−SW ⋆⋆ / / A✷ ❧❡t j ❜❡ r❝✈❛❜❧❡ ❛❢t❡r t✵✱ s♦ s❡♥t ❛t s♦♠❡ t✷ ❛❢t❡r t✶ j ≥ na(t✷) ≥ na(t✶) / / na ♥♦♥✲❞❡❝r❡❛s✐♥❣ ≥ k+1−SW / / ⋆⋆ ≥ k+1−N+RW / / N ≥ SW + RW ❆❜♦✈❡ ✐s ❛♥ ♦♣❡r❛t✐♦♥❛❧ ♣r♦♦❢❀ s❡❡ t❡①t ❢♦r ❛♥ ❛ss❡rt✐♦♥❛❧ ♣r♦♦❢
Pr❡s❡r✈✐♥❣ A✹
❧♦ss② ❝❤❛♥♥❡❧ s✇♣ ❛♥❛❧②s✐s
A✷ : na ≤ nr ≤ ns ≤ na+SW A✹ : ❛❝❦ j r❝✈❛❜❧❡ ⇒ j ✐♥ ns−N+1 · · · na+N Pr♦♦❢ ♦❢ ■♥✈
✹
✶✳ ❛❝❦s s❡♥t ❤❛✈❡ ♥♦♥✲❞❡❝r❡❛s✐♥❣ ✉s♥ ♥♦♥✲❞❡❝r❡❛s✐♥❣ ✷✳ ❛❝❦s ✐♥ tr❛♥s✐t ❤❛✈❡ ♥♦♥✲❞❡❝r❡❛s✐♥❣ ✉s♥ ♥♦ r❡♦❞❡r✐♥❣ ✸✳ ❛❝❦ ✉s♥ ❧♦✇❡r ❜♦✉♥❞❡❞ ❜② ✐s ❛♥ ❛❝❦ ✉s♥ ✹✳ ■♥✈ ✭❛❝❦ r❝✈❛❜❧❡ ✮ ✶✱ ✷✱ ✸ ✺✳ ■♥✈
✹
✹✱
✷
❆❜♦✈❡ ✐s ❛♥ ♦♣❡r❛t✐♦♥❛❧ ♣r♦♦❢❀ s❡❡ t❡①t ❢♦r ❛♥ ❛ss❡rt✐♦♥❛❧ ♣r♦♦❢
Pr❡s❡r✈✐♥❣ A✹
❧♦ss② ❝❤❛♥♥❡❧ s✇♣ ❛♥❛❧②s✐s
A✷ : na ≤ nr ≤ ns ≤ na+SW A✹ : ❛❝❦ j r❝✈❛❜❧❡ ⇒ j ✐♥ ns−N+1 · · · na+N Pr♦♦❢ ♦❢ ■♥✈ A✹ ✶✳ ❛❝❦s s❡♥t ❤❛✈❡ ♥♦♥✲❞❡❝r❡❛s✐♥❣ ✉s♥ ♥♦♥✲❞❡❝r❡❛s✐♥❣ ✷✳ ❛❝❦s ✐♥ tr❛♥s✐t ❤❛✈❡ ♥♦♥✲❞❡❝r❡❛s✐♥❣ ✉s♥ ♥♦ r❡♦❞❡r✐♥❣ ✸✳ ❛❝❦ ✉s♥ ❧♦✇❡r ❜♦✉♥❞❡❞ ❜② ✐s ❛♥ ❛❝❦ ✉s♥ ✹✳ ■♥✈ ✭❛❝❦ r❝✈❛❜❧❡ ✮ ✶✱ ✷✱ ✸ ✺✳ ■♥✈
✹
✹✱
✷
❆❜♦✈❡ ✐s ❛♥ ♦♣❡r❛t✐♦♥❛❧ ♣r♦♦❢❀ s❡❡ t❡①t ❢♦r ❛♥ ❛ss❡rt✐♦♥❛❧ ♣r♦♦❢
Pr❡s❡r✈✐♥❣ A✹
❧♦ss② ❝❤❛♥♥❡❧ s✇♣ ❛♥❛❧②s✐s
A✷ : na ≤ nr ≤ ns ≤ na+SW A✹ : ❛❝❦ j r❝✈❛❜❧❡ ⇒ j ✐♥ ns−N+1 · · · na+N Pr♦♦❢ ♦❢ ■♥✈ A✹ ✶✳ ❛❝❦s s❡♥t ❤❛✈❡ ♥♦♥✲❞❡❝r❡❛s✐♥❣ ✉s♥ / / nr ♥♦♥✲❞❡❝r❡❛s✐♥❣ ✷✳ ❛❝❦s ✐♥ tr❛♥s✐t ❤❛✈❡ ♥♦♥✲❞❡❝r❡❛s✐♥❣ ✉s♥ ♥♦ r❡♦❞❡r✐♥❣ ✸✳ ❛❝❦ ✉s♥ ❧♦✇❡r ❜♦✉♥❞❡❞ ❜② ✐s ❛♥ ❛❝❦ ✉s♥ ✹✳ ■♥✈ ✭❛❝❦ r❝✈❛❜❧❡ ✮ ✶✱ ✷✱ ✸ ✺✳ ■♥✈
✹
✹✱
✷
❆❜♦✈❡ ✐s ❛♥ ♦♣❡r❛t✐♦♥❛❧ ♣r♦♦❢❀ s❡❡ t❡①t ❢♦r ❛♥ ❛ss❡rt✐♦♥❛❧ ♣r♦♦❢
Pr❡s❡r✈✐♥❣ A✹
❧♦ss② ❝❤❛♥♥❡❧ s✇♣ ❛♥❛❧②s✐s
A✷ : na ≤ nr ≤ ns ≤ na+SW A✹ : ❛❝❦ j r❝✈❛❜❧❡ ⇒ j ✐♥ ns−N+1 · · · na+N Pr♦♦❢ ♦❢ ■♥✈ A✹ ✶✳ ❛❝❦s s❡♥t ❤❛✈❡ ♥♦♥✲❞❡❝r❡❛s✐♥❣ ✉s♥ / / nr ♥♦♥✲❞❡❝r❡❛s✐♥❣ ✷✳ ❛❝❦s ✐♥ tr❛♥s✐t ❤❛✈❡ ♥♦♥✲❞❡❝r❡❛s✐♥❣ ✉s♥ / / ♥♦ r❡♦❞❡r✐♥❣ ✸✳ ❛❝❦ ✉s♥ ❧♦✇❡r ❜♦✉♥❞❡❞ ❜② ✐s ❛♥ ❛❝❦ ✉s♥ ✹✳ ■♥✈ ✭❛❝❦ r❝✈❛❜❧❡ ✮ ✶✱ ✷✱ ✸ ✺✳ ■♥✈
✹
✹✱
✷
❆❜♦✈❡ ✐s ❛♥ ♦♣❡r❛t✐♦♥❛❧ ♣r♦♦❢❀ s❡❡ t❡①t ❢♦r ❛♥ ❛ss❡rt✐♦♥❛❧ ♣r♦♦❢
Pr❡s❡r✈✐♥❣ A✹
❧♦ss② ❝❤❛♥♥❡❧ s✇♣ ❛♥❛❧②s✐s
A✷ : na ≤ nr ≤ ns ≤ na+SW A✹ : ❛❝❦ j r❝✈❛❜❧❡ ⇒ j ✐♥ ns−N+1 · · · na+N Pr♦♦❢ ♦❢ ■♥✈ A✹ ✶✳ ❛❝❦s s❡♥t ❤❛✈❡ ♥♦♥✲❞❡❝r❡❛s✐♥❣ ✉s♥ / / nr ♥♦♥✲❞❡❝r❡❛s✐♥❣ ✷✳ ❛❝❦s ✐♥ tr❛♥s✐t ❤❛✈❡ ♥♦♥✲❞❡❝r❡❛s✐♥❣ ✉s♥ / / ♥♦ r❡♦❞❡r✐♥❣ ✸✳ ❛❝❦ ✉s♥ ❧♦✇❡r ❜♦✉♥❞❡❞ ❜② na / / na ✐s ❛♥ ❛❝❦ ✉s♥ ✹✳ ■♥✈ ✭❛❝❦ r❝✈❛❜❧❡ ✮ ✶✱ ✷✱ ✸ ✺✳ ■♥✈
✹
✹✱
✷
❆❜♦✈❡ ✐s ❛♥ ♦♣❡r❛t✐♦♥❛❧ ♣r♦♦❢❀ s❡❡ t❡①t ❢♦r ❛♥ ❛ss❡rt✐♦♥❛❧ ♣r♦♦❢
Pr❡s❡r✈✐♥❣ A✹
❧♦ss② ❝❤❛♥♥❡❧ s✇♣ ❛♥❛❧②s✐s
A✷ : na ≤ nr ≤ ns ≤ na+SW A✹ : ❛❝❦ j r❝✈❛❜❧❡ ⇒ j ✐♥ ns−N+1 · · · na+N Pr♦♦❢ ♦❢ ■♥✈ A✹ ✶✳ ❛❝❦s s❡♥t ❤❛✈❡ ♥♦♥✲❞❡❝r❡❛s✐♥❣ ✉s♥ / / nr ♥♦♥✲❞❡❝r❡❛s✐♥❣ ✷✳ ❛❝❦s ✐♥ tr❛♥s✐t ❤❛✈❡ ♥♦♥✲❞❡❝r❡❛s✐♥❣ ✉s♥ / / ♥♦ r❡♦❞❡r✐♥❣ ✸✳ ❛❝❦ ✉s♥ ❧♦✇❡r ❜♦✉♥❞❡❞ ❜② na / / na ✐s ❛♥ ❛❝❦ ✉s♥ ✹✳ ■♥✈ ✭❛❝❦ j r❝✈❛❜❧❡ ⇒ na ≤ j ≤ nr✮ / / ✶✱ ✷✱ ✸ ✺✳ ■♥✈
✹
✹✱
✷
❆❜♦✈❡ ✐s ❛♥ ♦♣❡r❛t✐♦♥❛❧ ♣r♦♦❢❀ s❡❡ t❡①t ❢♦r ❛♥ ❛ss❡rt✐♦♥❛❧ ♣r♦♦❢
Pr❡s❡r✈✐♥❣ A✹
❧♦ss② ❝❤❛♥♥❡❧ s✇♣ ❛♥❛❧②s✐s
A✷ : na ≤ nr ≤ ns ≤ na+SW A✹ : ❛❝❦ j r❝✈❛❜❧❡ ⇒ j ✐♥ ns−N+1 · · · na+N Pr♦♦❢ ♦❢ ■♥✈ A✹ ✶✳ ❛❝❦s s❡♥t ❤❛✈❡ ♥♦♥✲❞❡❝r❡❛s✐♥❣ ✉s♥ / / nr ♥♦♥✲❞❡❝r❡❛s✐♥❣ ✷✳ ❛❝❦s ✐♥ tr❛♥s✐t ❤❛✈❡ ♥♦♥✲❞❡❝r❡❛s✐♥❣ ✉s♥ / / ♥♦ r❡♦❞❡r✐♥❣ ✸✳ ❛❝❦ ✉s♥ ❧♦✇❡r ❜♦✉♥❞❡❞ ❜② na / / na ✐s ❛♥ ❛❝❦ ✉s♥ ✹✳ ■♥✈ ✭❛❝❦ j r❝✈❛❜❧❡ ⇒ na ≤ j ≤ nr✮ / / ✶✱ ✷✱ ✸ ✺✳ ■♥✈ A✹ / / ✹✱ A✷ ❆❜♦✈❡ ✐s ❛♥ ♦♣❡r❛t✐♦♥❛❧ ♣r♦♦❢❀ s❡❡ t❡①t ❢♦r ❛♥ ❛ss❡rt✐♦♥❛❧ ♣r♦♦❢
Pr❡s❡r✈✐♥❣ A✹
❧♦ss② ❝❤❛♥♥❡❧ s✇♣ ❛♥❛❧②s✐s
A✷ : na ≤ nr ≤ ns ≤ na+SW A✹ : ❛❝❦ j r❝✈❛❜❧❡ ⇒ j ✐♥ ns−N+1 · · · na+N Pr♦♦❢ ♦❢ ■♥✈ A✹ ✶✳ ❛❝❦s s❡♥t ❤❛✈❡ ♥♦♥✲❞❡❝r❡❛s✐♥❣ ✉s♥ / / nr ♥♦♥✲❞❡❝r❡❛s✐♥❣ ✷✳ ❛❝❦s ✐♥ tr❛♥s✐t ❤❛✈❡ ♥♦♥✲❞❡❝r❡❛s✐♥❣ ✉s♥ / / ♥♦ r❡♦❞❡r✐♥❣ ✸✳ ❛❝❦ ✉s♥ ❧♦✇❡r ❜♦✉♥❞❡❞ ❜② na / / na ✐s ❛♥ ❛❝❦ ✉s♥ ✹✳ ■♥✈ ✭❛❝❦ j r❝✈❛❜❧❡ ⇒ na ≤ j ≤ nr✮ / / ✶✱ ✷✱ ✸ ✺✳ ■♥✈ A✹ / / ✹✱ A✷ ❆❜♦✈❡ ✐s ❛♥ ♦♣❡r❛t✐♦♥❛❧ ♣r♦♦❢❀ s❡❡ t❡①t ❢♦r ❛♥ ❛ss❡rt✐♦♥❛❧ ♣r♦♦❢
❖✉t❧✐♥❡
▲❘❉ ❝❤❛♥♥❡❧ s✇♣ ❛♥❛❧②s✐s
❙❧✐❞✐♥❣ ❲✐♥❞♦✇ Pr♦t♦❝♦❧ ❆♥❛❧②s✐s ♦❢ ❙❧✐❞✐♥❣ ❲✐♥❞♦✇ Pr♦t♦❝♦❧ ■♥✈ A✸✕A✹ ❢♦r ❧♦ss② ❝❤❛♥♥❡❧ ■♥✈ A✸✕A✹ ❢♦r ▲❘❉ ❝❤❛♥♥❡❧ Pr♦❣r❡ss ❢♦r ❧♦ss②✴▲❘❉ ❝❤❛♥♥❡❧ ❆✇❛✐t✲str✉❝t✉r❡❞ ❙♦✉r❝❡ ❛♥❞ ❙✐♥❦ Pr♦❣r❛♠s ❉❛t❛ tr❛♥s❢❡r Pr♦t♦❝♦❧ ❛♥❞ Pr♦♦❢
- r❛❝❡❢✉❧✲❝❧♦s✐♥❣ ❉❛t❛ tr❛♥s❢❡r Pr♦t♦❝♦❧
❆❜♦rt❛❜❧❡ ❉❛t❛ tr❛♥s❢❡r Pr♦t♦❝♦❧
❆♥❛❧②s✐s ❢♦r ▲❘❉ ❈❤❛♥♥❡❧
▲❘❉ ❝❤❛♥♥❡❧ s✇♣ ❛♥❛❧②s✐s
❋♦r SwpDist ✇✐t❤ ▲❘❉ ❝❤❛♥♥❡❧ ♦❜✈✐♦✉s❧② ■♥✈ A✸✕A✹ ❞♦❡s ♥♦t ❤♦❧❞ ❢♦r ❛♥② N ❇✉t ■♥✈ A✸✕A✹ ❤♦❧❞s ✐❢ ▲❘❉ ❝❤❛♥♥❡❧ ❤❛s ♠❛① ♠s❣ ❧✐❢❡t✐♠❡ L ♠✐♥ t✐♠❡ δ ❜❡t✇❡❡♥ ns ✐♥❝r❡♠❡♥ts N ≥ SW + RW + L δ
Pr❡s❡r✈✐♥❣ A✸
▲❘❉ ❝❤❛♥♥❡❧ s✇♣ ❛♥❛❧②s✐s
A✷ : na ≤ nr ≤ ns ≤ na+SW A✸ : ❞❛t❛ j r❝✈❛❜❧❡ ⇒ j ✐♥ nr−N+RW · · · nr+N−1
✸✳r❤s ✉♣♣❡r ❜♦✉♥❞ ❤♦❧❞s ❡①❛❝t❧② ❛s ✐♥ ❧♦ss② ❝❤❛♥♥❡❧ ❝❛s❡ ✸✳r❤s ❧♦✇❡r ❜♦✉♥❞ ❤♦❧❞s ❛s ❢♦❧❧♦✇s
✶ ❧❡t ❞❛t❛ ❜❡ r❝✈❛❜❧❡ ❛t
✵
✷ ❞❛t❛ ✇❛s s❡♥t ❛t s♦♠❡
✶ ✵
✶ ✸
✶ ✶
❣✉❛r❞s✱
✷
✹ ❞✉r✐♥❣
✶ ✵ ✿
✐♥❝r❡❛s❡s ❜② ❛t ♠♦st ❣✉❛r❞s ✺
✵
✸✱ ✹ ✻
✵
✺✱ ✼
✵
✻✱
✷
Pr❡s❡r✈✐♥❣ A✸
▲❘❉ ❝❤❛♥♥❡❧ s✇♣ ❛♥❛❧②s✐s
A✷ : na ≤ nr ≤ ns ≤ na+SW A✸ : ❞❛t❛ j r❝✈❛❜❧❡ ⇒ j ✐♥ nr−N+RW · · · nr+N−1 A✸✳r❤s ✉♣♣❡r ❜♦✉♥❞ ❤♦❧❞s ❡①❛❝t❧② ❛s ✐♥ ❧♦ss② ❝❤❛♥♥❡❧ ❝❛s❡
✸✳r❤s ❧♦✇❡r ❜♦✉♥❞ ❤♦❧❞s ❛s ❢♦❧❧♦✇s
✶ ❧❡t ❞❛t❛ ❜❡ r❝✈❛❜❧❡ ❛t
✵
✷ ❞❛t❛ ✇❛s s❡♥t ❛t s♦♠❡
✶ ✵
✶ ✸
✶ ✶
❣✉❛r❞s✱
✷
✹ ❞✉r✐♥❣
✶ ✵ ✿
✐♥❝r❡❛s❡s ❜② ❛t ♠♦st ❣✉❛r❞s ✺
✵
✸✱ ✹ ✻
✵
✺✱ ✼
✵
✻✱
✷
Pr❡s❡r✈✐♥❣ A✸
▲❘❉ ❝❤❛♥♥❡❧ s✇♣ ❛♥❛❧②s✐s
A✷ : na ≤ nr ≤ ns ≤ na+SW A✸ : ❞❛t❛ j r❝✈❛❜❧❡ ⇒ j ✐♥ nr−N+RW · · · nr+N−1 A✸✳r❤s ✉♣♣❡r ❜♦✉♥❞ ❤♦❧❞s ❡①❛❝t❧② ❛s ✐♥ ❧♦ss② ❝❤❛♥♥❡❧ ❝❛s❡ A✸✳r❤s ❧♦✇❡r ❜♦✉♥❞ ❤♦❧❞s ❛s ❢♦❧❧♦✇s ✶ ❧❡t ❞❛t❛ ❜❡ r❝✈❛❜❧❡ ❛t
✵
✷ ❞❛t❛ ✇❛s s❡♥t ❛t s♦♠❡
✶ ✵
✶ ✸
✶ ✶
❣✉❛r❞s✱
✷
✹ ❞✉r✐♥❣
✶ ✵ ✿
✐♥❝r❡❛s❡s ❜② ❛t ♠♦st ❣✉❛r❞s ✺
✵
✸✱ ✹ ✻
✵
✺✱ ✼
✵
✻✱
✷
Pr❡s❡r✈✐♥❣ A✸
▲❘❉ ❝❤❛♥♥❡❧ s✇♣ ❛♥❛❧②s✐s
A✷ : na ≤ nr ≤ ns ≤ na+SW A✸ : ❞❛t❛ j r❝✈❛❜❧❡ ⇒ j ✐♥ nr−N+RW · · · nr+N−1 A✸✳r❤s ✉♣♣❡r ❜♦✉♥❞ ❤♦❧❞s ❡①❛❝t❧② ❛s ✐♥ ❧♦ss② ❝❤❛♥♥❡❧ ❝❛s❡ A✸✳r❤s ❧♦✇❡r ❜♦✉♥❞ ❤♦❧❞s ❛s ❢♦❧❧♦✇s ✶ ❧❡t ❞❛t❛ j ❜❡ r❝✈❛❜❧❡ ❛t t✵ ✷ ❞❛t❛ ✇❛s s❡♥t ❛t s♦♠❡
✶ ✵
✶ ✸
✶ ✶
❣✉❛r❞s✱
✷
✹ ❞✉r✐♥❣
✶ ✵ ✿
✐♥❝r❡❛s❡s ❜② ❛t ♠♦st ❣✉❛r❞s ✺
✵
✸✱ ✹ ✻
✵
✺✱ ✼
✵
✻✱
✷
Pr❡s❡r✈✐♥❣ A✸
▲❘❉ ❝❤❛♥♥❡❧ s✇♣ ❛♥❛❧②s✐s
A✷ : na ≤ nr ≤ ns ≤ na+SW A✸ : ❞❛t❛ j r❝✈❛❜❧❡ ⇒ j ✐♥ nr−N+RW · · · nr+N−1 A✸✳r❤s ✉♣♣❡r ❜♦✉♥❞ ❤♦❧❞s ❡①❛❝t❧② ❛s ✐♥ ❧♦ss② ❝❤❛♥♥❡❧ ❝❛s❡ A✸✳r❤s ❧♦✇❡r ❜♦✉♥❞ ❤♦❧❞s ❛s ❢♦❧❧♦✇s ✶ ❧❡t ❞❛t❛ j ❜❡ r❝✈❛❜❧❡ ❛t t✵ ✷ ❞❛t❛ j ✇❛s s❡♥t ❛t s♦♠❡ t✶ > t✵ − L / / ✶ ✸
✶ ✶
❣✉❛r❞s✱
✷
✹ ❞✉r✐♥❣
✶ ✵ ✿
✐♥❝r❡❛s❡s ❜② ❛t ♠♦st ❣✉❛r❞s ✺
✵
✸✱ ✹ ✻
✵
✺✱ ✼
✵
✻✱
✷
Pr❡s❡r✈✐♥❣ A✸
▲❘❉ ❝❤❛♥♥❡❧ s✇♣ ❛♥❛❧②s✐s
A✷ : na ≤ nr ≤ ns ≤ na+SW A✸ : ❞❛t❛ j r❝✈❛❜❧❡ ⇒ j ✐♥ nr−N+RW · · · nr+N−1 A✸✳r❤s ✉♣♣❡r ❜♦✉♥❞ ❤♦❧❞s ❡①❛❝t❧② ❛s ✐♥ ❧♦ss② ❝❤❛♥♥❡❧ ❝❛s❡ A✸✳r❤s ❧♦✇❡r ❜♦✉♥❞ ❤♦❧❞s ❛s ❢♦❧❧♦✇s ✶ ❧❡t ❞❛t❛ j ❜❡ r❝✈❛❜❧❡ ❛t t✵ ✷ ❞❛t❛ j ✇❛s s❡♥t ❛t s♦♠❡ t✶ > t✵ − L / / ✶ ✸ j ≥ na(t✶) ≥ ns(t✶) − SW / / ❣✉❛r❞s✱ A✷ ✹ ❞✉r✐♥❣
✶ ✵ ✿
✐♥❝r❡❛s❡s ❜② ❛t ♠♦st ❣✉❛r❞s ✺
✵
✸✱ ✹ ✻
✵
✺✱ ✼
✵
✻✱
✷
Pr❡s❡r✈✐♥❣ A✸
▲❘❉ ❝❤❛♥♥❡❧ s✇♣ ❛♥❛❧②s✐s
A✷ : na ≤ nr ≤ ns ≤ na+SW A✸ : ❞❛t❛ j r❝✈❛❜❧❡ ⇒ j ✐♥ nr−N+RW · · · nr+N−1 A✸✳r❤s ✉♣♣❡r ❜♦✉♥❞ ❤♦❧❞s ❡①❛❝t❧② ❛s ✐♥ ❧♦ss② ❝❤❛♥♥❡❧ ❝❛s❡ A✸✳r❤s ❧♦✇❡r ❜♦✉♥❞ ❤♦❧❞s ❛s ❢♦❧❧♦✇s ✶ ❧❡t ❞❛t❛ j ❜❡ r❝✈❛❜❧❡ ❛t t✵ ✷ ❞❛t❛ j ✇❛s s❡♥t ❛t s♦♠❡ t✶ > t✵ − L / / ✶ ✸ j ≥ na(t✶) ≥ ns(t✶) − SW / / ❣✉❛r❞s✱ A✷ ✹ ❞✉r✐♥❣ [t✶, t✵]✿ ns ✐♥❝r❡❛s❡s ❜② ❛t ♠♦st L/δ / / ❣✉❛r❞s ✺
✵
✸✱ ✹ ✻
✵
✺✱ ✼
✵
✻✱
✷
Pr❡s❡r✈✐♥❣ A✸
▲❘❉ ❝❤❛♥♥❡❧ s✇♣ ❛♥❛❧②s✐s
A✷ : na ≤ nr ≤ ns ≤ na+SW A✸ : ❞❛t❛ j r❝✈❛❜❧❡ ⇒ j ✐♥ nr−N+RW · · · nr+N−1 A✸✳r❤s ✉♣♣❡r ❜♦✉♥❞ ❤♦❧❞s ❡①❛❝t❧② ❛s ✐♥ ❧♦ss② ❝❤❛♥♥❡❧ ❝❛s❡ A✸✳r❤s ❧♦✇❡r ❜♦✉♥❞ ❤♦❧❞s ❛s ❢♦❧❧♦✇s ✶ ❧❡t ❞❛t❛ j ❜❡ r❝✈❛❜❧❡ ❛t t✵ ✷ ❞❛t❛ j ✇❛s s❡♥t ❛t s♦♠❡ t✶ > t✵ − L / / ✶ ✸ j ≥ na(t✶) ≥ ns(t✶) − SW / / ❣✉❛r❞s✱ A✷ ✹ ❞✉r✐♥❣ [t✶, t✵]✿ ns ✐♥❝r❡❛s❡s ❜② ❛t ♠♦st L/δ / / ❣✉❛r❞s ✺ j ≥ ns(t✵) − L/δ − SW / / ✸✱ ✹ ✻
✵
✺✱ ✼
✵
✻✱
✷
Pr❡s❡r✈✐♥❣ A✸
▲❘❉ ❝❤❛♥♥❡❧ s✇♣ ❛♥❛❧②s✐s
A✷ : na ≤ nr ≤ ns ≤ na+SW A✸ : ❞❛t❛ j r❝✈❛❜❧❡ ⇒ j ✐♥ nr−N+RW · · · nr+N−1 A✸✳r❤s ✉♣♣❡r ❜♦✉♥❞ ❤♦❧❞s ❡①❛❝t❧② ❛s ✐♥ ❧♦ss② ❝❤❛♥♥❡❧ ❝❛s❡ A✸✳r❤s ❧♦✇❡r ❜♦✉♥❞ ❤♦❧❞s ❛s ❢♦❧❧♦✇s ✶ ❧❡t ❞❛t❛ j ❜❡ r❝✈❛❜❧❡ ❛t t✵ ✷ ❞❛t❛ j ✇❛s s❡♥t ❛t s♦♠❡ t✶ > t✵ − L / / ✶ ✸ j ≥ na(t✶) ≥ ns(t✶) − SW / / ❣✉❛r❞s✱ A✷ ✹ ❞✉r✐♥❣ [t✶, t✵]✿ ns ✐♥❝r❡❛s❡s ❜② ❛t ♠♦st L/δ / / ❣✉❛r❞s ✺ j ≥ ns(t✵) − L/δ − SW / / ✸✱ ✹ ✻ j ≥ ns(t✵) − N + RW / / ✺✱ N ≥ SW + RW + L/δ ✼
✵
✻✱
✷
Pr❡s❡r✈✐♥❣ A✸
▲❘❉ ❝❤❛♥♥❡❧ s✇♣ ❛♥❛❧②s✐s
A✷ : na ≤ nr ≤ ns ≤ na+SW A✸ : ❞❛t❛ j r❝✈❛❜❧❡ ⇒ j ✐♥ nr−N+RW · · · nr+N−1 A✸✳r❤s ✉♣♣❡r ❜♦✉♥❞ ❤♦❧❞s ❡①❛❝t❧② ❛s ✐♥ ❧♦ss② ❝❤❛♥♥❡❧ ❝❛s❡ A✸✳r❤s ❧♦✇❡r ❜♦✉♥❞ ❤♦❧❞s ❛s ❢♦❧❧♦✇s ✶ ❧❡t ❞❛t❛ j ❜❡ r❝✈❛❜❧❡ ❛t t✵ ✷ ❞❛t❛ j ✇❛s s❡♥t ❛t s♦♠❡ t✶ > t✵ − L / / ✶ ✸ j ≥ na(t✶) ≥ ns(t✶) − SW / / ❣✉❛r❞s✱ A✷ ✹ ❞✉r✐♥❣ [t✶, t✵]✿ ns ✐♥❝r❡❛s❡s ❜② ❛t ♠♦st L/δ / / ❣✉❛r❞s ✺ j ≥ ns(t✵) − L/δ − SW / / ✸✱ ✹ ✻ j ≥ ns(t✵) − N + RW / / ✺✱ N ≥ SW + RW + L/δ ✼ j ≥ nr(t✵) − N + RW / / ✻✱ A✷
Pr❡s❡r✈✐♥❣ A✹
▲❘❉ ❝❤❛♥♥❡❧ s✇♣ ❛♥❛❧②s✐s
A✷ : na ≤ nr ≤ ns ≤ na+SW A✹ : ❛❝❦ j r❝✈❛❜❧❡ ⇒ j ✐♥ ns−N+1 · · · na+N
✹✳r❤s ✉♣♣❡r ❜♦✉♥❞ ❤♦❧❞s ❡①❛❝t❧② ❛s ✐♥ ❧♦ss② ❝❤❛♥♥❡❧ ❝❛s❡ ✹✳r❤s ❧♦✇❡r ❜♦✉♥❞ ❤♦❧❞s ❛s ❢♦❧❧♦✇s
✶ ❧❡t ❛❝❦ ❜❡ r❝✈❛❜❧❡ ❛t
✵
✷ ❛❝❦ ✇❛s s❡♥t ❛t s♦♠❡
✶ ✵
✶ ✸
✶ ✶ ✶
✷✱ ❣✉❛r❞✱
✷
✹ ❞✉r✐♥❣
✶ ✵ ✿
✐♥❝r❡❛s❡s ❜② ❛t ♠♦st ✺
✵
✸✱ ✹ ✻
✵
✺✱ ✱
Pr❡s❡r✈✐♥❣ A✹
▲❘❉ ❝❤❛♥♥❡❧ s✇♣ ❛♥❛❧②s✐s
A✷ : na ≤ nr ≤ ns ≤ na+SW A✹ : ❛❝❦ j r❝✈❛❜❧❡ ⇒ j ✐♥ ns−N+1 · · · na+N A✹✳r❤s ✉♣♣❡r ❜♦✉♥❞ ❤♦❧❞s ❡①❛❝t❧② ❛s ✐♥ ❧♦ss② ❝❤❛♥♥❡❧ ❝❛s❡
✹✳r❤s ❧♦✇❡r ❜♦✉♥❞ ❤♦❧❞s ❛s ❢♦❧❧♦✇s
✶ ❧❡t ❛❝❦ ❜❡ r❝✈❛❜❧❡ ❛t
✵
✷ ❛❝❦ ✇❛s s❡♥t ❛t s♦♠❡
✶ ✵
✶ ✸
✶ ✶ ✶
✷✱ ❣✉❛r❞✱
✷
✹ ❞✉r✐♥❣
✶ ✵ ✿
✐♥❝r❡❛s❡s ❜② ❛t ♠♦st ✺
✵
✸✱ ✹ ✻
✵
✺✱ ✱
Pr❡s❡r✈✐♥❣ A✹
▲❘❉ ❝❤❛♥♥❡❧ s✇♣ ❛♥❛❧②s✐s
A✷ : na ≤ nr ≤ ns ≤ na+SW A✹ : ❛❝❦ j r❝✈❛❜❧❡ ⇒ j ✐♥ ns−N+1 · · · na+N A✹✳r❤s ✉♣♣❡r ❜♦✉♥❞ ❤♦❧❞s ❡①❛❝t❧② ❛s ✐♥ ❧♦ss② ❝❤❛♥♥❡❧ ❝❛s❡ A✹✳r❤s ❧♦✇❡r ❜♦✉♥❞ ❤♦❧❞s ❛s ❢♦❧❧♦✇s ✶ ❧❡t ❛❝❦ ❜❡ r❝✈❛❜❧❡ ❛t
✵
✷ ❛❝❦ ✇❛s s❡♥t ❛t s♦♠❡
✶ ✵
✶ ✸
✶ ✶ ✶
✷✱ ❣✉❛r❞✱
✷
✹ ❞✉r✐♥❣
✶ ✵ ✿
✐♥❝r❡❛s❡s ❜② ❛t ♠♦st ✺
✵
✸✱ ✹ ✻
✵
✺✱ ✱
Pr❡s❡r✈✐♥❣ A✹
▲❘❉ ❝❤❛♥♥❡❧ s✇♣ ❛♥❛❧②s✐s
A✷ : na ≤ nr ≤ ns ≤ na+SW A✹ : ❛❝❦ j r❝✈❛❜❧❡ ⇒ j ✐♥ ns−N+1 · · · na+N A✹✳r❤s ✉♣♣❡r ❜♦✉♥❞ ❤♦❧❞s ❡①❛❝t❧② ❛s ✐♥ ❧♦ss② ❝❤❛♥♥❡❧ ❝❛s❡ A✹✳r❤s ❧♦✇❡r ❜♦✉♥❞ ❤♦❧❞s ❛s ❢♦❧❧♦✇s ✶ ❧❡t ❛❝❦ j ❜❡ r❝✈❛❜❧❡ ❛t t✵ ✷ ❛❝❦ ✇❛s s❡♥t ❛t s♦♠❡
✶ ✵
✶ ✸
✶ ✶ ✶
✷✱ ❣✉❛r❞✱
✷
✹ ❞✉r✐♥❣
✶ ✵ ✿
✐♥❝r❡❛s❡s ❜② ❛t ♠♦st ✺
✵
✸✱ ✹ ✻
✵
✺✱ ✱
Pr❡s❡r✈✐♥❣ A✹
▲❘❉ ❝❤❛♥♥❡❧ s✇♣ ❛♥❛❧②s✐s
A✷ : na ≤ nr ≤ ns ≤ na+SW A✹ : ❛❝❦ j r❝✈❛❜❧❡ ⇒ j ✐♥ ns−N+1 · · · na+N A✹✳r❤s ✉♣♣❡r ❜♦✉♥❞ ❤♦❧❞s ❡①❛❝t❧② ❛s ✐♥ ❧♦ss② ❝❤❛♥♥❡❧ ❝❛s❡ A✹✳r❤s ❧♦✇❡r ❜♦✉♥❞ ❤♦❧❞s ❛s ❢♦❧❧♦✇s ✶ ❧❡t ❛❝❦ j ❜❡ r❝✈❛❜❧❡ ❛t t✵ ✷ ❛❝❦ j ✇❛s s❡♥t ❛t s♦♠❡ t✶ > t✵ − L / / ✶ ✸
✶ ✶ ✶
✷✱ ❣✉❛r❞✱
✷
✹ ❞✉r✐♥❣
✶ ✵ ✿
✐♥❝r❡❛s❡s ❜② ❛t ♠♦st ✺
✵
✸✱ ✹ ✻
✵
✺✱ ✱
Pr❡s❡r✈✐♥❣ A✹
▲❘❉ ❝❤❛♥♥❡❧ s✇♣ ❛♥❛❧②s✐s
A✷ : na ≤ nr ≤ ns ≤ na+SW A✹ : ❛❝❦ j r❝✈❛❜❧❡ ⇒ j ✐♥ ns−N+1 · · · na+N A✹✳r❤s ✉♣♣❡r ❜♦✉♥❞ ❤♦❧❞s ❡①❛❝t❧② ❛s ✐♥ ❧♦ss② ❝❤❛♥♥❡❧ ❝❛s❡ A✹✳r❤s ❧♦✇❡r ❜♦✉♥❞ ❤♦❧❞s ❛s ❢♦❧❧♦✇s ✶ ❧❡t ❛❝❦ j ❜❡ r❝✈❛❜❧❡ ❛t t✵ ✷ ❛❝❦ j ✇❛s s❡♥t ❛t s♦♠❡ t✶ > t✵ − L / / ✶ ✸ j = nr(t✶) ≥ na(t✶) ≥ ns(t✶) − SW / / ✷✱ ❣✉❛r❞✱ A✷ ✹ ❞✉r✐♥❣
✶ ✵ ✿
✐♥❝r❡❛s❡s ❜② ❛t ♠♦st ✺
✵
✸✱ ✹ ✻
✵
✺✱ ✱
Pr❡s❡r✈✐♥❣ A✹
▲❘❉ ❝❤❛♥♥❡❧ s✇♣ ❛♥❛❧②s✐s
A✷ : na ≤ nr ≤ ns ≤ na+SW A✹ : ❛❝❦ j r❝✈❛❜❧❡ ⇒ j ✐♥ ns−N+1 · · · na+N A✹✳r❤s ✉♣♣❡r ❜♦✉♥❞ ❤♦❧❞s ❡①❛❝t❧② ❛s ✐♥ ❧♦ss② ❝❤❛♥♥❡❧ ❝❛s❡ A✹✳r❤s ❧♦✇❡r ❜♦✉♥❞ ❤♦❧❞s ❛s ❢♦❧❧♦✇s ✶ ❧❡t ❛❝❦ j ❜❡ r❝✈❛❜❧❡ ❛t t✵ ✷ ❛❝❦ j ✇❛s s❡♥t ❛t s♦♠❡ t✶ > t✵ − L / / ✶ ✸ j = nr(t✶) ≥ na(t✶) ≥ ns(t✶) − SW / / ✷✱ ❣✉❛r❞✱ A✷ ✹ ❞✉r✐♥❣ [t✶, t✵]✿ ns ✐♥❝r❡❛s❡s ❜② ❛t ♠♦st L/δ ✺
✵
✸✱ ✹ ✻
✵
✺✱ ✱
Pr❡s❡r✈✐♥❣ A✹
▲❘❉ ❝❤❛♥♥❡❧ s✇♣ ❛♥❛❧②s✐s
A✷ : na ≤ nr ≤ ns ≤ na+SW A✹ : ❛❝❦ j r❝✈❛❜❧❡ ⇒ j ✐♥ ns−N+1 · · · na+N A✹✳r❤s ✉♣♣❡r ❜♦✉♥❞ ❤♦❧❞s ❡①❛❝t❧② ❛s ✐♥ ❧♦ss② ❝❤❛♥♥❡❧ ❝❛s❡ A✹✳r❤s ❧♦✇❡r ❜♦✉♥❞ ❤♦❧❞s ❛s ❢♦❧❧♦✇s ✶ ❧❡t ❛❝❦ j ❜❡ r❝✈❛❜❧❡ ❛t t✵ ✷ ❛❝❦ j ✇❛s s❡♥t ❛t s♦♠❡ t✶ > t✵ − L / / ✶ ✸ j = nr(t✶) ≥ na(t✶) ≥ ns(t✶) − SW / / ✷✱ ❣✉❛r❞✱ A✷ ✹ ❞✉r✐♥❣ [t✶, t✵]✿ ns ✐♥❝r❡❛s❡s ❜② ❛t ♠♦st L/δ ✺ j ≥ ns(t✵) − L/δ − SW / / ✸✱ ✹ ✻
✵
✺✱ ✱
Pr❡s❡r✈✐♥❣ A✹
▲❘❉ ❝❤❛♥♥❡❧ s✇♣ ❛♥❛❧②s✐s
A✷ : na ≤ nr ≤ ns ≤ na+SW A✹ : ❛❝❦ j r❝✈❛❜❧❡ ⇒ j ✐♥ ns−N+1 · · · na+N A✹✳r❤s ✉♣♣❡r ❜♦✉♥❞ ❤♦❧❞s ❡①❛❝t❧② ❛s ✐♥ ❧♦ss② ❝❤❛♥♥❡❧ ❝❛s❡ A✹✳r❤s ❧♦✇❡r ❜♦✉♥❞ ❤♦❧❞s ❛s ❢♦❧❧♦✇s ✶ ❧❡t ❛❝❦ j ❜❡ r❝✈❛❜❧❡ ❛t t✵ ✷ ❛❝❦ j ✇❛s s❡♥t ❛t s♦♠❡ t✶ > t✵ − L / / ✶ ✸ j = nr(t✶) ≥ na(t✶) ≥ ns(t✶) − SW / / ✷✱ ❣✉❛r❞✱ A✷ ✹ ❞✉r✐♥❣ [t✶, t✵]✿ ns ✐♥❝r❡❛s❡s ❜② ❛t ♠♦st L/δ ✺ j ≥ ns(t✵) − L/δ − SW / / ✸✱ ✹ ✻ j ≥ ns(t✵) − N + 1 / / ✺✱ N ≥ SW + RW + L/δ✱ RW > 0
❖✉t❧✐♥❡
♣r♦❣r❡ss s✇♣ ❛♥❛❧②s✐s
❙❧✐❞✐♥❣ ❲✐♥❞♦✇ Pr♦t♦❝♦❧ ❆♥❛❧②s✐s ♦❢ ❙❧✐❞✐♥❣ ❲✐♥❞♦✇ Pr♦t♦❝♦❧ ■♥✈ A✸✕A✹ ❢♦r ❧♦ss② ❝❤❛♥♥❡❧ ■♥✈ A✸✕A✹ ❢♦r ▲❘❉ ❝❤❛♥♥❡❧ Pr♦❣r❡ss ❢♦r ❧♦ss②✴▲❘❉ ❝❤❛♥♥❡❧ ❆✇❛✐t✲str✉❝t✉r❡❞ ❙♦✉r❝❡ ❛♥❞ ❙✐♥❦ Pr♦❣r❛♠s ❉❛t❛ tr❛♥s❢❡r Pr♦t♦❝♦❧ ❛♥❞ Pr♦♦❢
- r❛❝❡❢✉❧✲❝❧♦s✐♥❣ ❉❛t❛ tr❛♥s❢❡r Pr♦t♦❝♦❧
❆❜♦rt❛❜❧❡ ❉❛t❛ tr❛♥s❢❡r Pr♦t♦❝♦❧
❉❡s✐r❡❞ ♣r♦❣r❡ss ♦❢ ❙✇♣
♣r♦❣r❡ss s✇♣ ❛♥❛❧②s✐s
X✷ : (nd = k < ng ❧❡❛❞s✲t♦ nd > k) ❛ss✉♠✐♥❣ ✇❢❛✐r s❡♥❞ ✭♦❢ sbuffns✮ ✇❢❛✐r r❡s❡♥❞ ✭♦❢ sbuffna✮ ✇❢❛✐r s✐♥❦ ✉s❡r r① ✭♦❢ rbuffnd✮ ✇❢❛✐r s♦✉r❝❡ r① ✭♦❢ ♠s❣ ❢r♦♠ ❧♦ss②✴❧r❞ ❝❤❛♥♥❡❧✮ ✇❢❛✐r s✐♥❦ r① ✭♦❢ ♠s❣ ❢r♦♠ ❧♦ss②✴❧r❞ ❝❤❛♥♥❡❧✮ ❧♦ss②✴❧r❞ ❝❤❛♥♥❡❧ ♣r♦❣r❡ss
Pr♦❣r❡ss ♦❢ s❧✐❞✐♥❣ ✇✐♥❞♦✇s
♣r♦❣r❡ss s✇♣ ❛♥❛❧②s✐s
✶
❧❡❛❞s✲t♦ sr❝ r❡s❡♥❞✱ s♥❦ r①✱ sr❝ r①✱ ❝❤❛♥♥❡❧ ♣r♦❣r❡ss
✷
❧❡❛❞s✲t♦ sr❝ r❡s❡♥❞✱ s♥❦ r①✱ ❝❤❛♥♥❡❧ ♣r♦❣r❡ss
✸
❧❡❛❞s✲t♦ s✐♥❦ ✉s❡r r①✱
✷ ✹
❧❡❛❞s✲t♦
✷✱ ✸ ✺
❧❡❛❞s✲t♦
✹✱ ✶ ✻
❧❡❛❞s✲t♦
✺✱ ■♥✈
Pr♦❣r❡ss ♦❢ s❧✐❞✐♥❣ ✇✐♥❞♦✇s
♣r♦❣r❡ss s✇♣ ❛♥❛❧②s✐s
P✶ : na = k < nr ≤ ns ❧❡❛❞s✲t♦ na > k / / sr❝ r❡s❡♥❞✱ s♥❦ r①✱ sr❝ r①✱ ❝❤❛♥♥❡❧ ♣r♦❣r❡ss
✷
❧❡❛❞s✲t♦ sr❝ r❡s❡♥❞✱ s♥❦ r①✱ ❝❤❛♥♥❡❧ ♣r♦❣r❡ss
✸
❧❡❛❞s✲t♦ s✐♥❦ ✉s❡r r①✱
✷ ✹
❧❡❛❞s✲t♦
✷✱ ✸ ✺
❧❡❛❞s✲t♦
✹✱ ✶ ✻
❧❡❛❞s✲t♦
✺✱ ■♥✈
Pr♦❣r❡ss ♦❢ s❧✐❞✐♥❣ ✇✐♥❞♦✇s
♣r♦❣r❡ss s✇♣ ❛♥❛❧②s✐s
P✶ : na = k < nr ≤ ns ❧❡❛❞s✲t♦ na > k / / sr❝ r❡s❡♥❞✱ s♥❦ r①✱ sr❝ r①✱ ❝❤❛♥♥❡❧ ♣r♦❣r❡ss P✷ : (na = k = nr < ns and nr < nd+RW) ❧❡❛❞s✲t♦ nr > k / / sr❝ r❡s❡♥❞✱ s♥❦ r①✱ ❝❤❛♥♥❡❧ ♣r♦❣r❡ss
✸
❧❡❛❞s✲t♦ s✐♥❦ ✉s❡r r①✱
✷ ✹
❧❡❛❞s✲t♦
✷✱ ✸ ✺
❧❡❛❞s✲t♦
✹✱ ✶ ✻
❧❡❛❞s✲t♦
✺✱ ■♥✈
Pr♦❣r❡ss ♦❢ s❧✐❞✐♥❣ ✇✐♥❞♦✇s
♣r♦❣r❡ss s✇♣ ❛♥❛❧②s✐s
P✶ : na = k < nr ≤ ns ❧❡❛❞s✲t♦ na > k / / sr❝ r❡s❡♥❞✱ s♥❦ r①✱ sr❝ r①✱ ❝❤❛♥♥❡❧ ♣r♦❣r❡ss P✷ : (na = k = nr < ns and nr < nd+RW) ❧❡❛❞s✲t♦ nr > k / / sr❝ r❡s❡♥❞✱ s♥❦ r①✱ ❝❤❛♥♥❡❧ ♣r♦❣r❡ss P✸ : (na = k = nr < ns and nr = nd+RW) ❧❡❛❞s✲t♦ nr > k / / s✐♥❦ ✉s❡r r①✱ P✷
✹
❧❡❛❞s✲t♦
✷✱ ✸ ✺
❧❡❛❞s✲t♦
✹✱ ✶ ✻
❧❡❛❞s✲t♦
✺✱ ■♥✈
Pr♦❣r❡ss ♦❢ s❧✐❞✐♥❣ ✇✐♥❞♦✇s
♣r♦❣r❡ss s✇♣ ❛♥❛❧②s✐s
P✶ : na = k < nr ≤ ns ❧❡❛❞s✲t♦ na > k / / sr❝ r❡s❡♥❞✱ s♥❦ r①✱ sr❝ r①✱ ❝❤❛♥♥❡❧ ♣r♦❣r❡ss P✷ : (na = k = nr < ns and nr < nd+RW) ❧❡❛❞s✲t♦ nr > k / / sr❝ r❡s❡♥❞✱ s♥❦ r①✱ ❝❤❛♥♥❡❧ ♣r♦❣r❡ss P✸ : (na = k = nr < ns and nr = nd+RW) ❧❡❛❞s✲t♦ nr > k / / s✐♥❦ ✉s❡r r①✱ P✷ P✹ : na = k = nr < ns ❧❡❛❞s✲t♦ nr > k / / P✷✱ P✸
✺
❧❡❛❞s✲t♦
✹✱ ✶ ✻
❧❡❛❞s✲t♦
✺✱ ■♥✈
Pr♦❣r❡ss ♦❢ s❧✐❞✐♥❣ ✇✐♥❞♦✇s
♣r♦❣r❡ss s✇♣ ❛♥❛❧②s✐s
P✶ : na = k < nr ≤ ns ❧❡❛❞s✲t♦ na > k / / sr❝ r❡s❡♥❞✱ s♥❦ r①✱ sr❝ r①✱ ❝❤❛♥♥❡❧ ♣r♦❣r❡ss P✷ : (na = k = nr < ns and nr < nd+RW) ❧❡❛❞s✲t♦ nr > k / / sr❝ r❡s❡♥❞✱ s♥❦ r①✱ ❝❤❛♥♥❡❧ ♣r♦❣r❡ss P✸ : (na = k = nr < ns and nr = nd+RW) ❧❡❛❞s✲t♦ nr > k / / s✐♥❦ ✉s❡r r①✱ P✷ P✹ : na = k = nr < ns ❧❡❛❞s✲t♦ nr > k / / P✷✱ P✸ P✺ : na = k < ns ❧❡❛❞s✲t♦ na > k / / P✹✱ P✶
✻
❧❡❛❞s✲t♦
✺✱ ■♥✈
Pr♦❣r❡ss ♦❢ s❧✐❞✐♥❣ ✇✐♥❞♦✇s
♣r♦❣r❡ss s✇♣ ❛♥❛❧②s✐s
P✶ : na = k < nr ≤ ns ❧❡❛❞s✲t♦ na > k / / sr❝ r❡s❡♥❞✱ s♥❦ r①✱ sr❝ r①✱ ❝❤❛♥♥❡❧ ♣r♦❣r❡ss P✷ : (na = k = nr < ns and nr < nd+RW) ❧❡❛❞s✲t♦ nr > k / / sr❝ r❡s❡♥❞✱ s♥❦ r①✱ ❝❤❛♥♥❡❧ ♣r♦❣r❡ss P✸ : (na = k = nr < ns and nr = nd+RW) ❧❡❛❞s✲t♦ nr > k / / s✐♥❦ ✉s❡r r①✱ P✷ P✹ : na = k = nr < ns ❧❡❛❞s✲t♦ nr > k / / P✷✱ P✸ P✺ : na = k < ns ❧❡❛❞s✲t♦ na > k / / P✹✱ P✶ P✻ : nr = k < ns ❧❡❛❞s✲t♦ nr > k / / P✺✱ ■♥✈ nr ≥ na
Pr♦❣r❡ss✿ ✉s❡r✲❧❡✈❡❧ ↔ ✇✐♥❞♦✇s
♣r♦❣r❡ss s✇♣ ❛♥❛❧②s✐s
P✼ : (ns = k < ng and ns < na+SW) ❧❡❛❞s✲t♦ ns > k / / sr❝ s❡♥❞ P✽ : (ns = k < ng and ns = na+SW) ❧❡❛❞s✲t♦ (ns = k < ng and ns < na+SW) / / P✺ P✾ : ns = k < ng ❧❡❛❞s✲t♦ ns > k / / P✼✱ P✽ P✶✵ : nr = k < ng ❧❡❛❞s✲t♦ nr > k / / P✾✱ P✻ P✶✶ : nd = k < ng ❧❡❛❞s✲t♦ nd > k / / P✶✵✱ s✐♥❦ ✉s❡r r①
❖✉t❧✐♥❡
s♦✉r❝❡✴s✐♥❦ ❛✇❛✐t
❙❧✐❞✐♥❣ ❲✐♥❞♦✇ Pr♦t♦❝♦❧ ❆♥❛❧②s✐s ♦❢ ❙❧✐❞✐♥❣ ❲✐♥❞♦✇ Pr♦t♦❝♦❧ ❆✇❛✐t✲str✉❝t✉r❡❞ ❙♦✉r❝❡ ❛♥❞ ❙✐♥❦ Pr♦❣r❛♠s ❉❛t❛ tr❛♥s❢❡r Pr♦t♦❝♦❧ ❛♥❞ Pr♦♦❢
- r❛❝❡❢✉❧✲❝❧♦s✐♥❣ ❉❛t❛ tr❛♥s❢❡r Pr♦t♦❝♦❧
❆❜♦rt❛❜❧❡ ❉❛t❛ tr❛♥s❢❡r Pr♦t♦❝♦❧
❈♦rr❡❝t♥❡ss✲♣r❡s❡r✈✐♥❣ tr❛♥s❢♦r♠❛t✐♦♥
s♦✉r❝❡✴s✐♥❦ ❛✇❛✐t
- ✐✈❡♥✿ ❛❧❣♦r✐t❤♠✲❧❡✈❡❧ ♣r♦❣r❛♠ A
✐♥✐t✱ ✈❛rs✱ ❛t♦♠✐❝ r✉❧❡s✱ ❢❛✐r♥❡ss ❢♦r r✉❧❡s
- ♦❛❧✿ ♣r♦❣r❛♠ B t❤❛t ✐♠♣❧❡♠❡♥ts A
✐♥✐t✱ ✈❛rs✱ t❤r❡❛❞s✱ ❛✇❛✐t st❛t❡♠❡♥ts✱ ❢❛✐r♥❡ss ❢♦r t❤r❡❛❞s ❈♦♥str✉❝t ❛s ❢♦❧❧♦✇s ✐♥❝❧✉❞❡ ✲✈❛rs ❡❛❝❤ ✲r✉❧❡ ❛✇❛✐t st❛t❡♠❡♥t ♣r❡s❡r✈❡s ❛❞❞✐t✐♦♥❛❧ ✲st❡♣s ❞♦ ♥♦t ❛✛❡❝t ✲✈❛rs s❛❢❡t② ❛❧❧♦❝❛t❡ ❧♦❝❛❧✴❣✉❡st t❤r❡❛❞s t♦ ❛✇❛✐ts ♣r❡s❡r✈❡s ❢❛✐r♥❡ss ♦❢ ✲r✉❧❡s ❢❛✐r♥❡ss ♦❢ t❤r❡❛❞s ♣r♦❣r❡ss
❈♦rr❡❝t♥❡ss✲♣r❡s❡r✈✐♥❣ tr❛♥s❢♦r♠❛t✐♦♥
s♦✉r❝❡✴s✐♥❦ ❛✇❛✐t
- ✐✈❡♥✿ ❛❧❣♦r✐t❤♠✲❧❡✈❡❧ ♣r♦❣r❛♠ A
✐♥✐t✱ ✈❛rs✱ ❛t♦♠✐❝ r✉❧❡s✱ ❢❛✐r♥❡ss ❢♦r r✉❧❡s
- ♦❛❧✿ ♣r♦❣r❛♠ B t❤❛t ✐♠♣❧❡♠❡♥ts A
✐♥✐t✱ ✈❛rs✱ t❤r❡❛❞s✱ ❛✇❛✐t st❛t❡♠❡♥ts✱ ❢❛✐r♥❡ss ❢♦r t❤r❡❛❞s ❈♦♥str✉❝t B ❛s ❢♦❧❧♦✇s ✐♥❝❧✉❞❡ A✲✈❛rs ❡❛❝❤ A✲r✉❧❡ → ❛✇❛✐t st❛t❡♠❡♥t / / ♣r❡s❡r✈❡s ❛❞❞✐t✐♦♥❛❧ B✲st❡♣s ❞♦ ♥♦t ❛✛❡❝t A✲✈❛rs / / s❛❢❡t② ❛❧❧♦❝❛t❡ ❧♦❝❛❧✴❣✉❡st t❤r❡❛❞s t♦ ❛✇❛✐ts ♣r❡s❡r✈❡s ❢❛✐r♥❡ss ♦❢ ✲r✉❧❡s ❢❛✐r♥❡ss ♦❢ t❤r❡❛❞s ♣r♦❣r❡ss
❈♦rr❡❝t♥❡ss✲♣r❡s❡r✈✐♥❣ tr❛♥s❢♦r♠❛t✐♦♥
s♦✉r❝❡✴s✐♥❦ ❛✇❛✐t
- ✐✈❡♥✿ ❛❧❣♦r✐t❤♠✲❧❡✈❡❧ ♣r♦❣r❛♠ A
✐♥✐t✱ ✈❛rs✱ ❛t♦♠✐❝ r✉❧❡s✱ ❢❛✐r♥❡ss ❢♦r r✉❧❡s
- ♦❛❧✿ ♣r♦❣r❛♠ B t❤❛t ✐♠♣❧❡♠❡♥ts A
✐♥✐t✱ ✈❛rs✱ t❤r❡❛❞s✱ ❛✇❛✐t st❛t❡♠❡♥ts✱ ❢❛✐r♥❡ss ❢♦r t❤r❡❛❞s ❈♦♥str✉❝t B ❛s ❢♦❧❧♦✇s ✐♥❝❧✉❞❡ A✲✈❛rs ❡❛❝❤ A✲r✉❧❡ → ❛✇❛✐t st❛t❡♠❡♥t / / ♣r❡s❡r✈❡s ❛❞❞✐t✐♦♥❛❧ B✲st❡♣s ❞♦ ♥♦t ❛✛❡❝t A✲✈❛rs / / s❛❢❡t② ❛❧❧♦❝❛t❡ ❧♦❝❛❧✴❣✉❡st t❤r❡❛❞s t♦ ❛✇❛✐ts / / ♣r❡s❡r✈❡s ❢❛✐r♥❡ss ♦❢ A✲r✉❧❡s → ❢❛✐r♥❡ss ♦❢ t❤r❡❛❞s / / ♣r♦❣r❡ss
❙♦✉r❝❡ ♣r♦❣r❛♠ ✕ ✶
s♦✉r❝❡✴s✐♥❦ ❛✇❛✐t
♣r♦❣r❛♠ Source(aL, aR, xL, N, SW, RW) ♣❛r❛♠❡t❡rs aL: ❧♦❝❛❧ ❛❞❞r✱ aR: r❡♠♦t❡ ❛❞❞r✱ xL: ❝❤❛♥♥❡❧ ❛❝❝❡ss s✐❞ ❝♦♥st❛♥ts✿ DAT✱ ACK✱ RTO / / ❞❛t❛ ♠s❣✱ ❛❝❦ ♠s❣✱ t✐♠❡♦✉t ❢✉♥❝t✐♦♥s ✐♥♣✉t mysid.tx✿ ❣❡t ❞❜ ❢r♦♠ ✉s❡r doTxDat✿ s❡♥❞ ♥s✱ r❡s❡♥❞ ❦ / / ❝❛❧❧s xL.tx doRxAck✿ r❝✈ ❛❝❦ ♠s❣ / / ❝❛❧❧s xL.rx ♠❛✐♥ ✱ r❡t✉r♥ ♠②s✐❞
❙♦✉r❝❡ ♣r♦❣r❛♠ ✕ ✶
s♦✉r❝❡✴s✐♥❦ ❛✇❛✐t
♣r♦❣r❛♠ Source(aL, aR, xL, N, SW, RW) ♣❛r❛♠❡t❡rs aL: ❧♦❝❛❧ ❛❞❞r✱ aR: r❡♠♦t❡ ❛❞❞r✱ xL: ❝❤❛♥♥❡❧ ❛❝❝❡ss s✐❞ ❝♦♥st❛♥ts✿ DAT✱ ACK✱ RTO / / ❞❛t❛ ♠s❣✱ ❛❝❦ ♠s❣✱ t✐♠❡♦✉t ❢✉♥❝t✐♦♥s ✐♥♣✉t mysid.tx✿ ❣❡t ❞❜ ❢r♦♠ ✉s❡r doTxDat✿ s❡♥❞ ♥s✱ r❡s❡♥❞ ❦ / / ❝❛❧❧s xL.tx doRxAck✿ r❝✈ ❛❝❦ ♠s❣ / / ❝❛❧❧s xL.rx ♠❛✐♥ ng, ns, na ← 0✱ sbuff ← [] timer ← OFF / / OFF, 0, 1, · · · tSrcTx ← startThread ( doTxDat() ) tSrcRx ← startThread ( doRxAck() ) r❡t✉r♥ ♠②s✐❞
❙♦✉r❝❡ ♣r♦❣r❛♠ ✕ ✷
s♦✉r❝❡✴s✐♥❦ ❛✇❛✐t
input mysid.tx ( aR, db) await (true) sbuffng ← db; ng++; return;
❙♦✉r❝❡ ♣r♦❣r❛♠ ✕ ✷
s♦✉r❝❡✴s✐♥❦ ❛✇❛✐t
input mysid.tx ( aR, db) await (true) sbuffng ← db; ng++; return; function doTxDat() while (true)
- await ( (timer = OFF
and ns < min(ng, na+SW))
- r
(timer > RTO and na < ns) ) ns ← min(ng, na+SW); for (j in na..ns−1) xL.tx ( aR, [DAT, sbuffj, mod(j,N)]); timer ← 0; / / (re)start timer
❙♦✉r❝❡ ♣r♦❣r❛♠ ✕ ✸
s♦✉r❝❡✴s✐♥❦ ❛✇❛✐t
function void doRxAck() while (true)
- Seq msg ← xL.rx();
ia {msg in Tuple<ACK, 0..N−1>} await (true) int j ← na + mod ( msg[1] − na, N); if (na < j ≤ ns) for (k in na..j−1) sbuff.remove(k); na ← j; if (na = ns) timer ← OFF; / / stop timer ❛t♦♠✐❝✐t② ❛ss✉♠♣t✐♦♥✿ ❛✇❛✐ts ♣r♦❣r❡ss ❛ss✉♠♣t✐♦♥✿ ✇❡❛❦ ❢❛✐r♥❡ss ♦❢ t❤r❡❛❞s
❙♦✉r❝❡ ♣r♦❣r❛♠✿ ✐♠♣r♦✈✐♥❣ ♣❡r❢♦r♠❛♥❝❡
s♦✉r❝❡✴s✐♥❦ ❛✇❛✐t
❙❡♥❞ ♥❡✇ ❞❛t❛ ❜❧♦❝❦s ❛s❛♣✱ ✐♥st❡❛❞ ♦❢ ✉♣♦♥ t✐♠❡♦✉t ❘❡❞✉❝❡ ❡①t❡♥t ♦❢ ❜❧♦❝❦✐♥❣ ❛t ❛✇❛✐ts ❝♦♥❝✉rr❡♥t ❛❝❝❡ss t♦ sbuff ❞✉♣❧✐❝❛t❡ ❝♦✉♥t❡rs · · · ❆❞❛♣t RTO t♦ ♠❡❛s✉r❡❞ r♦✉♥❞tr✐♣ t✐♠❡ / / ❝♦♥❣❡st✐♦♥ ❝♦♥tr♦❧
❙✐♥❦ ♣r♦❣r❛♠ ✕ ✶
s♦✉r❝❡✴s✐♥❦ ❛✇❛✐t
♣r♦❣r❛♠ Sink(aL, aR, xL, N, SW, RW) ♣❛r❛♠❡t❡rs aL: ❧♦❝❛❧ ❛❞❞r✱ aR: r❡♠♦t❡ ❛❞❞r✱ xL: ❝❤❛♥♥❡❧ ❛❝❝❡ss s✐❞ ❝♦♥st❛♥ts✿ DAT✱ ACK / / ❞❛t❛ ♠s❣✱ ❛❝❦ ♠s❣ ❢✉♥❝t✐♦♥s ✐♥♣✉t mysid.rx✿ ❞❡❧✐✈❡r ❞❜ t♦ ✉s❡r doRxDatTxAck✿ r❝✈ ❞❛t❛✱ s❡♥❞ ❛❝❦ / / ❝❛❧❧s xL.rx✱ xL.tx ♠❛✐♥ ✱ r❡t✉r♥ ♠②s✐❞
❙✐♥❦ ♣r♦❣r❛♠ ✕ ✶
s♦✉r❝❡✴s✐♥❦ ❛✇❛✐t
♣r♦❣r❛♠ Sink(aL, aR, xL, N, SW, RW) ♣❛r❛♠❡t❡rs aL: ❧♦❝❛❧ ❛❞❞r✱ aR: r❡♠♦t❡ ❛❞❞r✱ xL: ❝❤❛♥♥❡❧ ❛❝❝❡ss s✐❞ ❝♦♥st❛♥ts✿ DAT✱ ACK / / ❞❛t❛ ♠s❣✱ ❛❝❦ ♠s❣ ❢✉♥❝t✐♦♥s ✐♥♣✉t mysid.rx✿ ❞❡❧✐✈❡r ❞❜ t♦ ✉s❡r doRxDatTxAck✿ r❝✈ ❞❛t❛✱ s❡♥❞ ❛❝❦ / / ❝❛❧❧s xL.rx✱ xL.tx ♠❛✐♥ nd, nr ← 0✱ rbuff ← [] tSnkRx ← startThread ( doRxDatTxAck() ) r❡t✉r♥ ♠②s✐❞
❙✐♥❦ ♣r♦❣r❛♠ ✕ ✷
s♦✉r❝❡✴s✐♥❦ ❛✇❛✐t
input mysid.rx ()
- await (nd < nr)
Seq db ← rbuffnd; rbuff.remove(nd); nd++; return db;
❙✐♥❦ ♣r♦❣r❛♠ ✕ ✸
s♦✉r❝❡✴s✐♥❦ ❛✇❛✐t
function doRxDatTxAck() while (true)
- Seq msg ← xL.rx();
ia {msg in Tuple<DAT, 0..N−1, Seq>} await (true) int j ← nr + mod ( msg[2] − nr, N); if ((nr ≤ j < nd+RW) and (not j in rbuff.keys)) rbuffj ← msg[1]; while (nr in rbuff.keys) nr++; xL.tx ( aR, [ACK, mod(nr,N)]) ❛t♦♠✐❝✐t② ❛ss✉♠♣t✐♦♥✿ ❛✇❛✐ts ♣r♦❣r❡ss ❛ss✉♠♣t✐♦♥✿ ✇❡❛❦ ❢❛✐r♥❡ss ♦❢ t❤r❡❛❞s
❖✉t❧✐♥❡
❞t♣
❙❧✐❞✐♥❣ ❲✐♥❞♦✇ Pr♦t♦❝♦❧ ❆♥❛❧②s✐s ♦❢ ❙❧✐❞✐♥❣ ❲✐♥❞♦✇ Pr♦t♦❝♦❧ ❆✇❛✐t✲str✉❝t✉r❡❞ ❙♦✉r❝❡ ❛♥❞ ❙✐♥❦ Pr♦❣r❛♠s ❉❛t❛ tr❛♥s❢❡r Pr♦t♦❝♦❧ ❛♥❞ Pr♦♦❢
- r❛❝❡❢✉❧✲❝❧♦s✐♥❣ ❉❛t❛ tr❛♥s❢❡r Pr♦t♦❝♦❧
❆❜♦rt❛❜❧❡ ❉❛t❛ tr❛♥s❢❡r Pr♦t♦❝♦❧
Pr♦❣r❛♠ Dtp ♦✈❡r✈✐❡✇
❞t♣
DtpDist✿ ♠❡r❣❡ t✇♦ SwpDist✱ ❜✉t ♦♥❡ ❧♦ss②✴❧r❞ ❝❤❛♥♥❡❧ Dtp✿ Source ✰ Sink✱ ❜✉t s❤❛r❡ ❝❤❛♥♥❡❧ ❛❝❝❡ss ♣❛r❛♠s✱ ✐❛✱ ❝♦♥st❛♥ts✿ s❛♠❡ ❛s sr❝✱ s♥❦ ❙♦✉r❝❡ ✱ ✱ ✱ ✱ ✿ t❤r❡❛❞ ✿ t❤r❡❛❞ ❙✐♥❦ ✱ ✱ ✿ t❤r❡❛❞ ✱ ✿ t❤r❡❛❞ ✱ r❝✈ ❞❛t❛✴❛❝❦ ♠s❣✱ ❞♦ ✴
Pr♦❣r❛♠ Dtp ♦✈❡r✈✐❡✇
❞t♣
DtpDist✿ ♠❡r❣❡ t✇♦ SwpDist✱ ❜✉t ♦♥❡ ❧♦ss②✴❧r❞ ❝❤❛♥♥❡❧ Dtp✿ Source ✰ Sink✱ ❜✉t s❤❛r❡ ❝❤❛♥♥❡❧ ❛❝❝❡ss ♣❛r❛♠s✱ ✐❛✱ ❝♦♥st❛♥ts✿ / / s❛♠❡ ❛s sr❝✱ s♥❦ ❙♦✉r❝❡ ✱ ✱ ✱ ✱ ✿ t❤r❡❛❞ ✿ t❤r❡❛❞ ❙✐♥❦ ✱ ✱ ✿ t❤r❡❛❞ ✱ ✿ t❤r❡❛❞ ✱ r❝✈ ❞❛t❛✴❛❝❦ ♠s❣✱ ❞♦ ✴
Pr♦❣r❛♠ Dtp ♦✈❡r✈✐❡✇
❞t♣
DtpDist✿ ♠❡r❣❡ t✇♦ SwpDist✱ ❜✉t ♦♥❡ ❧♦ss②✴❧r❞ ❝❤❛♥♥❡❧ Dtp✿ Source ✰ Sink✱ ❜✉t s❤❛r❡ ❝❤❛♥♥❡❧ ❛❝❝❡ss ♣❛r❛♠s✱ ✐❛✱ ❝♦♥st❛♥ts✿ / / s❛♠❡ ❛s sr❝✱ s♥❦ ❙♦✉r❝❡ ng✱ ns✱ na✱sbuff✱ timer mysid.tx() doTxDat()✿ t❤r❡❛❞ tSrcTx / / await{.. xL.tx ..} doRxAck()✿ t❤r❡❛❞ tSrcRx / / xL.rx ❙✐♥❦ ✱ ✱ ✿ t❤r❡❛❞ ✱ ✿ t❤r❡❛❞ ✱ r❝✈ ❞❛t❛✴❛❝❦ ♠s❣✱ ❞♦ ✴
Pr♦❣r❛♠ Dtp ♦✈❡r✈✐❡✇
❞t♣
DtpDist✿ ♠❡r❣❡ t✇♦ SwpDist✱ ❜✉t ♦♥❡ ❧♦ss②✴❧r❞ ❝❤❛♥♥❡❧ Dtp✿ Source ✰ Sink✱ ❜✉t s❤❛r❡ ❝❤❛♥♥❡❧ ❛❝❝❡ss ♣❛r❛♠s✱ ✐❛✱ ❝♦♥st❛♥ts✿ / / s❛♠❡ ❛s sr❝✱ s♥❦ ❙♦✉r❝❡ ng✱ ns✱ na✱sbuff✱ timer mysid.tx() doTxDat()✿ t❤r❡❛❞ tSrcTx / / await{.. xL.tx ..} doRxAck()✿ t❤r❡❛❞ tSrcRx / / xL.rx ❙✐♥❦ nd✱ nr✱ rbuff mysid.rx doRxDatTxAck✿ t❤r❡❛❞ tSnkRx / / xL.rx✱ await{.. xL.tx ..} ✿ t❤r❡❛❞ ✱ r❝✈ ❞❛t❛✴❛❝❦ ♠s❣✱ ❞♦ ✴
Pr♦❣r❛♠ Dtp ♦✈❡r✈✐❡✇
❞t♣
DtpDist✿ ♠❡r❣❡ t✇♦ SwpDist✱ ❜✉t ♦♥❡ ❧♦ss②✴❧r❞ ❝❤❛♥♥❡❧ Dtp✿ Source ✰ Sink✱ ❜✉t s❤❛r❡ ❝❤❛♥♥❡❧ ❛❝❝❡ss ♣❛r❛♠s✱ ✐❛✱ ❝♦♥st❛♥ts✿ / / s❛♠❡ ❛s sr❝✱ s♥❦ ❙♦✉r❝❡ ng✱ ns✱ na✱sbuff✱ timer mysid.tx() doTxDat()✿ t❤r❡❛❞ tSrcTx / / await{.. xL.tx ..} doRxAck()✿ t❤r❡❛❞ tSrcRx / / xL.rx ❙✐♥❦ nd✱ nr✱ rbuff mysid.rx doRxDatTxAck✿ t❤r❡❛❞ tSnkRx / / xL.rx✱ await{.. xL.tx ..} doRxDatAck()✿ t❤r❡❛❞ tRx / / xL.rx✱ await{.. xL.tx ..} r❝✈ ❞❛t❛✴❛❝❦ ♠s❣✱ ❞♦ doRxAck ✴ doRxDatTxAck
Pr♦❣r❛♠ Dtp ✕ ✶
❞t♣
♣❛r❛♠s✿ aL✱ aR✱ xL✱ N✱ SW✱ RW ♠❛✐♥ ng✱ ns✱ na✱ sbuff✱ timer nd✱ nr✱ rbuff tSrcTx ← startThread ( doTxDat() ) tSnkRx ← startThread ( doRxDatAck() ) input mysid.tx ( aR, db) <as in Source()> input mysid.rx () <as in Sink()> function doTxDat() <as in Source()>
Pr♦❣r❛♠ Dtp ✕ ✷
❞t♣
function doRxDatAck() while (true)
- Seq msg ← xL.rx();
ia {msg in union ( Tuple<ACK, 0..N−1>, Tuple<DAT, 0..N−1, Seq> } if (msg[0] = ACK) <Source.doRxAck() update> else if (msg[0] = ACK) <Sink.doRxDatTxAck() update> ❛t♦♠✐❝✐t② ❛ss✉♠♣t✐♦♥✿ ❛✇❛✐ts ♣r♦❣r❡ss ❛ss✉♠♣t✐♦♥✿ ✇❡❛❦ ❢❛✐r♥❡ss ♦❢ t❤r❡❛❞s
Pr♦✈✐♥❣ t❤❛t ❉t♣❉✐st ✐♠♣❧❡♠❡♥ts ❋✐❢♦ ❈❤❛♥♥❡❧
❞t♣
❖❜t❛✐♥ ✜❢♦ ❝❤❛♥♥❡❧ ✐♥✈❡rs❡ ♦♥❧② t✇♦ ❛❞❞r❡ss❡s✱ s♦ ♥♦ ✐♥t❡r♥❛❧ ♥♦♥❞❡t❡r♠✐♥✐s♠ ❉❡✜♥❡ ♣r♦❣r❛♠ Z ♦❢ DtpDist ❛♥❞ ✜❢♦ ❝❤❛♥♥❡❧ ✐♥✈❡rs❡ ❉❡✜♥❡ ❛ss❡rt✐♦♥s t❤❛t Z ♠✉st s❛t✐s❢② Pr♦♦❢ t❤❛t Z s❛t✐s✜❡s t❤❡♠ ❢♦❧❧♦✇s ❢r♦♠ ❙✇♣ ♣r♦♣❡rt✐❡s ✜❢♦✲❝❤❛♥♥❡❧ ✐♥✈❡rs❡ txha1,a2 = ❛✉① ✈❛r Dtp(a1).dbh s❡❡ t❡①t ❢♦r ❞❡t❛✐❧s
❖✉t❧✐♥❡
❣r❛❝❡❢✉❧ ❞t♣
❙❧✐❞✐♥❣ ❲✐♥❞♦✇ Pr♦t♦❝♦❧ ❆♥❛❧②s✐s ♦❢ ❙❧✐❞✐♥❣ ❲✐♥❞♦✇ Pr♦t♦❝♦❧ ❆✇❛✐t✲str✉❝t✉r❡❞ ❙♦✉r❝❡ ❛♥❞ ❙✐♥❦ Pr♦❣r❛♠s ❉❛t❛ tr❛♥s❢❡r Pr♦t♦❝♦❧ ❛♥❞ Pr♦♦❢
- r❛❝❡❢✉❧✲❝❧♦s✐♥❣ ❉❛t❛ tr❛♥s❢❡r Pr♦t♦❝♦❧
❆❜♦rt❛❜❧❡ ❉❛t❛ tr❛♥s❢❡r Pr♦t♦❝♦❧
❆❞❞✐♥❣ ❣r❛❝❡❢✉❧ ❝❧♦s✐♥❣ t♦ ❉t♣
❣r❛❝❡❢✉❧ ❞t♣
❆❧❧♦✇ ✉s❡r t♦ ❝❧♦s❡ t❤❡ ❞❛t❛ tr❛♥s❢❡r ♦♣❡♥ → ❝❧♦s✐♥❣ → ❝❧♦s❡❞ ❛❢t❡r ❝❛❧❧✿ ✉s❡r ❝❛♥♥♦t tx✱ ❜✉t ❝❛♥ rx r❡t✉r♥s ✇❤❡♥ r❡♠♦t❡ ✉s❡r ❛❧s♦ ❤❛s r❡q✉❡st❡❞ ❝❧♦s✐♥❣ ❛❧❧ ❞❛t❛ ✐♥ ❜♦t❤ ❞✐r❡❝t✐♦♥s ❤❛✈❡ ❜❡❡♥ ❞❡❧✐✈❡r❡❞ t♦ ✉s❡rs ◆❡✇ ♠❡ss❛❣❡s ✿ ✐♥❞✐❝❛t❡s ❝❧♦s✐♥❣ ✿ ❛❝❦ t♦ ◆❡✇ ✢❛❣s✱ ❛❧❧ ✐♥✐t✐❛❧❧② ❢❛❧s❡✿
❆❞❞✐♥❣ ❣r❛❝❡❢✉❧ ❝❧♦s✐♥❣ t♦ ❉t♣
❣r❛❝❡❢✉❧ ❞t♣
❆❧❧♦✇ ✉s❡r t♦ ❝❧♦s❡ t❤❡ ❞❛t❛ tr❛♥s❢❡r ♦♣❡♥ → ❝❧♦s✐♥❣ → ❝❧♦s❡❞ ❛❢t❡r ❝❛❧❧✿ ✉s❡r ❝❛♥♥♦t tx✱ ❜✉t ❝❛♥ rx r❡t✉r♥s ✇❤❡♥ r❡♠♦t❡ ✉s❡r ❛❧s♦ ❤❛s r❡q✉❡st❡❞ ❝❧♦s✐♥❣ ❛❧❧ ❞❛t❛ ✐♥ ❜♦t❤ ❞✐r❡❝t✐♦♥s ❤❛✈❡ ❜❡❡♥ ❞❡❧✐✈❡r❡❞ t♦ ✉s❡rs ◆❡✇ ♠❡ss❛❣❡s [FIN]✿ ✐♥❞✐❝❛t❡s ❝❧♦s✐♥❣ [FINACK]✿ ❛❝❦ t♦ [FIN] ◆❡✇ ✢❛❣s✱ ❛❧❧ ✐♥✐t✐❛❧❧② ❢❛❧s❡✿ finRcvd finAckRcvd closed
- r❛❝❡❢✉❧✲❝❧♦s✐♥❣ ❉t♣
✕ ✶
❣r❛❝❡❢✉❧ ❞t♣
✐♥♣✉t mysid.close() ✇❛✐t ❢♦r na = ng❀ / / ❛❧❧ ♦✉t❣♦✐♥❣ ❞❛t❛ ❛❝❦❡❞ r❡♣❡❛t❡❞❧② s❡♥❞ [FIN] ✉♥t✐❧ finAckRcvd ✐s tr✉❡❀ ✇❛✐t ❢♦r finRcvd t♦ ❜❡ tr✉❡❀ ✇❛✐t ❢♦r nd = nr❀ / / ♥♦ ♠♦r❡ ✐♥❝♦♠✐♥❣ ❞❛t❛ s❡t closed t♦ tr✉❡❀ r❡t✉r♥❀
- r❛❝❡❢✉❧✲❝❧♦s✐♥❣ ❉t♣
✕ ✷
❣r❛❝❡❢✉❧ ❞t♣
❆✉❣♠❡♥t doRxDatAck() t♦ ❤❛♥❞❧❡ FIN ❛♥❞ FINACK ❈❤❛♥❣❡ ♣❛rt ❛❢t❡r ✏msg ← xL.rx()✑ t♦✿ ✐❢ ✭♥♦t ❝❧♦s❡❞✮ ✐❢ msg ✐s DAT ♦r ACK✿ ❤❛♥❞❧❡ ❛s ❜❡❢♦r❡ ✐❢ msg ✐s FIN✿ s❡t finRcvd✱ s❡♥❞ [FINACK] ✐❢ msg ✐s FINACK✿ s❡t finAckRcvd ❡❧s❡ ✐❢ ✭❝❧♦s❡❞ ❛♥❞ msg ✐s [FIN]✮ s❡♥❞ [FINACK] ▼♦❞✐❢② r❡t✉r♥ ✐❢ ✐♥❝♦♠✐♥❣ ❞❛t❛ r❡t✉r♥ ✐❢ ❛♥❞ ♥♦ ♠♦r❡ ✐♥❝♦♠✐♥❣ ❞❛t❛
- r❛❝❡❢✉❧✲❝❧♦s✐♥❣ ❉t♣
✕ ✷
❣r❛❝❡❢✉❧ ❞t♣
❆✉❣♠❡♥t doRxDatAck() t♦ ❤❛♥❞❧❡ FIN ❛♥❞ FINACK ❈❤❛♥❣❡ ♣❛rt ❛❢t❡r ✏msg ← xL.rx()✑ t♦✿ ✐❢ ✭♥♦t ❝❧♦s❡❞✮ ✐❢ msg ✐s DAT ♦r ACK✿ ❤❛♥❞❧❡ ❛s ❜❡❢♦r❡ ✐❢ msg ✐s FIN✿ s❡t finRcvd✱ s❡♥❞ [FINACK] ✐❢ msg ✐s FINACK✿ s❡t finAckRcvd ❡❧s❡ ✐❢ ✭❝❧♦s❡❞ ❛♥❞ msg ✐s [FIN]✮ s❡♥❞ [FINACK] ▼♦❞✐❢② mysid.rx r❡t✉r♥ [0,data] ✐❢ nr > nd / / ✐♥❝♦♠✐♥❣ ❞❛t❛ r❡t✉r♥ [−1] ✐❢ finRcvd ❛♥❞ nr = nd / / ♥♦ ♠♦r❡ ✐♥❝♦♠✐♥❣ ❞❛t❛
- r❛❝❡❢✉❧✲❝❧♦s✐♥❣ ❉t♣❉✐st✭j✱ k✮
❣r❛❝❡❢✉❧ ❞t♣
❙❛❢❡t② ♣r♦♣❡rt✐❡s ✐❢ j.rx r❡t✉r♥s [0,data]✿ j.drxh ◦ [data] ♣r❡✜①✲♦❢ k.dtxh ✐❢ j.rx r❡t✉r♥s [−1] ♦r j ✐s ❝❧♦s❡❞✿ j.drxh = k.dtxh ❛♥❞ k ✐s ❝❧♦s✐♥❣ ♦r ❝❧♦s❡❞✳ Pr♦❣r❡ss ♣r♦♣❡rt✐❡s j.tx ♦♥❣♦✐♥❣ ❧❡❛❞s✲t♦ j.tx r❡t✉r♥s j.rx ♦♥❣♦✐♥❣✱ j.drxh = k.dtxh ❧❡❛❞s✲t♦ j.rx r❡t✉r♥s j.rx ♦♥❣♦✐♥❣✱ j.drxh = k.dtxh✱ k ✐s ❝❧♦s✐♥❣ ♦r ❝❧♦s❡❞ ❧❡❛❞s✲t♦ j.rx r❡t✉r♥s j ❝❧♦s✐♥❣✱ k ✐s ❝❧♦s✐♥❣ ♦r ❝❧♦s❡❞ ❧❡❛❞s✲t♦ j ❜❡❝♦♠❡s ❝❧♦s❡❞ ♦r j.rx ♥♦t ♦♥❣♦✐♥❣
❖✉t❧✐♥❡
❛❜♦rt❛❜❧❡ ❞t♣
❙❧✐❞✐♥❣ ❲✐♥❞♦✇ Pr♦t♦❝♦❧ ❆♥❛❧②s✐s ♦❢ ❙❧✐❞✐♥❣ ❲✐♥❞♦✇ Pr♦t♦❝♦❧ ❆✇❛✐t✲str✉❝t✉r❡❞ ❙♦✉r❝❡ ❛♥❞ ❙✐♥❦ Pr♦❣r❛♠s ❉❛t❛ tr❛♥s❢❡r Pr♦t♦❝♦❧ ❛♥❞ Pr♦♦❢
- r❛❝❡❢✉❧✲❝❧♦s✐♥❣ ❉❛t❛ tr❛♥s❢❡r Pr♦t♦❝♦❧
❆❜♦rt❛❜❧❡ ❉❛t❛ tr❛♥s❢❡r Pr♦t♦❝♦❧
❆❜♦rt❛❜❧❡ ❉t♣
❛❜♦rt❛❜❧❡ ❞t♣
- r❛❝❡❢✉❧✲❝❧♦s✐♥❣ t❡r♠✐♥❛t❡s ❝♦♥♥❡❝t✐♦♥