Рубрика «граф»

Все, что познается, имеет число, ибо невозможно ни понять ничего, ни познать без него – Пифагор

В этой статье:

Матрица смежности

Матрица инцидентности

Список смежности (инцидентности)

Взвешенный граф (коротко)

Итак, мы умеем задавать граф графическим способом. Но есть еще два способа как можно задавать граф, а точнее представлять его. Для экономии памяти в компьютере граф можно представлять с помощью матриц или с помощью списков.

Матрица является удобной для представления плотных графов в которых количество ребер (E) примерно равно количеству вершин (V).

Читать полностью »

Всем привет.

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

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

Итак, поехали. Какие же варианты структур данных для «графохранения» мы имеем.
Читать полностью »

image

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

Что стоит за запросом «поесть на Курской» и как он обрабатывается, чтобы найти именно то, что нужно вам? В статье я расскажу, как команда Поиска 2ГИС делает всё возможное для того, чтобы жизнь в городах была удобнее и комфортнее для пользователей.
Читать полностью »

КДПВ: LLTR Часть 0 - пневмотранспорт из Футурамы

Как построить топологию сети на канальном уровне, если в нужной подсети используются только неуправляемые свитчи? В статье я постараюсь ответить на этот вопрос.

Начну с причины возникновения LLTR (Link Layer Topology Reveal).

У меня был один “велосипед” - синхронизатор больших файлов “на полной скорости сети”, способный за 3 часа целиком залить 120 GiB файл по Fast Ethernet (100 Мбит/с; 100BASE‑TX; дуплекс) на 1, 10, 30, или 200 ПК. Это был очень полезный “велосипед”, т.к. скорость синхронизации файла почти не зависела от количества ПК, на которые нужно залить файл. Все бы хорошо, но он требует знания топологии сети для своей работы.

Подробнее в статье про него:

Ладно, а зачем понадобилось “гонять” 120 GiB файл по сети на такое количество ПК?


Этим файлом был VHD с операционной системой, программами, и т.п. Файл создавался на мастер‑системе, а затем распространялся на все остальные ПК. VHD был не только способом доставки системы на конечные ПК, но и давал возможность восстановления исходного состояния системы при перезагрузке ПК. Подробнее в статье: “Заморозка системы: история перехода с EWF на dVHD”.


Можно продолжить цепочку дальше, но на этом я прервусь.

Существующие протоколы обнаружения топологии канального уровня (LLDP, LLTD, CDP, …) для своей работы требуют соответствующей поддержки их со стороны всех промежуточных узлов сети. То есть они требуют как минимум управляемых свитчей, которые бы поддерживали соответствующий протокол. На Хабре уже была статья, как используя эти протоколы, “определить топологию сети на уровнях 2/3 модели OSI”.

Но что же делать, если промежуточные узлы – простые неуправляемые свитчи?

Если интересно как это можно сделать, то добро пожаловать под кат. Обещаю наличие множества иллюстраций и примеров.

Читать полностью »

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

Геометрия данных 5. Преобразование базиса - 1

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

Особенность координатных систем на точечном базисе (ди- и би-координат) состоит в том, что их можно использовать как в обычном геометрическом пространстве, так и в пространстве графа.

Геометрия данных 4. Пространство графа - 1

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

Определение системы координат

Задачу построения системы координат (СК) на графе можно сформулировать следующим образом.
Читать полностью »

Любые системы координат — лишь подпорки для описания «положения вещей». Поэтому важно отличать понятия, связанные с системой координат и независимые от нее — инварианты. В данной статье рассмотрим один из таких инвариантов — скалярное произведение векторов. Одна из целей серии (начало здесь) — обновить сложившиеся стереотипы, поэтому постараемся выйти за рамки привычного геометрического смысла.

Геометрия данных 3. Скалярное произведение векторов - 1
Схема установки для исследования методом сопротивления: A и B – питающие заземления; M и N – измерительные заземления; 1 – измерительный прибор (из книги «Электроразведка», Якубовский Ю. B., M., 1980).

На рисунке показана схема измерения скалярного произведения векторов $vec{AB}$ и $vec{MN}$ на грунте.
Читать полностью »

Статья является продолжением серии о системах координат на точечном базисе. Базис представляет собой вершины симплекса или графа с известными значениями двух взаимных метрических тензоров — дистанционного (ДМТ) и лапласовского (ЛМТ). В первой статье описаны свойства данных тензоров. Здесь покажем, что представляют собой координаты точек.

Геометрия данных 2. Ди- и би-координаты точек и векторов - 1

Дистанционные координаты

Для лапласовского метрического тензора (ЛМТ) координатами, описывающими точку в пространстве, являются дистанционные координаты. Данные координаты представляют собой объединение скалярной единицы и значений отрицательных полудистанций от точки до реперов — вершин базисного симплекса или графа. Для краткости будем именовать их ди-координатами.
Читать полностью »

Это первая статья из серии, посвященной сопоставлению свойств геометрического пространства и пространства графа. Пространство определяется как набор элементов (вершин, точек) и расстояний (для графа — связей) между ними.

Геометрия данных 1. Симплексы и графы - 1

Введение

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

Екатерина Малахова, редактор-фрилансер, специально для блога Нетологии адаптировала статью Beau Carnes об основных типах структур данных.

«Плохие программисты думают о коде. Хорошие программисты думают о структурах данных и их взаимосвязях», — Линус Торвальдс, создатель Linux.

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

В этой статье я покажу вам 10 самых распространенных структур данных. Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js