Покручиваем графыМне давно хотелось визуализировать систему лифтов, которая есть в башне на Кутузе. И вот я добралась!
➖ ПредысторияВ каждой шахте ходят по 2 лифта, и есть продуманное разделение секций лифтов на три разных холла. Например, в башне Б всего 41 этаж, и уже с середины здания ты можешь добраться только с пересадкой.
На картинке вся система переходов между этажами в одной башне. Сразу видны центры сосредоточения
⬇️ Буковками обозначены холлы:
C - центральный
L - левый
R - правый
(я так вижу)
🟡 Еще некоторые лифты открываются в две стороны, т.е. уехать ты можешь слева, а приехать справа.
Но есть проблема - с первого и даже с десятого раза ты не угадаешь, на каких этажах делать пересадку, пока не осознаешь логику или не выучишь все этажи
👍Мне было очень интересно составить комплексную картину, и я решила пройтись по всем этажам и холлам и четенько зафиксировать
🤓📊 В итоге все закинула в графовую бд neo4j, которая сейчас доступна только с впн, но потыкаться уже в готовой пока можно и просто так.
(Только в бесплатной версии она на паузе после 72ч неактивности. Ссылка на уже загруженные данные в проекте чуть пониже)
Чтобы что?Чтобы понимать, каким образом можно добраться из точки А в точку Б. А потом написать мобилку, захостить и расшерить коллегам (может быть)
😥Например, вот запрос для 2х кратчайших путей между этажами:
MATCH p = SHORTEST 2 (from: Floor)-[*]-(to: Floor)
WHERE from.id = 1 AND to.id = 39
RETURN p, length(p) AS result
Мне было интересно, и я покопалась в синтаксисе Cypher, чтобы минимизировать количество пересадок и их сложность (близкая или далекая), а также количество проезжаемых этажей. Потому что самым коротким могут оказаться 30+ путей, и возникли идеи дальше отбирать по логичным критериям
💻🔖Интересный факт: чтобы добраться с 4го этажа на 41й, нужно 5 шагов! (если у вас нет доступа к крутому лифту)
Кому интересно - проектик с инструкцией лежит тут: https://github.com/Aigul9/elevators/tree/main