Графовые алгоритмы

Book description

Каждую секунду во всем мире собирается и динамически обновляется огром­ный объем информации. Графовые алгоритмы, которые основаны на матема­тике, специально разработанной для изучения взаимосвязей между данными, помогают разобраться в этих гигантских объемах. И, что особенно важно в наши дни, они улучшают контекстную информацию для искусственного интеллекта.Эта книга представляет собой практическое руководство по началу работы с графовыми алгоритмами. В начале описания каждой категории алгоритмов приводится таблица, которая поможет быстро выбрать нужный алгоритм и ознакомиться с примерами его использования.Издание предназначено для разработчиков и специалистов по анализу дан­ных. Для изучения материала книги желателен опыт использования платформ Apache Spark™ или Neo4j, но она пригодится и для изучения более общих поня­тий теории графов, независимо от выбора графовых технологий.

Table of contents

  1. Графовые алгоритмы_обложка
  2. Графовые алгоритмы_165_235_макет_out.pdf (1/11)
  3. Графовые алгоритмы_165_235_макет_out.pdf (2/11)
  4. Графовые алгоритмы_165_235_макет_out.pdf (3/11)
  5. Графовые алгоритмы_165_235_макет_out.pdf (4/11)
  6. Графовые алгоритмы_165_235_макет_out.pdf (5/11)
  7. Графовые алгоритмы_165_235_макет_out.pdf (6/11)
  8. Графовые алгоритмы_165_235_макет_out.pdf (7/11)
  9. Графовые алгоритмы_165_235_макет_out.pdf (8/11)
  10. Графовые алгоритмы_165_235_макет_out.pdf (9/11)
  11. Графовые алгоритмы_165_235_макет_out.pdf (10/11)
  12. Графовые алгоритмы_165_235_макет_out.pdf (11/11)
    1. TDDneed
    2. Предисловие (1/11)
    3. Предисловие (2/11)
    4. Предисловие (3/11)
    5. Предисловие (4/11)
    6. Предисловие (5/11)
    7. Предисловие (6/11)
    8. Предисловие (7/11)
    9. Предисловие (8/11)
    10. Предисловие (9/11)
    11. Предисловие (10/11)
    12. Предисловие (11/11)
    13. Вступительное слово рецензента (1/11)
    14. Вступительное слово рецензента (2/11)
    15. Вступительное слово рецензента (3/11)
    16. Вступительное слово рецензента (4/11)
    17. Вступительное слово рецензента (5/11)
    18. Вступительное слово рецензента (6/11)
    19. Вступительное слово рецензента (7/11)
    20. Вступительное слово рецензента (8/11)
    21. Вступительное слово рецензента (9/11)
    22. Вступительное слово рецензента (10/11)
    23. Вступительное слово рецензента (11/11)
    24. Глава 1 (1/11)
    25. Глава 1 (2/11)
    26. Глава 1 (3/11)
    27. Глава 1 (4/11)
    28. Глава 1 (5/11)
    29. Глава 1 (6/11)
    30. Глава 1 (7/11)
    31. Глава 1 (8/11)
    32. Глава 1 (9/11)
    33. Глава 1 (10/11)
    34. Глава 1 (11/11)
    35. Введение (1/11)
    36. Введение (2/11)
    37. Введение (3/11)
    38. Введение (4/11)
    39. Введение (5/11)
    40. Введение (6/11)
    41. Введение (7/11)
    42. Введение (8/11)
    43. Введение (9/11)
    44. Введение (10/11)
    45. Введение (11/11)
      1. Что такое графы? (1/11)
      2. Что такое графы? (2/11)
      3. Что такое графы? (3/11)
      4. Что такое графы? (4/11)
      5. Что такое графы? (5/11)
      6. Что такое графы? (6/11)
      7. Что такое графы? (7/11)
      8. Что такое графы? (8/11)
      9. Что такое графы? (9/11)
      10. Что такое графы? (10/11)
      11. Что такое графы? (11/11)
      12. Что такое графовые алгоритмы и анализ графов? (1/11)
      13. Что такое графовые алгоритмы и анализ графов? (2/11)
      14. Что такое графовые алгоритмы и анализ графов? (3/11)
      15. Что такое графовые алгоритмы и анализ графов? (4/11)
      16. Что такое графовые алгоритмы и анализ графов? (5/11)
      17. Что такое графовые алгоритмы и анализ графов? (6/11)
      18. Что такое графовые алгоритмы и анализ графов? (7/11)
      19. Что такое графовые алгоритмы и анализ графов? (8/11)
      20. Что такое графовые алгоритмы и анализ графов? (9/11)
      21. Что такое графовые алгоритмы и анализ графов? (10/11)
      22. Что такое графовые алгоритмы и анализ графов? (11/11)
      23. Обработка графов, базы данных, запросы и алгоритмы (1/11)
      24. Обработка графов, базы данных, запросы и алгоритмы (2/11)
      25. Обработка графов, базы данных, запросы и алгоритмы (3/11)
      26. Обработка графов, базы данных, запросы и алгоритмы (4/11)
      27. Обработка графов, базы данных, запросы и алгоритмы (5/11)
      28. Обработка графов, базы данных, запросы и алгоритмы (6/11)
      29. Обработка графов, базы данных, запросы и алгоритмы (7/11)
      30. Обработка графов, базы данных, запросы и алгоритмы (8/11)
      31. Обработка графов, базы данных, запросы и алгоритмы (9/11)
      32. Обработка графов, базы данных, запросы и алгоритмы (10/11)
      33. Обработка графов, базы данных, запросы и алгоритмы (11/11)
        1. OLTP и OLAP
      34. Почему мы должны изучать графовые алгоритмы? (1/11)
      35. Почему мы должны изучать графовые алгоритмы? (2/11)
      36. Почему мы должны изучать графовые алгоритмы? (3/11)
      37. Почему мы должны изучать графовые алгоритмы? (4/11)
      38. Почему мы должны изучать графовые алгоритмы? (5/11)
      39. Почему мы должны изучать графовые алгоритмы? (6/11)
      40. Почему мы должны изучать графовые алгоритмы? (7/11)
      41. Почему мы должны изучать графовые алгоритмы? (8/11)
      42. Почему мы должны изучать графовые алгоритмы? (9/11)
      43. Почему мы должны изучать графовые алгоритмы? (10/11)
      44. Почему мы должны изучать графовые алгоритмы? (11/11)
      45. Где и когда применяется анализ графов? (1/11)
      46. Где и когда применяется анализ графов? (2/11)
      47. Где и когда применяется анализ графов? (3/11)
      48. Где и когда применяется анализ графов? (4/11)
      49. Где и когда применяется анализ графов? (5/11)
      50. Где и когда применяется анализ графов? (6/11)
      51. Где и когда применяется анализ графов? (7/11)
      52. Где и когда применяется анализ графов? (8/11)
      53. Где и когда применяется анализ графов? (9/11)
      54. Где и когда применяется анализ графов? (10/11)
      55. Где и когда применяется анализ графов? (11/11)
      56. Заключение (1/11)
      57. Заключение (2/11)
      58. Заключение (3/11)
      59. Заключение (4/11)
      60. Заключение (5/11)
      61. Заключение (6/11)
      62. Заключение (7/11)
      63. Заключение (8/11)
      64. Заключение (9/11)
      65. Заключение (10/11)
      66. Заключение (11/11)
    46. Глава 2 (1/11)
    47. Глава 2 (2/11)
    48. Глава 2 (3/11)
    49. Глава 2 (4/11)
    50. Глава 2 (5/11)
    51. Глава 2 (6/11)
    52. Глава 2 (7/11)
    53. Глава 2 (8/11)
    54. Глава 2 (9/11)
    55. Глава 2 (10/11)
    56. Глава 2 (11/11)
    57. Теория и концепции графов (1/11)
    58. Теория и концепции графов (2/11)
    59. Теория и концепции графов (3/11)
    60. Теория и концепции графов (4/11)
    61. Теория и концепции графов (5/11)
    62. Теория и концепции графов (6/11)
    63. Теория и концепции графов (7/11)
    64. Теория и концепции графов (8/11)
    65. Теория и концепции графов (9/11)
    66. Теория и концепции графов (10/11)
    67. Теория и концепции графов (11/11)
      1. Терминология (1/11)
      2. Терминология (2/11)
      3. Терминология (3/11)
      4. Терминология (4/11)
      5. Терминология (5/11)
      6. Терминология (6/11)
      7. Терминология (7/11)
      8. Терминология (8/11)
      9. Терминология (9/11)
      10. Терминология (10/11)
      11. Терминология (11/11)
      12. Типы и структуры графов (1/11)
      13. Типы и структуры графов (2/11)
      14. Типы и структуры графов (3/11)
      15. Типы и структуры графов (4/11)
      16. Типы и структуры графов (5/11)
      17. Типы и структуры графов (6/11)
      18. Типы и структуры графов (7/11)
      19. Типы и структуры графов (8/11)
      20. Типы и структуры графов (9/11)
      21. Типы и структуры графов (10/11)
      22. Типы и структуры графов (11/11)
        1. Случайные, локализованные и безмасштабные сети
      23. Разновидности графов (1/11)
      24. Разновидности графов (2/11)
      25. Разновидности графов (3/11)
      26. Разновидности графов (4/11)
      27. Разновидности графов (5/11)
      28. Разновидности графов (6/11)
      29. Разновидности графов (7/11)
      30. Разновидности графов (8/11)
      31. Разновидности графов (9/11)
      32. Разновидности графов (10/11)
      33. Разновидности графов (11/11)
        1. Связные и несвязные графы
        2. Невзвешенные и взвешенные графы
        3. Ненаправленные и ориентированные графы
        4. Ациклические и циклические графы
        5. Разреженные и плотные графы
        6. Однокомпонентные, двудольные и k-дольные графы
      34. Типы графовых алгоритмов (1/11)
      35. Типы графовых алгоритмов (2/11)
      36. Типы графовых алгоритмов (3/11)
      37. Типы графовых алгоритмов (4/11)
      38. Типы графовых алгоритмов (5/11)
      39. Типы графовых алгоритмов (6/11)
      40. Типы графовых алгоритмов (7/11)
      41. Типы графовых алгоритмов (8/11)
      42. Типы графовых алгоритмов (9/11)
      43. Типы графовых алгоритмов (10/11)
      44. Типы графовых алгоритмов (11/11)
        1. Поиск пути
        2. Определение центральности
        3. Обнаружение сообщества
      45. Заключение (1/11)
      46. Заключение (2/11)
      47. Заключение (3/11)
      48. Заключение (4/11)
      49. Заключение (5/11)
      50. Заключение (6/11)
      51. Заключение (7/11)
      52. Заключение (8/11)
      53. Заключение (9/11)
      54. Заключение (10/11)
      55. Заключение (11/11)
    68. Глава 3 (1/11)
    69. Глава 3 (2/11)
    70. Глава 3 (3/11)
    71. Глава 3 (4/11)
    72. Глава 3 (5/11)
    73. Глава 3 (6/11)
    74. Глава 3 (7/11)
    75. Глава 3 (8/11)
    76. Глава 3 (9/11)
    77. Глава 3 (10/11)
    78. Глава 3 (11/11)
    79. Графовые платформы и обработка (1/11)
    80. Графовые платформы и обработка (2/11)
    81. Графовые платформы и обработка (3/11)
    82. Графовые платформы и обработка (4/11)
    83. Графовые платформы и обработка (5/11)
    84. Графовые платформы и обработка (6/11)
    85. Графовые платформы и обработка (7/11)
    86. Графовые платформы и обработка (8/11)
    87. Графовые платформы и обработка (9/11)
    88. Графовые платформы и обработка (10/11)
    89. Графовые платформы и обработка (11/11)
      1. Графовые платформы и особенности обработки (1/11)
      2. Графовые платформы и особенности обработки (2/11)
      3. Графовые платформы и особенности обработки (3/11)
      4. Графовые платформы и особенности обработки (4/11)
      5. Графовые платформы и особенности обработки (5/11)
      6. Графовые платформы и особенности обработки (6/11)
      7. Графовые платформы и особенности обработки (7/11)
      8. Графовые платформы и особенности обработки (8/11)
      9. Графовые платформы и особенности обработки (9/11)
      10. Графовые платформы и особенности обработки (10/11)
      11. Графовые платформы и особенности обработки (11/11)
        1. Подходы к выбору платформы
        2. Подходы к обработке данных
      12. Объединяющие платформы (1/11)
      13. Объединяющие платформы (2/11)
      14. Объединяющие платформы (3/11)
      15. Объединяющие платформы (4/11)
      16. Объединяющие платформы (5/11)
      17. Объединяющие платформы (6/11)
      18. Объединяющие платформы (7/11)
      19. Объединяющие платформы (8/11)
      20. Объединяющие платформы (9/11)
      21. Объединяющие платформы (10/11)
      22. Объединяющие платформы (11/11)
        1. Выбор платформы
        2. Apache Spark
        3. Графовая платформа Neo4j
      23. Заключение (1/11)
      24. Заключение (2/11)
      25. Заключение (3/11)
      26. Заключение (4/11)
      27. Заключение (5/11)
      28. Заключение (6/11)
      29. Заключение (7/11)
      30. Заключение (8/11)
      31. Заключение (9/11)
      32. Заключение (10/11)
      33. Заключение (11/11)
    90. Глава 4
    91. Алгоритмы поиска по графу и поиска пути
      1. Пример данных: транспортный граф
        1. Импорт данных в Apache Spark
        2. Импорт данных в Neo4j
      2. Поиск в ширину
        1. Поиск в ширину с помощью Apache Spark
      3. Поиск в глубину
      4. Кратчайший путь (1/3)
      5. Кратчайший путь (2/3)
      6. Кратчайший путь (3/3)
        1. Когда следует использовать алгоритм кратчайшего пути?
        2. Реализация алгоритма кратчайшего пути с Neo4j
        3. Поиск кратчайшего взвешенного пути с Neo4j
        4. Поиск кратчайшего взвешенного пути с Apache Spark
        5. Вариант алгоритма кратчайшего пути: A*
        6. Вариант алгоритма кратчайшего пути: k-кратчайший путь Йена
      7. Алгоритм кратчайшего пути между всеми парами вершин (1/2)
      8. Алгоритм кратчайшего пути между всеми парами вершин (2/2)
        1. Подробный разбор алгоритма APSP
        2. Когда следует использовать APSP?
        3. Реализация APSP на платформе Apache Spark
        4. Реализация APSP на платформе Neo4j
      9. Кратчайший путь из одного источника
        1. Когда следует использовать алгоритм SSSP?
        2. Реализация алгоритма SSSP на платформе Apache Spark
        3. Реализация алгоритма SSSP на платформе Neo4j
      10. Минимальное остовное дерево
        1. Когда следует использовать минимальное остовное дерево?
        2. Реализация минимального остовного дерева на платформе Neo4j
      11. Алгоритм случайного блуждания
        1. Когда следует использовать алгоритм случайного блуждания?
        2. Реализация алгоритма случайного блуждания на платформе Neo4j
      12. Заключение
    92. Глава 5
    93. Алгоритмы вычисления центральности
      1. Пример графовых данных – социальный граф
        1. Импорт данных в Apache Spark
        2. Импорт данных в Neo4j
      2. Степенная центральность
        1. Охват вершины
        2. Когда следует использовать степенную центральность?
        3. Реализация алгоритма степенной центральности с Apache Spark
      3. Центральность по близости (1/2)
      4. Центральность по близости (2/2)
        1. Когда следует использовать центральность по близости?
        2. Реализация алгоритма центральности по близости с Apache Spark
        3. Реализация алгоритма центральности по близости с Neo4j
        4. Вариант центральности по близости: Вассерман и Фауст
        5. Вариант центральности по близости: гармоническая центральность
      5. Центральность по посредничеству (1/2)
      6. Центральность по посредничеству (2/2)
        1. Когда следует использовать центральность по посредничеству?
        2. Реализация центральности по посредничеству с Neo4j
        3. Вариант центральности по посредничеству: алгоритм Брандеса
      7. PageRank (1/2)
      8. PageRank (2/2)
        1. Влияние
        2. Формула алгоритма PageRank
        3. Итерация, случайные пользователи и ранжирование
        4. Когда следует использовать PageRank?
        5. Реализация алгоритма PageRank с Apache Spark
        6. Реализация алгоритма PageRank с Neo4j
        7. Вариант алгоритма PageRank: персонализированный PageRank
      9. Заключение
    94. Глава 6
    95. Алгоритмы выделения сообществ
      1. Пример данных: граф зависимостей библиотек
        1. Импорт данных в Apache Spark
        2. Импорт данных в Neo4j
      2. Подсчет треугольников и коэффициент кластеризации
        1. Локальный коэффициент кластеризации
        2. Глобальный коэффициент кластеризации
        3. Когда следует использовать подсчет треугольников и коэффициент кластеризации?
        4. Реализация подсчета треугольников с Apache Spark
        5. Реализация подсчета треугольников с Neo4j
        6. Локальный коэффициент кластеризации с Neo4j
      3. Сильно связанные компоненты
        1. Когда следует использовать сильно связанные компоненты?
        2. Реализация поиска сильно связанных компонентов с Apache Spark
        3. Реализация поиска сильно связанных компонентов с Neo4j
      4. Связанные компоненты
        1. Когда следует использовать связанные компоненты?
        2. Реализация алгоритма связанных компонентов с Apache Spark
        3. Реализация алгоритма связанных компонентов с Neo4j
      5. Алгоритм распространения меток
        1. Обучение с частичным привлечением учителя и начальные метки
        2. Когда следует использовать распространение меток?
        3. Реализация алгоритма распространения меток с Apache Spark
        4. Реализация алгоритма распространения меток с Neo4j
      6. Лувенский модульный алгоритм (1/2)
      7. Лувенский модульный алгоритм (2/2)
        1. Когда следует использовать Лувенский алгоритм?
        2. Реализация Лувенского алгоритма с Neo4j
      8. Проверка достоверности сообществ
      9. Заключение
    96. Глава 7
    97. Графовые алгоритмы на практике
      1. Анализ данных Yelp на платформе Neo4j (1/5)
      2. Анализ данных Yelp на платформе Neo4j (2/5)
      3. Анализ данных Yelp на платформе Neo4j (3/5)
      4. Анализ данных Yelp на платформе Neo4j (4/5)
      5. Анализ данных Yelp на платформе Neo4j (5/5)
        1. Социальная сеть Yelp
        2. Импорт данных
        3. Графовая модель
        4. Краткий обзор данных Yelp
        5. Приложение для планирования поездки
        6. Туристический бизнес-консалтинг
        7. Поиск похожих категорий
      6. Анализ данных о рейсах авиакомпании с помощью Apache Spark (1/3)
      7. Анализ данных о рейсах авиакомпании с помощью Apache Spark (2/3)
      8. Анализ данных о рейсах авиакомпании с помощью Apache Spark (3/3)
        1. Предварительный анализ
        2. Популярные Аэропорты
        3. Задержки вылетов из аэропорта Чикаго
        4. Плохой день в Сан-Франциско
        5. Взаимосвязи аэропортов через авиакомпании
      9. Заключение
    98. Глава 8
    99. Графовые алгоритмы и машинное обучение
      1. Машинное обучение и важность контекста
        1. Графы, контекст и точность
      2. Извлечение и отбор связанных признаков
        1. Графовые признаки
        2. Признаки и графовые алгоритмы
      3. Графы и машинное обучение на практике: прогнозирование связей (1/8)
      4. Графы и машинное обучение на практике: прогнозирование связей (2/8)
      5. Графы и машинное обучение на практике: прогнозирование связей (3/8)
      6. Графы и машинное обучение на практике: прогнозирование связей (4/8)
      7. Графы и машинное обучение на практике: прогнозирование связей (5/8)
      8. Графы и машинное обучение на практике: прогнозирование связей (6/8)
      9. Графы и машинное обучение на практике: прогнозирование связей (7/8)
      10. Графы и машинное обучение на практике: прогнозирование связей (8/8)
        1. Инструменты и данные
        2. Импорт данных в Neo4j
        3. Граф соавторства
        4. Создание сбалансированных наборов данных для обучения и тестирования
        5. Как мы предсказываем недостающие связи
        6. Разработка полного цикла машинного обучения
        7. Прогнозирование связей: основные признаки графа
        8. Прогнозирование связей: треугольники и коэффициент кластеризации
        9. Прогнозирование связей: выделение сообществ
      11. Заключение
      12. Итог книги
    100. Приложение А
    101. Дополнительная информация и ресурсы
      1. Дополнительные алгоритмы
      2. Массовый импорт данных Neo4j и Yelp
      3. APOC и другие инструменты Neo4j
      4. Поиск наборов данных
      5. Помощь в освоении платформ Apache Spark и Neo4j
      6. Дополнительные курсы
    102. Об авторах
    103. Изображение на обложке
    104. Предметный указатель

Product information

  • Title: Графовые алгоритмы
  • Author(s): Марк Нидхем, Эми Ходлер
  • Release date: January 2020
  • Publisher(s): DMK Press
  • ISBN: None