Что такое граф простыми словами: математика, SEO и реальная жизнь

Слово «граф» пугает вузовской математикой, но идея простая: точки и связи между ними. Разобрали с нуля, что такое граф, какие бывают виды, при чём здесь мосты Кёнигсберга и как графы работают в навигаторе, соцсетях и продвижении сайтов. После статьи вы начнёте замечать графы вокруг и поймёте, зачем они нужны программисту, аналитику и маркетологу, даже если вы далеки от математики.
Статью написал:
Ваня Буявец, продюсер, основатель Checkroi
Ваня Буявец
Основатель Checkroi, продюсер Telegram-каналов, эксперт в выборе онлайн-курсов
Все 543 статьи автора
Одобрено экспертом:
Наташа Буявец, основатель Checkroi, эксперт по онлайн-курсам
Наташа Буявец
Основательница Checkroi, продюсер Youtube-каналов, эксперт по онлайн-курсам
Все 1204 экспертных мнения
Обложка: Что такое граф простыми словами: математика, SEO и реальная жизнь

Когда слышишь слово «граф», первая мысль обычно про график продаж или диаграмму в Excel. Так вот, это совсем другая история. Граф в математике вообще не про столбики и кривые. Это способ показать, кто с кем связан: точки и линии между ними. И эта простая идея тихо управляет половиной вещей, которыми вы пользуетесь каждый день, от ленты в соцсети до маршрута в навигаторе.

В этой статье разберём графы с нуля и по-человечески: что это такое, из чего они состоят, для чего нужны и какие бывают. Потом покажем три мира, где графы и правда работают: математику, повседневную жизнь и SEO (продвижение сайтов в поиске).

Если вам в принципе нравится, как из простых правил вырастают сложные вещи, загляните ещё в наш разбор что такое криптография и как она работает: там та же логика, только про шифры. А про то, как компании работают с огромными массивами связей, мы писали в материале про большие данные.

Статья пригодится не только будущим программистам. Графы одинаково полезны аналитикам, маркетологам, логистам, да и просто любопытным людям, которые хотят понимать, как устроены привычные сервисы.

А если после прочтения захочется освоить тему вглубь и превратить её в профессию, у нас собран большой каталог курсов по программированию и IT: от коротких интенсивов по основам до годовых программ с трудоустройством.

Начнём с главного: что вообще такое граф.

Курсы по Программирование и ITКурсыСравнение 1397 курсов программирования и ITЦены, школы, длительность, рассрочка

Что такое граф на самом деле

Граф, если совсем просто, это набор точек и связей между ними. Точки называют вершинами (или узлами), а связи между ними, линии, называют рёбрами. Всё, других обязательных деталей нет.

Представьте компанию из пяти друзей. Нарисуйте каждого кружочком, а если двое общаются, соедините их кружочки линией. Получилась картинка из точек и линий. Вы только что нарисовали граф, даже если никогда не открывали учебник по математике.

Рой объясняет, что такое граф, на схеме из точек и линий

Вершина (узел) — это любой объект: человек, город, страница сайта, станция метро. Ребро (связь) показывает, что два объекта как-то связаны: дружат, соединены дорогой, ссылаются друг на друга. Вот и вся азбука.

Как узнать граф в жизни. Если задачу можно описать словами «вот объекты, а вот связи между ними», значит, перед вами граф. Друзья и дружба, города и дороги, сайты и ссылки. Все эти штуки рисуются точками и линиями.

У вершины есть простая характеристика: степень. Это сколько связей из неё выходит. У общительного человека в компании степень высокая (он связан со многими), у тихони низкая. По степеням уже можно понять, кто в сети главный, а кто на отшибе.

Раздел математики, который изучает такие точки-и-линии, называется теорией графов и относится к дискретной математике. Теория графов звучит серьёзно, но в основе лежит та самая детская картинка с кружочками. Дальше теория просто навешивает на неё правила: можно ли пройти по всем линиям, как найти кратчайший путь, как разбить сеть на части. К практике мы скоро вернёмся.

Какие бывают графы

Графы отличаются тем, как устроены их связи. Видов много, но новичку хватит понимать несколько основных. Разберём их на бытовых примерах, а потом сведём в таблицу.

Неориентированный и ориентированный

В неориентированном графе связь работает в обе стороны. Дружба в соцсети взаимна: если вы друзья, то друзья оба. Линию между вами можно проходить в любом направлении.

В ориентированном графе у каждой связи есть направление, её рисуют стрелкой. Такую связь со стрелкой называют дугой. Пример: подписки. Вы подписаны на блогера, а он на вас нет. Стрелка идёт только в одну сторону. Из этого же принципа растут ссылки между страницами сайта, про них будет отдельный разговор в SEO-разделе.

Взвешенный граф

Иногда важна не только сама связь, но и её «цена». Взвешенный граф добавляет каждому ребру число: расстояние, время, стоимость. Карта дорог между городами с километражем на каждой трассе. Это и есть взвешенный граф. Именно по таким графам навигатор считает, как доехать быстрее.

Дерево

Дерево — это граф без замкнутых кругов (без циклов), с одним корнем, от которого всё ветвится. Папки и файлы на компьютере устроены ровно так: есть корневая папка, внутри подпапки, внутри них файлы, и заблудиться по кругу нельзя. Генеалогическое древо семьи это тоже дерево в этом смысле. Главное отличие дерева от обычного графа: между любыми двумя точками есть только один путь, без развилок и петель.

Двудольный и полный

В двудольном графе вершины делятся на две группы, а связи идут только между группами, но не внутри. Классика: пользователи и фильмы, которые они посмотрели. Человек связан с фильмом, но не с другим человеком напрямую. На таких графах построены рекомендации «вам понравится».

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

Вид графа В чём суть Пример из жизни
Неориентированный связи работают в обе стороны дружба в соцсети
Ориентированный у связей есть направление (стрелка) подписки на блогеров
Взвешенный у каждой связи есть число: цена, время, км дороги между городами с километражем
Дерево нет замкнутых кругов, есть один корень папки и файлы на компьютере
Двудольный две группы вершин, связи только между ними пользователи и просмотренные фильмы
Полный каждая вершина соединена с каждой чат, где все написали всем
Планарный можно нарисовать без пересечения линий схема линий метро

Если пока сложно запомнить все виды, не беспокойтесь. На практике достаточно держать в голове три пары: связь односторонняя или взаимная, есть у связи вес или нет, замкнут граф в кольца или ветвится деревом. Остальное прикладывается по ходу дела.

Откуда взялись графы

У теории графов есть точная дата рождения: 1736 год. Всё началось с городской прогулки и упрямого вопроса.

В старом Кёнигсберге (теперь это Калининград) река делила город на части, которые соединяли семь мостов. Горожане любили спорить: можно ли пройти по всем семи мостам так, чтобы по каждому пройти ровно один раз и вернуться туда, откуда вышел? Кто-то пробовал так и сяк, но ни у кого не получалось.

Загадку решил математик Леонард Эйлер. Он сделал гениально простую вещь: выкинул из задачи всё лишнее. Неважно, какой мост красивее и где чей дом. Важны только части города (это вершины) и мосты между ними (это рёбра). Получилась схема из точек и линий, первый в истории граф.

Семь мостов Кёнигсберга как схема из точек и линий, маленький Рой рассматривает их

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

Главная идея Эйлера. Чтобы решить запутанную задачу, он отбросил детали и оставил только объекты и связи. Этот приём, превратить запутанную реальность в чистую схему из точек и линий, и есть суть работы с графами по сей день.

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

Курсы по Анализ данныхКурсыСравнение 322 курсов по анализу данныхЦены, школы, длительность, рассрочка

Графы в реальной жизни

Самое интересное, что графы давно вышли из учебника и встроились в сервисы, которыми вы пользуетесь не задумываясь. Вот четыре примера, которые видно невооружённым глазом.

Соцсети

Любая соцсеть это гигантский граф. Люди это вершины, дружба и подписки это рёбра. Когда вам предлагают «возможных друзей», система просто ищет точки, у которых много общих связей с вами. Чем больше общих друзей, тем выше шанс, что вы знакомы в реальности. Никакой магии, обычная работа с графом.

Карты и навигатор

Когда вы строите маршрут, приложение видит карту как взвешенный граф: перекрёстки становятся вершинами, улицы выступают рёбрами, а вес каждого ребра это время в пути с учётом пробок. Дальше включается алгоритм поиска кратчайшего пути, и через долю секунды вы получаете «вам налево через 200 метров». Та же логика лежит в схемах метро: станции это точки, перегоны это линии.

Логистика и доставка

Курьерским службам и маркетплейсам каждый день нужно развезти сотни заказов по городу с минимальным пробегом. Это классическая задача на графах: точки это адреса, рёбра это дороги с расстоянием, нужно найти самый короткий объезд всех точек. Так экономят топливо, время и деньги.

Рекомендации и искусственный интеллект

«С этим товаром покупают», «вам может понравиться этот трек». За этими подсказками стоят графы. Маркетплейсы и стриминги строят двудольный граф из пользователей и товаров, а потом ищут похожие связи. Отдельный класс моделей, графовые нейронные сети, учится прямо на структуре связей и сегодня лежит в основе многих рекомендательных систем. Если тема ИИ вам близка, у нас есть отдельное сравнение нейросетей с разбором, какую под какую задачу брать.

Графы используют и там, где не видно глазу: в химии (молекула это граф из атомов и связей), в биологии, в поиске лекарств, в анализе финансовых потоков. Если хотите научиться вытаскивать смысл из таких сетей данных, посмотрите курсы по анализу данных, это одна из самых востребованных областей.

Графы в программировании

В IT графы это базовый рабочий инструмент, а не экзотика. Любую структуру со связями программист в голове сразу переводит в граф, потому что для графов уже придуманы готовые алгоритмы на все случаи.

Два самых частых алгоритма это способы обойти все вершины, то есть побывать в каждой точке сети. Их называют поиск в ширину и поиск в глубину.

Поиск в ширину (по-английски BFS) работает как круги на воде. Сначала вы проверяете всех ближайших соседей точки (их называют смежными вершинами), потом соседей соседей, и так слоями вширь. Именно так находят кратчайший путь, когда все шаги равнозначны: «за сколько рукопожатий я знаком с этим человеком».

Поиск в глубину (DFS) ведёт себя как человек в лабиринте, который идёт по одному коридору до упора, упирается в тупик, возвращается к развилке и пробует следующий ход. Так удобно проверять, можно ли вообще добраться из одной точки в другую и нет ли в сети замкнутых колец.

Рой ищет путь в лабиринте: так работают алгоритмы обхода графа

Если у связей есть вес (время, цена, расстояние), на сцену выходит алгоритм Дейкстры. Он находит самый дешёвый путь между точками с учётом этих весов. Это и есть мозг навигатора, который мы упоминали выше.

Зачем это новичку. Вы не обязаны помнить алгоритмы наизусть. Достаточно понимать идею: почти любую задачу «как добраться, как связать, как найти кратчайший маршрут» программисты решают, нарисовав граф и запустив по нему один из готовых алгоритмов.

Графы на собеседованиях в IT спрашивают регулярно, поэтому тему проходят почти в каждом курсе по разработке. Если хотите начать с азов, присмотритесь к программам по основам программирования, там графы дают на понятных примерах.

Курсы по Поисковая оптимизация (seo)КурсыСравнение 108 курсов по поисковой оптимизации (seo)Цены, школы, длительность, рассрочка

Графы в SEO

А вот неочевидное применение, о котором не пишут в учебниках математики. Поисковые системы (Google, Яндекс) видят весь интернет как один огромный граф, и понимание этой картины помогает продвигать сайты.

Граф знаний

Граф знаний (knowledge graph) это база фактов об объектах реального мира, которую поисковик связывает в единую сеть. Люди, компании, города, фильмы это вершины, а факты о них («актёр снялся в фильме», «компания основана в городе») это рёбра. Google собрал в своём графе знаний свыше 500 миллиардов фактов о 5 миллиардах объектов.

Именно граф знаний рисует тот самый блок справа в выдаче, когда вы ищете известную персону или бренд: фото, краткая справка, ключевые факты. Попасть в этот блок значит, что поисковик считает вас узнаваемой сущностью (entity), реальным объектом, о котором он что-то знает.

Ссылки как граф, или PageRank

Сам интернет это граф, где страницы это вершины, а гиперссылки это направленные рёбра. На этой идее вырос знаменитый алгоритм PageRank, с которого начался Google: страница тем важнее, чем больше на неё ссылается других важных страниц. Поисковики с тех пор сильно усложнились, но базовая логика «голосование ссылками по графу» никуда не делась. Как сегодня устроено ранжирование у нас, мы подробно разбирали в статье про факторы ранжирования Яндекса.

Тематическая карта и перелинковка

Графовое мышление полезно и внутри одного сайта. Опытные оптимизаторы строят тематическую карту (topical map): рисуют все подтемы темы как граф и связывают страницы между собой осмысленными ссылками, а данные размечают через Schema.org (код, который прямо сообщает поисковику, что есть что на странице). Когда структура сайта похожа на аккуратный граф связанных по смыслу страниц, поисковику проще понять, в чём сайт силён, и тем выше доверие к нему.

Сеть связанных узлов: так поисковик видит сайты и страницы в виде графа

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

Это лишь верхушка большой темы. Если хочется разобраться, как из графа ссылок и сущностей вырастает трафик из поиска, у нас есть подборка курсов по поисковой оптимизации, а тем, кто метит шире, пригодится разбор, как стать интернет-маркетологом с нуля.

Где научиться работать с графами

Графы сами по себе не профессия. Это базовый навык сразу для нескольких специальностей: он нужен программисту, аналитику данных, специалисту по машинному обучению и даже SEO-специалисту. Поэтому отдельный «курс по графам» искать не нужно: тему дают внутри программ по этим направлениям, на живых задачах и с практикой.

Чтобы не собирать знания по обрывкам видео на YouTube, проще один раз сесть на нормальный курс с обратной связью от преподавателя. Ниже собрали программы по программированию и IT, где графы и алгоритмы разбирают с нуля и на понятных примерах. Сравните по цене, длительности и формату и выберите под свой уровень.

КурсШколаСтоимость со скидкойВ рассрочкуДлитель­ностьОбзор курса от Checkroi
Нейросети: практический курс
Перейти на сайт курса
SkyproSkypro25 990 ₽181 667 ₽/мес.3 месяцаОбзор курса
Нейросети для рабочих задач
Перейти на сайт курса
SkillboxSkillbox29 800 ₽2483 ₽/мес.1 месяцОбзор курса
Нейросети. Практический курс
Перейти на сайт курса
SkillboxSkillbox74 900 ₽6242 ₽/мес.3 месяцаОбзор курса
Нейросети для каждого: как решать рабочие задачи быстрее
Перейти на сайт курса
НетологияНетология37 300 ₽2763 ₽/мес.6 недельОбзор курса
Программирование для анализа данных
Перейти на сайт курса
SkyproSkypro134 640 ₽365 500 ₽/мес.12 месяцевОбзор курса
Профессия «Python-разработчик»
Перейти на сайт курса
SkillboxSkillbox157 335 ₽5987 ₽/мес.10 месяцевОбзор курса
Профессия «Fullstack-разработчик на PHP»
Перейти на сайт курса
SkillboxSkillbox166 715 ₽5378 ₽/мес.12 месяцевОбзор курса
Frontend-разработчик с нуля
Перейти на сайт курса
НетологияНетология123 700 ₽5385 ₽/мес.10 месяцевОбзор курса
Fullstack-разработчик на Python
Перейти на сайт курса
НетологияНетология175 800 ₽7125 ₽/мес.21 месяцОбзор курса
Профессия «Разработчик игр на Unity с нуля»
Перейти на сайт курса
SkillboxSkillbox130 521 ₽3679 ₽/мес.10 месяцевОбзор курса

Больше программ — в полном каталоге курсов по программированию и IT

Если тянет больше к данным и аналитике, чем к чистой разработке, посмотрите соседние направления: анализ данных и профессию data scientist, где работа с графами и сетями связей идёт каждый день.

Коротко о главном

Граф это простая и мощная идея: точки и связи между ними. Из этой картинки с кружочками выросла целая ветка математики, которая сегодня незаметно работает в навигаторе, в ленте соцсети, в рекомендациях маркетплейса и в поисковой выдаче.

Чтобы начать видеть графы вокруг, держите в голове три вопроса: что здесь объекты, что здесь связи и есть ли у связей направление или вес. Как только вы научитесь переводить задачу на язык точек и линий, многие сложные на вид вещи становятся понятными. А дальше за дело берутся готовые алгоритмы, которые человечество придумало ещё со времён эйлеровских мостов.

Часто задаваемые вопросы

Чем граф отличается от графика?

Это разные вещи с похожим названием. График показывает, как одна величина меняется относительно другой (например, продажи по месяцам). Граф в математике это набор точек (вершин) и связей между ними (рёбер), он показывает, кто с кем связан, а не как что-то растёт или падает.

Что такое вершина и ребро графа?

Вершина (её ещё называют узлом) это любой объект: человек, город, страница сайта. Ребро это связь между двумя вершинами: дружба, дорога, ссылка. Если у связи есть направление, её рисуют стрелкой и называют дугой.

Чем ориентированный граф отличается от неориентированного?

В неориентированном графе связь работает в обе стороны, как взаимная дружба в соцсети. В ориентированном у связи есть направление, как подписка на блогера: вы подписаны на него, а он на вас нет. Направление рисуют стрелкой.

Кто придумал теорию графов?

Основателем считается математик Леонард Эйлер. В 1736 году он решил задачу о семи мостах Кёнигсберга, сведя город к схеме из точек и линий. Эту дату принято считать днём рождения теории графов.

Где графы применяются в реальной жизни?

Почти везде, где есть связи. На графах работают соцсети (поиск друзей), навигаторы и карты метро (поиск маршрута), службы доставки (оптимизация развоза), рекомендации в маркетплейсах и стримингах, а также поисковые системы.

Что такое граф знаний (knowledge graph) в SEO?

Граф знаний это база фактов об объектах реального мира (людях, компаниях, местах), которую поисковик связывает в единую сеть. Из него Google и Яндекс собирают тот самый блок справа в выдаче. Подробнее о том, как устроено ранжирование, мы писали в статье про факторы ранжирования Яндекса.

Чем граф отличается от дерева?

Дерево это частный случай графа: в нём нет замкнутых кругов и есть один корень, от которого всё ветвится. Между любыми двумя точками дерева существует только один путь. В обычном графе путей между точками может быть много, и связи могут образовывать петли.

Нужно ли знать графы, чтобы войти в IT?

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

Оставить комментарий
0 комментариев
Форма комментария

Оставьте комментарий

Напишите, что думаете. Нам важно ваше мнение!