Рубрика «графы» - 5

Среди трёхмерных САПР наиболее известны программы, реализующие два основных подхода к проектированию: прямое моделирование и параметрическое.
Кроме того, существуют процедурные САПР, которые позволяют моделировать посредством программирования. Такой подход снискал себе признание среди любителей программирования и проектирования устройств с открытыми кодом и конструкцией. Например, хорошо известен OpenSCAD, который здесь не раз упоминался.
Предлагаю посмотреть на еще одну необычную САПР под названием Antimony.

image
Рис. 1. Antimony — САПР из параллельного мира
Читать полностью »

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

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

Однако, можно придумать нечто более надежное — Kronos. В статье мы посмотрим на алгоритм учета причинно-следственной связи и его применение для построения Key-Value хранилища с распределенными транзакциями.

image

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

Привет!

Три года назад на сайте Леонида Жукова я ткнул ссылку на курс Юре Лесковека cs224w Analysis of Networks и теперь мы будем его проходить вместе со всеми желающими в нашем уютном чате в канале #class_cs224w. Cразу же после разминки с открытым курсом машинного обучения, который начнётся через несколько дней.

image

Вопрос: Что там начитывают?
Ответ: Современную математику. Покажем на примере улучшения процесса IT-рекрутинга.

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

Тут случилось первое сентября, очередной учебный год, цветы-конфеты, слёзы счастья и вот это вот всё, а я в процессе подготовки к лекции в институте наткнулся на очень любопытные данные. Я смотрел, что бы такого можно было быстро и красиво порисовать в GePhi, и наткнулся на историю Йоханнеса Делича (Johannes Delitsch). Делич работал в Лейпциге учителем начальных классов и собрал в 1880ом учебном году данные о том, кто с кем дружит в его классе. И это, по ходу, один из первых задокументированных социальных графов.

Йоханнес Делич

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

Всем привет! Мы развиваем идеи первого поста и продолжаем визуализировать и изучать комментарии на ютубе. На этот раз мы поработаем с глобальными и локальными ютуб-сообществами. Как взаимодействуют комментаторы, которые пишут на разных языках? Собирается ли из множества локальных групп единое глобальное сообщество, или дело сложнее, чем кажется? И причем здесь Touhou Project? Давайте выясним.

Визуализация комментариев ютуб-каналов международных и локальных touhou-сообществ - 1
Читать полностью »

image

«Simplicity is prerequisite for reliability» by Edsger Dijkstra

Пролог

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

КДПВ: 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”.

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

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

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

Перечислим задачи, составляющие «задачу инкассатора»:

  • выбор формы сделки по приобретению УС.
  • кластеризация Сети. Решение этой задачи даст заданное нами некоторое количество множеств УС для внутридневного (внутрисменного) обслуживания если существуют ограничения по количеству автомобилей и персоналу обслуживающих Сеть.
  • размещение УС и центров обслуживания (далее – ЦО) Сети. Решение этой задачи даёт «дорожную карту» развития Сети во времени и пространстве.
  • прогнозирование скорости расходования купюр (в разрезе номиналов) в УС кластера перед загрузкой кассет банкнотами в целях израсходования остатка денежных средств к дате и времени момента обслуживания (с учётом тенденций перехода населения на безналичную оплату покупок, сезонности, зарплатных проектов поблизости, прогноза погоды и тому подобных существенных факторов) с заданной вероятностью.
  • вычисление кратчайшего пути (задача коммивояжёра).

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

Двоичный поиск в графах - 1

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

При каждом сравнении алгоритм двоичного поиска разбиваем пространство поиска пополам. Благодаря этому всегда будет не более $log(n)$ сравнений со временем выполнения $O(log n)$. Красиво, эффективно, полезно.

Но всегда можно посмотреть под другим углом.

Что, если попробовать выполнить двоичный поиск по графу? Большинство алгоритмов поиска по графам, такие как поиск в ширину или поиск в глубину, требуют линейного времени и были придуманы довольно умными людьми. Поэтому если двоичный поиск по графу будет иметь какой-то смысл, то он должен использовать больше информации, чем та, к которой имеют доступ обычные алгоритмы поиска.
Читать полностью »

Яндекс уже некоторое время ведет разработку беспилотного автомобиля. Перед вами одна из первых технических лекций на эту тему. В направлении беспилотных автомобилей работают сотрудники Яндекса в разных городах, включая и Минск. Автор лекции Роман Удовиченко как раз из Минска — он руководит группой обработки дорожной ситуации. На сентябрьском Я.Субботнике Роман рассказал об одной из больших задач, стоящих перед его группой.

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

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


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