Распределённые алгоритмы — различия между версиями

Материал из Кафедра математической кибернетики
Перейти к: навигация, поиск
 
(не показаны 42 промежуточных версий 1 участника)
Строка 3: Строка 3:
 
Обязательный курс для студентов группы 521. Курс читает [[Подымов Владислав Васильевич|В. В. Подымов]].
 
Обязательный курс для студентов группы 521. Курс читает [[Подымов Владислав Васильевич|В. В. Подымов]].
  
Актуальность информации: весенний семестр 2023/2024 учебного года.
+
Актуальность информации: весенний семестр 2025/2026 учебного года.
  
 
= Слайды =
 
= Слайды =
Строка 21: Строка 21:
 
[[Media: DA_VP_06.pdf| Блок 6.]] Основные соглашения о псевдокоде.
 
[[Media: DA_VP_06.pdf| Блок 6.]] Основные соглашения о псевдокоде.
  
''Слайды будут появляться по мере чтения лекций.''
+
[[Media: DA_VP_07.pdf| Блок 7.]] Адресованные сообщения.
  
== Семинары ==
+
''Материалы обновляются по мере проведения занятий''
  
[[Media: DA_VP_S01.pdf| Семинар 1.]] Псевдокод, системы переходов и справедливость на примере передачи данных с обеспечением надёжности.
+
=== Прошлогодние ===
  
''Слайды будут появляться по мере чтения лекций.''
+
[[Media: DA_VP_08.pdf| Блок 8.]] Симметричный протокол раздвижного окна.
  
== Прошлогодние слайды ==
+
[[Media: DA_VP_09.pdf| Блок 9.]] Как обосновывать корректность распределённых алгоритмов. Свойства безопасности и живости. Свойства корректности симметричного протокола раздвижного окна.
  
[[Media: DAS_VP_01.pdf| Блок 1.]] О чём этот курс. Литература.
+
[[Media: DA_VP_10.pdf| Блок 10.]] Безопасность симметричного протокола раздвижного окна.
  
[[Media: DAS_VP_02.pdf| Блок 2.]] Вступление: несколько слов о распределённых системах, проблемы организации их вычислений, особенности распределённых алгоритмов.
+
[[Media: DA_VP_11.pdf| Блок 11.]] Живость симметричного протокола раздвижного окна.
  
[[Media: DAS_VP_03.pdf| Блок 3.]] Модель распределённой системы: система переходов системы, система переходов узла, распределённый алгоритм, асинхронный и синхронный обмен сообщениями.
+
[[Media: DA_VP_12.pdf| Блок 12.]] Особенности реализации симметричного протокола раздвижного окна. Протокол альтернирующих битов.
  
[[Media: DAS_VP_04.pdf| Блок 4.]] Справедливые вычисления.
+
[[Media: DA_VP_13.pdf| Блок 13.]] Напоминание о графах.
  
[[Media: DAS_VP_05.pdf| Блок 5.]] Иллюстрация трудности разработки распределённых алгоритмов
+
[[Media: DA_VP_14.pdf| Блок 14.]] Типовые допущения и ограничения.
  
[[Media: DAS_VP_06.pdf| Блок 6.]] Причинно-следственный порядок событий.
+
[[Media: DA_VP_15.pdf| Блок 15.]] Коммуникационная и битовая сложности.
  
[[Media: DAS_VP_07.pdf| Блок 7.]] Логические часы.
+
[[Media: DA_VP_16.pdf| Блок 16.]] Задача маршрутизации.
  
[[Media: DAS_VP_08.pdf| Блок 8.]] Дополнительные допущения. Сложность.
+
[[Media: DA_VP_17.pdf| Блок 17.]] Основные допущения в задаче маршрутизации. Маршрутизация и свойства графов.
  
[[Media: DAS_VP_09.pdf| Блок 9.]] Симметричный протокол раздвижного окна.
+
[[Media: DA_VP_18.pdf| Блок 18.]] Алгоритм Флойда-Уоршелла.
  
[[Media: DAS_VP_10.pdf| Блок 10.]] Как обосновывать корректность распределённых алгоритмов. Свойства безопасности и живости.
+
[[Media: DA_VP_19.pdf| Блок 19.]] Алгоритм Туэга
  
[[Media: DAS_VP_11.pdf| Блок 11.]] Корректность симметричного протокола раздвижного окна.
+
[[Media: DA_VP_20.pdf| Блок 20.]] Алгоритм Чанди-Мисры.
  
[[Media: DAS_VP_12.pdf| Блок 12.]] Особенности реализации симметричного протокола раздвижного окна.
+
[[Media: DA_VP_21.pdf| Блок 21.]] Диаграммы событий. Причинно-следственный порядок событий.
  
[[Media: DAS_VP_13.pdf| Блок 13.]] Коммуникационный протокол с таймерами.
+
[[Media: DA_VP_22.pdf| Блок 22.]] Логические часы.
  
[[Media: DAS_VP_14.pdf| Блок 14.]] Корректность протокола с таймерами.
+
[[Media: DA_VP_23.pdf| Блок 23.]] Сложность распределённого алгоритма по времени.
  
[[Media: DAS_VP_15.pdf| Блок 15.]] Задача маршрутизации.
+
[[Media: DA_VP_24.pdf| Блок 24.]] Волновые алгоритмы: основные определения и свойства.
  
[[Media: DAS_VP_16.pdf| Блок 16.]] Основные допущения о весах в задаче маршрутизации. Маршрутизация и свойства графов.
+
[[Media: DA_VP_25.pdf| Блок 25.]] Кольцевой волновой алгоритм.
  
[[Media: DAS_VP_17.pdf| Блок 17.]] Построение оптимальных путей для всех пар вершин. Алгоритм Флойда-Уоршелла.
+
[[Media: DA_VP_26.pdf| Блок 26.]] Древесный волновой алгоритм.
  
[[Media: DAS_VP_18.pdf| Блок 18.]] Алгоритм маршрутизации Туэга.
+
[[Media: DA_VP_27.pdf| Блок 27.]] Алгоритм эха.
  
[[Media: DAS_VP_19.pdf| Блок 19.]] Алгоритм маршрутизации Мерлина-Сигалла.
+
[[Media: DA_VP_28.pdf| Блок 28.]] Распределённые алгоритмы обхода.
  
[[Media: DAS_VP_20.pdf| Блок 20.]] Алгоритм маршрутизации Чанди-Мисры.
+
[[Media: DA_VP_29.pdf| Блок 29.]] Алгоритм Тарри.
  
[[Media: DAS_VP_21.pdf| Блок 21.]] Волновые алгоритмы: основные определения и свойства.
+
[[Media: DA_VP_30.pdf| Блок 30.]] Классический обход в глубину.
  
[[Media: DAS_VP_22.pdf| Блок 22.]] Применение волновых алгоритмов: PIF, SYN, INF.
+
[[Media: DA_VP_31.pdf| Блок 31.]] Алгоритм Авербаха.
  
[[Media: DAS_VP_23.pdf| Блок 23.]] Примеры волновых алгоритмов: кольцевой алгоритм, древесный алгоритм, алгоритм эха.
+
[[Media: DA_VP_32.pdf| Блок 32.]] Задача избрания лидера: основные определения и допущения, избрание лидера INF-алгоритмом.
  
[[Media: DAS_VP_24.pdf| Блок 24.]] Примеры волновых алгоритмов: фазовый алгоритм.
+
[[Media: DA_VP_33.pdf| Блок 33.]] Задача избрания лидера: эффект угасания.
  
[[Media: DAS_VP_25.pdf| Блок 25.]] Примеры волновых алгоритмов: алгоритм Финна.
+
[[Media: DA_VP_34.pdf| Блок 34.]] Избрание лидера в дереве.
  
[[Media: DAS_VP_26.pdf| Блок 26.]] Распределённые алгоритмы обхода. Алгоритм Тарри. Классический распределённый обход в глубину.
+
[[Media: DA_VP_35.pdf| Блок 35.]] Избрание лидера в кольце: алгоритм Ле-Ланна, алгоритм Ченя-Робертса.
  
[[Media: DAS_VP_27.pdf| Блок 27.]] Распределённый обход в глубину: алгоритм Авербаха.
+
[[Media: DA_VP_36.pdf| Блок 36.]] Задача избрания лидера: нижние оценки.
  
[[Media: DAS_VP_28.pdf| Блок 28.]] Алгоритмы избрания лидера: основные определения и допущения, волновое избрание лидера.
+
[[Media: DA_VP_37.pdf| Блок 37.]] Избрание лидера и построение остовного дерева: алгоритм Галлагера-Хамблета-Спиры (GHS).
  
[[Media: DAS_VP_29.pdf| Блок 29.]] Избрание лидера в дереве.
+
[[Media: DA_VP_38.pdf| Блок 38.]] Задача сохранения снимка сети.
  
[[Media: DAS_VP_30.pdf| Блок 30.]] Избрание лидера в кольце: алгоритм Ле-Ланна, алгоритм Ченя-Робертса.
+
[[Media: DA_VP_39.pdf| Блок 39.]] Алгоритм Чанди-Лэмпорта.
 +
 
 +
[[Media: DA_VP_40.pdf| Блок 40.]] Алгоритм Лаи-Янга.
 +
 
 +
[[Media: DA_VP_41.pdf| Блок 41.]] Отказоустойчивые алгоритмы. Модели неисправностей. Задачи приниятия решения.
 +
 
 +
[[Media: DA_VP_42.pdf| Блок 42.]] Задача консенсуса.
 +
 
 +
[[Media: DA_VP_43.pdf| Блок 43.]] Паксос.
 +
 
 +
[[Media: DA_VP_44.pdf| Блок 44.]] Задача выявления конца вычислений.
 +
 
 +
[[Media: DA_VP_45.pdf| Блок 45.]] Выявление конца вычислений: алгоритм Дейкстры-Шолтена.
 +
 
 +
[[Media: DA_VP_46.pdf| Блок 46.]] Выявление конца вычислений: алгоритм Шави-Франчеза.
 +
 
 +
[[Media: DA_VP_47.pdf| Блок 47.]] Выявление конца вычислений: алгоритм возвращения кредита.
 +
 
 +
''Слайды будут появляться по мере чтения лекций.''
 +
 
 +
== Семинары ==
 +
 
 +
''Материалы обновляются по мере проведения занятий''
 +
 
 +
=== Прошлогодние ===
 +
 
 +
[[Media: DA_VP_S01.pdf| Семинар 1.]] Псевдокод, системы переходов и справедливость на примере передачи данных с обеспечением надёжности.
  
[[Media: DAS_VP_31.pdf| Блок 31.]] Избрание лидера: эффект угасания.
+
[[Media: DA_VP_S02.pdf| Семинар 2.]] Свойства безопасности и живости.
  
[[Media: DAS_VP_32.pdf| Блок 32.]] Избрание лидера: нижние оценки.
+
[[Media: DA_VP_S04.pdf| Семинар 4.]] Вычисление таблиц маршрутизации. Коммуникационная и битовая сложности.
  
[[Media: DAS_VP_33.pdf| Блок 33.]] Избрание лидера: алгоритм Галлагера-Хамблета-Спиры (GHS).
+
[[Media: DA_VP_S05.pdf| Семинар 5.]] Алгоритмы маршрутизации.
  
[[Media: DAS_VP_34.pdf| Блок 34.]] Задача сохранения снимка сети.
+
[[Media: DA_VP_S06.pdf| Семинар 6.]] Сложность по времени.
  
[[Media: DAS_VP_35.pdf| Блок 35.]] Сохранение снимка сети: алгоритм Чанди-Лэмпорта.
+
[[Media: DA_VP_S07.pdf| Семинар 7.]] Приложения волновых алгоритмов.
  
[[Media: DAS_VP_36.pdf| Блок 36.]] Сохранение снимка сети: алгоритм Лаи-Янга.
+
= Экзамен =
  
[[Media: DAS_VP_37.pdf| Блок 37.]] Задача обнаружения завершения вычислений.
+
Экзамен проводится письменно, длительность - 100 минут.
 +
Вариант экзамена содержит 5 задач такого же характера, как задачи домашних заданий в семестре.
  
[[Media: DAS_VP_38.pdf| Блок 38.]] Обнаружение завершения вычислений: алгоритм Дейкстры-Шолтена.
+
Каждая задача оценивается по шкале от 0 до 100 баллов.
 +
В оценке задачи учитываются следующие характеристики решения:
 +
* Полнота - учтены все детали, разобраны все случаи и т.п.
 +
* Корректность - все утверждения в решении правильны.
 +
* Строгость - решение написано грамотно, в том числе математически грамотно.
 +
Средний балл по всем задачам преобразуется в оценку так: 80-100 - отлично, 60-79 - хорошо, 40-59 - удовлетворительно, менее 40 - неудовлетворительно.
  
[[Media: DAS_VP_39.pdf| Блок 39.]] Обнаружение завершения вычислений: алгоритм Шави-Франчеза.
+
Можно пользоваться лекциями, книгами, конспектами.
 +
Нельзя пользоваться никакими иными неодобренными источниками.
 +
Имейте в виду, что времени на решение задач даётся не очень много, поэтому использование материалов на экзамене не заменяет подготовку к нему.
  
[[Media: DAS_VP_40.pdf| Блок 40.]] Обнаружение завершения вычислений: алгоритм возвращения кредита.
+
= Домашние задания =
  
[[Media: DAS_VP_41.pdf| Блок 41.]] Отказоустойчивые алгоритмы. Модели неисправностей. Задачи принятия решения.
+
Желающие облегчить экзамен (в том числе избежать его - получить автомат) могут выполнять домашние задания во время семестра.
  
[[Media: DAS_VP_42.pdf| Блок 42.]] Задача консенсуса.
+
Каждому семинару отвечает своё домашнее задание.
 +
Оно оценивается по шкале от 0 до 100 баллов.
 +
В домашнем задании может быть несколько задач, баллы распределяются пропорционально трудности задач.
 +
В оценке каждой задачи учитываются те же характеристики, что и в оценке задач экзамена.
 +
Кроме того, выдаётся штраф за слишком долгое решение:
 +
* Решение сдано до конца воскресенья, следующего за семинаром - штрафа нет.
 +
* Каждая дополнительная неделя даёт штраф -6 баллов.
 +
* После окончания семестра домашние задания не принимаются, за исключением явно оговорённых случаев.
  
[[Media: DAS_VP_43.pdf| Блок 43.]] Консенсус: Паксос.
+
Средний балл по всем домашним заданиям преобразуется в оценку автоматом так же, как на экзамене.
 +
Если не получена желаемая оценка автоматом, то баллы, набранные за домашние задания, особым образом конвертируются в частично или полностью зачтённые задачи экзамена. Каждое решённое домашнее задание принесёт пользу на экзамене независимо от того, получена ли желаемая оценка автоматом.
  
 
= Литература =
 
= Литература =

Текущая версия на 18:37, 7 февраля 2026


Обязательный курс для студентов группы 521. Курс читает В. В. Подымов.

Актуальность информации: весенний семестр 2025/2026 учебного года.

Слайды

Лекции

Блок 1. О чём этот курс. Литература.

Блок 2. Вступление: несколько слов о распределённых системах, проблемы организации их вычислений, особенности распределённых алгоритмов.

Блок 3. Иллюстрация трудности разработки распределённых алгоритмов: начало.

Блок 4. Системы переходов.

Блок 5. Справедливые вычисления систем.

Блок 6. Основные соглашения о псевдокоде.

Блок 7. Адресованные сообщения.

Материалы обновляются по мере проведения занятий

Прошлогодние

Блок 8. Симметричный протокол раздвижного окна.

Блок 9. Как обосновывать корректность распределённых алгоритмов. Свойства безопасности и живости. Свойства корректности симметричного протокола раздвижного окна.

Блок 10. Безопасность симметричного протокола раздвижного окна.

Блок 11. Живость симметричного протокола раздвижного окна.

Блок 12. Особенности реализации симметричного протокола раздвижного окна. Протокол альтернирующих битов.

Блок 13. Напоминание о графах.

Блок 14. Типовые допущения и ограничения.

Блок 15. Коммуникационная и битовая сложности.

Блок 16. Задача маршрутизации.

Блок 17. Основные допущения в задаче маршрутизации. Маршрутизация и свойства графов.

Блок 18. Алгоритм Флойда-Уоршелла.

Блок 19. Алгоритм Туэга

Блок 20. Алгоритм Чанди-Мисры.

Блок 21. Диаграммы событий. Причинно-следственный порядок событий.

Блок 22. Логические часы.

Блок 23. Сложность распределённого алгоритма по времени.

Блок 24. Волновые алгоритмы: основные определения и свойства.

Блок 25. Кольцевой волновой алгоритм.

Блок 26. Древесный волновой алгоритм.

Блок 27. Алгоритм эха.

Блок 28. Распределённые алгоритмы обхода.

Блок 29. Алгоритм Тарри.

Блок 30. Классический обход в глубину.

Блок 31. Алгоритм Авербаха.

Блок 32. Задача избрания лидера: основные определения и допущения, избрание лидера INF-алгоритмом.

Блок 33. Задача избрания лидера: эффект угасания.

Блок 34. Избрание лидера в дереве.

Блок 35. Избрание лидера в кольце: алгоритм Ле-Ланна, алгоритм Ченя-Робертса.

Блок 36. Задача избрания лидера: нижние оценки.

Блок 37. Избрание лидера и построение остовного дерева: алгоритм Галлагера-Хамблета-Спиры (GHS).

Блок 38. Задача сохранения снимка сети.

Блок 39. Алгоритм Чанди-Лэмпорта.

Блок 40. Алгоритм Лаи-Янга.

Блок 41. Отказоустойчивые алгоритмы. Модели неисправностей. Задачи приниятия решения.

Блок 42. Задача консенсуса.

Блок 43. Паксос.

Блок 44. Задача выявления конца вычислений.

Блок 45. Выявление конца вычислений: алгоритм Дейкстры-Шолтена.

Блок 46. Выявление конца вычислений: алгоритм Шави-Франчеза.

Блок 47. Выявление конца вычислений: алгоритм возвращения кредита.

Слайды будут появляться по мере чтения лекций.

Семинары

Материалы обновляются по мере проведения занятий

Прошлогодние

Семинар 1. Псевдокод, системы переходов и справедливость на примере передачи данных с обеспечением надёжности.

Семинар 2. Свойства безопасности и живости.

Семинар 4. Вычисление таблиц маршрутизации. Коммуникационная и битовая сложности.

Семинар 5. Алгоритмы маршрутизации.

Семинар 6. Сложность по времени.

Семинар 7. Приложения волновых алгоритмов.

Экзамен

Экзамен проводится письменно, длительность - 100 минут. Вариант экзамена содержит 5 задач такого же характера, как задачи домашних заданий в семестре.

Каждая задача оценивается по шкале от 0 до 100 баллов. В оценке задачи учитываются следующие характеристики решения:

  • Полнота - учтены все детали, разобраны все случаи и т.п.
  • Корректность - все утверждения в решении правильны.
  • Строгость - решение написано грамотно, в том числе математически грамотно.

Средний балл по всем задачам преобразуется в оценку так: 80-100 - отлично, 60-79 - хорошо, 40-59 - удовлетворительно, менее 40 - неудовлетворительно.

Можно пользоваться лекциями, книгами, конспектами. Нельзя пользоваться никакими иными неодобренными источниками. Имейте в виду, что времени на решение задач даётся не очень много, поэтому использование материалов на экзамене не заменяет подготовку к нему.

Домашние задания

Желающие облегчить экзамен (в том числе избежать его - получить автомат) могут выполнять домашние задания во время семестра.

Каждому семинару отвечает своё домашнее задание. Оно оценивается по шкале от 0 до 100 баллов. В домашнем задании может быть несколько задач, баллы распределяются пропорционально трудности задач. В оценке каждой задачи учитываются те же характеристики, что и в оценке задач экзамена. Кроме того, выдаётся штраф за слишком долгое решение:

  • Решение сдано до конца воскресенья, следующего за семинаром - штрафа нет.
  • Каждая дополнительная неделя даёт штраф -6 баллов.
  • После окончания семестра домашние задания не принимаются, за исключением явно оговорённых случаев.

Средний балл по всем домашним заданиям преобразуется в оценку автоматом так же, как на экзамене. Если не получена желаемая оценка автоматом, то баллы, набранные за домашние задания, особым образом конвертируются в частично или полностью зачтённые задачи экзамена. Каждое решённое домашнее задание принесёт пользу на экзамене независимо от того, получена ли желаемая оценка автоматом.

Литература

  1. G. Tel. Introduction to Distributed Algorithms. Cambridge University Press. 2000. (русск. пер. Ж. Тель. Введение в распределенные алгоритмы, изд-во МЦНМО, 2009 г., 616 с.)
  2. W. Fokkink. Distributed Algorithms: Intuitive Approach. The MIT Press. 2013. (русск. пер. У. Фоккинк. Распределенные алгоритмв: интуитивный подход., изд-во Питер, 2017 г., 231 с.)
  3. N. Lynch. Distributed Algorithms. Morgan Kaufmann, 1996, 906 pp.