Lista na ćwiczenia

Transkrypt

Lista na ćwiczenia
Algorytmy Internetu
Lista 11
Zadanie 1 (2 pkt.) Rozważmy następujący algorytm dla problemu potwierdzania pakietów (TCP
acknowledgement). Algorytm będzie ustawiać budzik z alarmem na pewien czas w przyszłości
i wysyłać potwierdzenie wszystkich otrzymanych i jeszcze niepotwierdzonych pakietów w momencie włączenia się alarmu. Na początku alarm nie jest ustawiony. W momencie t, w którym
nadchodzi pakiet, algorytm kasuje obecny alarm i ustawia alarm na czas t + γ/k, gdzie k jest
liczbą niepotwierdzonych pakietów (łącznie z tym, który właśnie nadszedł w chwili t), zaś γ jest
kosztem wysłania potwierdzenia.
Pokaż, że istnieje ciąg wejściowy składający się z n pakietów, dla którego konkurencyjność tego
√
algorytmu wynosi co najmniej Ω( n).
Zadanie 2 (4 pkt.) Pokaż, że konkurencyjność każdego deterministycznego algorytmu online dla
problemu potwierdzania pakietów wynosi co najmniej 2, nawet jeśli algorytm w każdej chwili
zna czasy przyjścia L najbliższych pakietów, gdzie L jest pewną stałą.
Zadanie 3 (4 pkt.) W tym zadaniu rozważamy wariant problemu TCP acknowledgement na drzewie. Pokaż, że konkurencyjność przedstawionego na wykładzie algorytmu Rent-or-Buy jest co
najmniej Ω(log α/ log log α) gdzie α = w(T ) jest całkowitą wagą drzewa.
Wskazówka: rozważ drzewo dwupoziomowe o krawędzi od korzenia o wadze k 2k+1 i k liściach
połączonych z wierzchołkiem wewnętrznym krawędziami o koszcie k 2k . Skonstruuj takie wejście,
dla którego Rent-Or-Buy wysyła pakiety z poszczególnych liści osobno.
Marcin Bieńkowski