как оптимально распределить товары со складов по магазинам, учитывая пропускную способность дорог? Или как эффективно распределить вычислительную нагрузку между серверами?
Алгоритм Диница + capacity scaling даёт , U - максимальная пропускная способность.Вроде как есть варианты сделать . В любом случае интереснее кто быстрее номинально, а не асимптотически. Лет 10 назад когда плотно изучал вопрос хороши были как раз Диница и Preflow, последний как раз был хорош благодаря двум эвристикам (max height и global relabeling), благодаря которым становился очень быстр. У Эндрю Гольдберга в личной библиотеке были реализации обоих и вроде как они были сопоставимы по скорости. К сожалению эта библиотека скорее всего канула в лету. Префлоу я недавно видел в лимоне, в networkx реализованы оба, можно попробовать замерить, но учитывая что они там на питоне реализованы это будет очень условно. На алгоритм Бойкова-Колмогорова можно обратить внимание, он по асимптотике не очень, но вроде как зарекомендовал себя на практике для выделения границ в изображении.
P. S. @csharpminor0 алгоритм Диница не для начинающих ...
И тем не менее используемая в питоне сортировка тоже названа именем автора. Прогнал код на случайных данных, действительно вызовов компаратора меньше, чем у std::sort.
Мне тоже приятно в случае если это несколько строчек с переменными +- одинакового размера. Но вот если это начинает разрастаться, то могут появиться интересные эффекты:
Коммиты, удаляющие кучу пробелов, среди которых нужно искать реальные изменения
Код, напоминающий книжное оглавление, где на глаз уже не так очевидно к какому слову слева относится вот это число справа.
О чем кстати в книге вроде как и написано. В общем как обычно, не стоит а) вырывать тезисы из контекста б) слепо следовать правилам и предполагать, что другие так будут делать
Идёт 2025 год, во всех основных компиляторах С++ массивы сортируются c помощью Introsort=quicksort+heapsort+insertion (+ еще всякие ухищрения в основном в LLVM)
Вроде как суммирование Кагана (и вроде как он Кэхэн, но не суть) не предназначено для полного избавления от ошибок округления, а избавление от накопления ошибок, т. е. чтобы при суммировании произвольного количества чисел ошибка была ограничена, а не полностью отсутствовала.
Тема интересная, но хотелось бы деталей, особенно вот по этой части
Эллиптический криптографический ключ размером всего 256 битов приблизительно столь же надёжен, как и 3072-битный ключ RSA, и существенно более безопасен, чем распространённые сегодня 2048-битные ключи.
Как будто в этом кортеже не будет хватать информации о делителе, т.е. вот вы поделили (a, 0) на (b, 0) и получили (q, r). Как потом (q, r) умножить на (с, 0)?
Также стоит отметить, что рациональные числа -- это пары (a, b), где a, b - целые, gcd(a, b)=1 и b!=0 умножение (a, b) * (c, d)=(ac/gcd(ac, bd), bd/gcd(ac, bd)), обратный элемент (a, b)^{-1}=(b, a)
Редкий анекдот, про который я был уверен, что
Человек на земле был дворником.
Шерлок Холмс заключил, что они в России, потому что только тут математики работают дворниками.
Неужели до сих пор гибрид/стс + нграмные языковые являются наиболее предпочтительными вариантами для продакшена ASR?
Есть ссылки где применяются?
Если сложность не важна, почему для начинающих Вы решили рассказывать алгоритм Диницы, а не алгоритм Форда-Фалкерсона?
Алгоритм Диница + capacity scaling даёт
, U - максимальная пропускная способность.Вроде как есть варианты сделать
. В любом случае интереснее кто быстрее номинально, а не асимптотически. Лет 10 назад когда плотно изучал вопрос хороши были как раз Диница и Preflow, последний как раз был хорош благодаря двум эвристикам (max height и global relabeling), благодаря которым становился очень быстр. У Эндрю Гольдберга в личной библиотеке были реализации обоих и вроде как они были сопоставимы по скорости. К сожалению эта библиотека скорее всего канула в лету. Префлоу я недавно видел в лимоне, в networkx реализованы оба, можно попробовать замерить, но учитывая что они там на питоне реализованы это будет очень условно. На алгоритм Бойкова-Колмогорова можно обратить внимание, он по асимптотике не очень, но вроде как зарекомендовал себя на практике для выделения границ в изображении.
P. S. @csharpminor0 алгоритм Диница не для начинающих ...
Про DCT поправил. Про паддинг я вроде бы не писал, сам как раз работаю с полями
где паддинг проблематичный, а БПФ уметь делать очень хочется.
И тем не менее используемая в питоне сортировка тоже названа именем автора. Прогнал код на случайных данных, действительно вызовов компаратора меньше, чем у std::sort.
Хмм
\color{red}{asdasd} ->
\color{blue}{asdasd} ->
\color{green}{asdasd} ->
Хмм, ну как будто все замеры перемешались. Может выложите код на гитхаб? Ну или хотя бы замените скриншоты кода текстом.
Мне тоже приятно в случае если это несколько строчек с переменными +- одинакового размера. Но вот если это начинает разрастаться, то могут появиться интересные эффекты:
Коммиты, удаляющие кучу пробелов, среди которых нужно искать реальные изменения
Код, напоминающий книжное оглавление, где на глаз уже не так очевидно к какому слову слева относится вот это число справа.
О чем кстати в книге вроде как и написано. В общем как обычно, не стоит а) вырывать тезисы из контекста б) слепо следовать правилам и предполагать, что другие так будут делать
Идёт 2025 год, во всех основных компиляторах С++ массивы сортируются c помощью Introsort=quicksort+heapsort+insertion (+ еще всякие ухищрения в основном в LLVM)
Вроде как суммирование Кагана (и вроде как он Кэхэн, но не суть) не предназначено для полного избавления от ошибок округления, а избавление от накопления ошибок, т. е. чтобы при суммировании произвольного количества чисел ошибка была ограничена, а не полностью отсутствовала.
Я бы сказал, что до сих пор то зелёный банкомат, то терминал в какой-нибудь кафешке с ностальгической XP вижу.
Тема интересная, но хотелось бы деталей, особенно вот по этой части
Да, остаток x^2+x, степень 2
Мне не особо понятна какая тут арифметика получается. Надо тогда полностью правила умножения/обращения для таких пар, чтобы предметно обсуждать.
Как будто в этом кортеже не будет хватать информации о делителе, т.е. вот вы поделили (a, 0) на (b, 0) и получили (q, r). Как потом (q, r) умножить на (с, 0)?
Также стоит отметить, что рациональные числа -- это пары (a, b), где a, b - целые, gcd(a, b)=1 и b!=0 умножение (a, b) * (c, d)=(ac/gcd(ac, bd), bd/gcd(ac, bd)), обратный элемент (a, b)^{-1}=(b, a)
Посыпаю голову пеплом ... поправил
Ух, поизучаю, но на текущий момент у меня 0 знаний по указанным темам.
Добавлю