Обновить
20
0.9
tnvd@tbl

Пользователь

Отправить сообщение

SVD+LP. Но смотря, что оптимизировать надо.

Я делал такое для пространства линейных функций в задаче расчета усредненной стоимости доставки для корзины товаров, возможные разбиения которой могут доставляться различными способами, которые может выбрать пользователь. Решал через метод наименьших квадратов, для этого строил систему уравнений частных первых производных. Эта система неполна в том смысле, что количество неизвестных больше, чем количество линейных уравнений. Ее решение искал с помощью псевдоинверсии на базе SVD.

Получается решение, которое зависит от вектора свободных параметров некоторой размерности n (геометрически решение лежит на дне долины на поверхности квадратов разниц). Далее для уточнения этих случайных параметров решал задачу линейного программирования на фиксированной выбранной целевой функции (например, алгебраическая сумма стоимости всех выбранных комбинаций доставок должна быть минимальной, но можно придумать и другую линейную функцию) при заданных граничных условиях. Здесь был выбран симплекс-метод, хоть, он и экспоненциальный, но граничные условия были такими простыми (например, стоимость сумм доставок разбиения корзины больше либо равно 0), что получающийся многогранник в n-мерном пространстве был очень ограничен по количеству ребер, по которым надо пробежаться при поиске решения.

Решение сделано на java, однопоточная калькуляция для корзины укладывалась в 50ms для 99.95 персентили, были использованы библиотеки ejml для SVD и apache commons math для ЛП

Какие-то простые json-ы в kotlinx.serialization легко туда-сюда гонять. Чуть что-то сложнее, например, хранить дерево с дополнительными атрибутами у узлов, уже практически нельзя. Если в jackson можно использовать @JsonAnyGetter/@JsonAnySetter, то тут забудьте об этом. Какие-то кастомные Collection-типы, имплементящие стандартные коллекции java (Например, EnumSet/EnumMap) - забудьте об этом. Либо у вас в коде будет куча ненужного байтоперекладывания и грязных хаков и/или бойлерплейта, как в этой статье, обходящих эти ограничения.

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

  2. Нет возможности создать кастомный сериализатор/десериализатор сложнее, чем просто записать/прочитать pojo-like объект

  3. Отвратительный API, например, нельзя просто так отнаследоваться от SerialDescriptor, а все его полезные имплементации либо internal, либо final, документация в возможных точках расширения бьет по рукам ("not intended for external implementation", "no guarantee" и т.п.), а без этого нельзя описать рекурсивно ссылающиеся типы, плоский buildClassSerialDescriptor для этого просто не предназначен.

А про работу с протобуфом - лучше бы ее не было, просто запихнули имплементацию узкого подмножества языка описания proto-схем "потому что, а почему бы и нет"

kotlinx.serialization как концепт - вполне ок, но он разбивается об суровую действительность, хотелось бы видеть развитие проекта

Угу, авиационный двигатель работает на 90% от максимальной мощности практически все свое время, при этом нельзя допускать, что он может встать колом в полете. Межсервисный интервал и так короткий по сравнению с автомобильными ДВС - 50 часов. Поэтому и турбирование движка тут враг, который значительно снижает ресурс и удорожает обслуживание.

а как раньше маркет (который не маркетплейс) работал? там тоже магазины либо загружали артикулы в кабинет, либо предоставляли http-апи для специального маркетного краулера

А так, витрина вот

Интересно, когда люди, касающиеся всего, что связано с нейронками, научатся в семантическое версионирование? Это же дичь, когда все должно быть прибито гвоздями: шаг влево - шаг вправо и все разламывается. Причем даже ломается и в рамках одной версии, условно говоря, результативность выхлопа может зависеть от того, в каком окружении влинковывали libjpeg в pillow пятилетней давности.

Потом рождаются такие статьи от преподавателей информатики, как разруливать ад версионирования с помощью батников.

В Яндексе поиск по товарам воскресили же. Теперь он не в маркете, а на главной в табе "товары"

Странно, что не дали возможность заливать обновление прошивки, используя другие каналы доставки, например, через WiFi или Ethernet

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

Так не у всех вылезает?

Многие клиенты Microsoft регулярно архивируют свои почтовые ящики, чтобы соблюдать требования законодательства

Это что за требования?

По-моему, это общая болячка z690, т.к. и на асусах ловили точно такую же проблему

Senior CSS-верстальщик

  1. Средств в бюджете на обновление спутников не выделено

  2. Отечественной компонентной базы под старые дизайны спутников нет, партнеры сотрудничать не хотят

  3. Существующие производственные мощности позволяют выпустить 2 спутника за шесть лет, при потребности шесть спутников за 4 года.

Вся затея выглядит как авантюрный прожэкт, который никогда не сойдётся, либо как грандиозная афера

Еще лет 20 назад мы в институте исследовали генерацию и прием СВЧ-излучения на самодельных СКВИД-ах (делали их в лабе напылением YBCO на подложку), а премии только сейчас начали раздавать. Кстати, сам Джозефсон получил Нобелевскую премию еще в 1973 году

Не, win как раз в приоритете, иначе бы не "фиксили" ее установку. Просто для них продукт - это не windows, а пользователи

Удивительно, olap-запрос после какого-то порога начинает убивать oltp-базу. Никогда такого не было, и вот опять...

Эти местные прикладывания подорожника через какое-то время снова перестанут работать.

И да, 256 MB на сессию для бд, которая обслуживает внешний сайт - ну такое

мне смс с кодом верификации пришла, хотя я там не регался

Я про целочисленные координаты для игровой логики. Самый тупой вариант - пронумеровать все ячейки от 0 до N - 1 и хранить граф переходов между смежными клетками в структуре а-ля List<Set<Int>>

Характеристика Эйлера (Г - Р + В = 2) для односвязанного многогранника не дает покрыть сферу только шестиугольниками, должно быть 12 пятиугольников, и неважно, где они будут размешаны среди остальных шестиугольников, главное, чтобы между собой не соприкасались. "Ровность"/"неровность" тут не влияет.

Ну да, все царапины легко устраняются шкурением и повторным анодированием. Если у вас не получилось это сделать самостоятельно, или получилось, но что-то пошло не так, то добро пожаловать в сервисный центр.

Информация

В рейтинге
1 990-й
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность