Viktor
можешь я просто забыл дейкстру 😃
Ilia
жадный не обязательно наибольший, он же может быть и наименьшим )
Gennady
Gennady
Вот ты выберешь b, хотя глобально оптимально выбрать c
Viktor
мне кажется, вот здесь чувак хорошо написал во втором комменте https://coderoad.ru/14038011/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC-%D0%94%D0%B5%D0%B9%D0%BA%D1%81%D1%82%D1%80%D1%8B-%D0%B6%D0%B0%D0%B4%D0%BD%D1%8B%D0%B9-%D0%B8%D0%BB%D0%B8-%D0%B4%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9-%D0%B0%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC-%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F
Viktor
то есть жадный алгоритм не в том смысле, что тупо идёшь туда где меньший вес, а в том что сперва готовишь «оптимальный переход» и принимаешь уже жадное решение после.
Null
Medved
Проголосовал за "посты в блоге", хотя формат видео я одобряю, и, полагаю, для тех, кто не сидит на литкоде сутками, именно видео с живой речью будет полезнее.
Ilia
Я за текст, потому что не смотрю видео с разработкой
Ilia
Порридж В Ко-ливинге
Порридж В Ко-ливинге
Sergei
Roman
Алгоритм дейкстры на каждом этапе берет еще непосещенную вершину с минимальной меткой. То есть на первом шаге ты пойдешь в b и поставишь метку 1 для b, пойдешь в вершину c и поставишь метку c. На втором шаге ты пойдешь из вершины b в d и поставишь вершине d метку 11. На третьем шаге ты возьмешь вершину c (потому что у тебя в очереде 2 вершины с метками 2 - c и 11 - d) и пойдешь из нее в вершину d и поставишь метку 3. Конец алгоритма. Конец алгоритма в дейкстре считается момент, когда все вершины были посещены.
Ilia
Ilia
Ведь ситуация когда не все вершины посещены, но ответ уже есть, очень даже реален
Ilia
Не просто так дейкстра применима только к положительным рёбрам
Alexander
Gennady
Viktor
Viktor
в случае с дейкстрой, ну зависит от того что ты считаешь здесь «пространством возможных вариантов» для выбора и принятия решения о локальном оптимуме
Viktor
в зависимости от этого и будет ответ это жадный алгоритм или нет. то есть можно сказать, что нет, потому что «мы не знаем какое ребро даст оптимум в момент времени когда стоим перед выбором куда пойти»
Viktor
но это просто значит, что неверно выбрано «пространство возможных вариантов где нужно делать жадный выбор». в дейкстре оно не про «непосредственный выбор ребра с меньшим весом».
Roman
Ilia
Их нет смысла проходить, так как значение будет заведомо выше уже полученного
Roman
так в любом случае ты их должен посетить, чтобы проверить, что у них метка больше, чем у тебя есть
Ilia
Evgeniy
Evgeniy
Нужно всё проверять
Evgeniy
Если вы про Дейкстру
Evgeniy
Evgeniy
Ты выбираешь минимум и релаксируешь значения у соседей
Evgeniy
Evgeniy
У неё
Evgeniy
Поэтому приходится держаться минимальных значений
Ilia
Ilia
С оговоркой, что отрицательных рёбер нет
Grant
под посты можно музычку слушать
Evgeniy
Evgeniy
Текущая?
Ilia
Ilia
К которой мы ищем путь
Evgeniy
Evgeniy
Ну в Дейкстре мы же ищем кратчайшие пути до всех вершин
Evgeniy
От одной
Evgeniy
По моему мы говорим об одном и том же, но разными словами)
Ilia
В общем случае да, но выше скриншот был с явным намеком поиска из одной точки в другую, а не поиск всех возможных путей
Evgeniy
Ilia
Ilia
Evgeniy
в видосе разбираются примеры и показывается как проектировать алгоритм, блог это другое - здесь используем магию тут возьмем единорога и вот готовый код с решением
каждому свое, но мне лучше на данном этапе развития видосы
Viktor
Ilia
нужна помощь: а какие классические задачи на жадный алгоритм можно привести и какие есть примеры наоборот, где жадный алгоритм не очевиден, но очень отлично ложится на решение?
Viktor
Viktor
а если нужен пример где просится жадинка, но на самом деле не работает, то это классическая задача на дп про размен монет.
Roman
алгоритм прима для MST (спойлер: почти такой же что и Дейкстра)
Viktor
на примере, ссылки ты показываешь как ты решаешь задачу, здесь скелет и код, здесь рекусрия и код с решение + дополния
в видое, ты разбираешь примеры и показываешь как спроектировать алгоритм дальше уже можно на основании этих двух частей решить/решать самому, хоть на js, хоть на питоне, хоть на чем знаешь
ведь главнее же навык решения задач, чем посмотреть как она решается, имхо
да, согласен, отличия есть.
Roman
@vitkarpov а ты сис. диз проходил в aws? Готовлюсь к сис. дизу (не в aws), вот думаю посмотреть cockroach, TiDB, vitess и подобные, тоже самое по batch processing. Это оверкил для интервью или стоит?
Viktor
это не значит, что тебе потребуется именно это, про cockroach никто не спросит.
Viktor
но решая свою задачу ты сможешь использовать аналогичный подход.
Roman
Не API, а абстракт описание систем, почему, как и зачем, алгоритмы консенсуса и т.д.
Viktor
другой вопрос точно ли тебе придется глубоко копать на интервью.
Viktor
возможно сис. диз. будет просто нарисовать ручки своего реста 😄
Roman
Я для себя нашел блог eng.uber.com Это какой-то кладезь сис. диза
Viktor
Roman