Алгоритм потоковой передачи для подсчета треугольников на графике
-
29-09-2020 - |
Вопрос
Как описано в ссылке, алгоритм (см. Внизу) предполагает выводить оценку $ \ Hat T $ для # из треугольников в данном графике $ g= (v, e) $ , обозначает $ T $ . Написано, что «это может быть легко показано», что $$ E [\ Hat T]= T $$ Но, к сожалению, я не вижу этого. Попытка анализировать $ E [\ Hat T] $ , думаю следующим образом:
- .
-
в строке 1, обозначим вероятность случайным образом (и равномерно) Выберите край, который является частью треугольника, как $ p $ . Поскольку треугольники могут поделиться краями, $$ \ frac t m \ le p \ le \ frac {3t} m $$ Например, рассмотрим следующий случай:
Центральный треугольник не добавляет новых ребер на количество возможностей для выбора ребра, которая является частью треугольника. Вы можете представить себе другую конфигурацию, в которой есть только 3 внешние треугольники, и они не касаются друг друга (в этой конфигурации, мы не увидим центральный 4-й треугольник). В обоих случаях ((случай I) 4 треугольниках, как видно на изображении; (Case II) 3 неразмерных треугольников), вероятность выбрать край, которая является частью треугольника, составляет 1 (хотя количество треугольников отличается). < / P >.
-
в строке 2, вероятность, чтобы равномерно выбирать на случайной вершине, которая «закрывает треугольник» с краем с предыдущего шага, точно $ \ FRAC 1 {N -2} $ .
Поэтому я вижу только что
$$ T \ le e [\ hat t] \ le 3t $$
Что я скучаю?
Другой вопрос, который у меня есть относительно строки 3. Поток заказывается, и мы сначала выбираем случайное преимущество $ (u, v) $ (строка 1), Затем случайная вершина $ W $ w $ из $ v \ backslash \ {u, v \} $ (линия 2). Я чувствую, что анализ должен учитывать, что в строке 3 мы проверяем, стоит ли $ (u, w) $ и $ ( v, w) $ появляются после $ (u, v) $ в потоке. Может быть, после того, как я поймете ответ на мой первый вопрос, это будет понятнее.
<Сильный> алгоритм:
- Выберите краю $ (u, v) $ равномерно на случайном из потока.
- Выберите вершину $ W $ равномерно у случайных из $ v \ backslash \ {u, v \} $ < / span>
- Если $ (u, w) $ и $ (v, w) $ появится после < SPAN CLASS= «Математический контейнер»> $ (u, v) $ в потоке, затем Выход $ m (N-2) $ . Else, Выход $ 0 $ .
Кроме того, хотя я не видел написано, я считаю, что есть предположение, что $ V $ известно впереди.
Ссылка: поток данных Лекция лекций проф. Amit Chakrabarti, раздел "15.3 Подсчет треугольника", httplow noreferrer"> https://www.c.dartmouth.edu/~ac/teach/data-streams-lecnotes.pdf
С наилучшими пожеланиями
Решение
Пусть $ (u, v, w) $ Будьте определенным треугольником в потоке и предположим, что край $ (u, v) $ появляется первым. Вероятность, которую мы выбрали $ (u, v) $ на первом шаге, - 1 / m $ . Вероятность, которую мы выбрали $ W $ на втором этапе, - $ 1 / (N-2) $ . Следовательно, вероятность, которую мы выбрали треугольник $ (u, v, w) $ - 1 $ / [M (N-2 )] $ . Обозначим это событие по $ e_ {u, v, w} $ .
Если $ (u_1, v_1, w_1) $ и $ (u_2, v_2, w_2) $ - это два разных треугольника, которые события $ e_ {u_1, v_1, w_1} $ и $ e_ {u_2, v_2, W_2} $ несерьезно (обратите внимание, что треугольники не должны быть несешенными). Поэтому, если есть $ t $ Trangles, то вероятность того, что мы выбрали один из них, именно $ t / [m ( N-2)] $ . Следовательно, ожидаемый выход алгоритма является точно $ T $ .