DEV//UNIT
← АлгоритмыReal-world Development

PageRank

Важность = голоса входящих ссылок с затуханием: ядро Google.

время O(iter · E)память O(V)уровень: средний
Что происходит сейчас0/0
Нажмите Play, чтобы запустить сценарий
TypeScript — активная строка подсвечена шагом
1function pageRank(
2 edges: Array<[from: string, to: string]>,
3 d = 0.85, // затухание: 15% веса телепорт
4 iters = 20,
5) {
6 const pages = uniquePages(edges)
7 let rank = new Map(pages.map((p) => [p, 1 / pages.length]))
8
9 for (let it = 0; it < iters; it++) {
10 const next = new Map(pages.map((p) => [p, (1 - d) / pages.length]))
11 for (const [from, to] of edges) {
12 const out = edges.filter(([f]) => f === from).length
13 next.set(to, next.get(to)! + d * rank.get(from)! / out)
14 // голос = доля своей важности, делённая на число ссылок
15 }
16 rank = next
17 }
18
19 return rank
20}

Проблема

Важность = голоса входящих ссылок с затуханием: ядро Google.

Что вы видите

Страница отдаёт долю своего веса каждой исходящей; телепорт 15%.

Как это работает

Собственный вектор матрицы переходов, найденный степенным методом. Сходится за десятки итераций; d=0.85 балансирует ссылочный вес и телепорт.

Пошаговый разбор

  1. 01

    Инициализация

    Всем поровну.

  2. 02

    Голосование

    Вес/число ссылок.

  3. 03

    Сходимость

    Веса стабилизируются.

Complexity и ограничения

time
O(iter · E)
space
O(V)

Сложность см. в шапке страницы.

Edge cases

  • Пустой вход

    Корректная тривиальная обработка.

  • Вырожденный случай

    Минимум работы — сразу ответ.

Где встречается в реальности

Google

Ранжирование (основа).

Рекомендации

Важность товаров.

Анализ графов

Инфлюенсеры, цитирования.

Связанные алгоритмы

Shorts

«1998: два студента перевернули поиск»

Тот же сценарий StepSequence в вертикальной композиции — с safe zones и записью WebM ниже на странице.

Shorts 9:16

Вертикальная композиция строится той же последовательностью шагов, что и страница: safe zones отмечены пунктиром (там живёт UI платформ), биты сценария подсвечиваются по прогрессу. Кнопка записи сохраняет WebM — детерминированная StepSequence даёт воспроизводимый ролик без монтажа.

1998: два студента перевернули поиск
Нажмите Play
Бит 1/6 · 0–2 с
Hook
script-setup.ru/algorithms/pagerank