Re[7]: Учет кол-ва продукта во времени
От: watchmaker  
Дата: 23.11.15 11:25
Оценка:
Здравствуйте, NoHate, Вы писали:

NH>Здравствуйте, Кодт, Вы писали:


К>>В моей модели проблемы нет.

К>>Как я уже предлагал, каждый узел хранит пару (s,s') — текущий остаток и текущий градиент.

NH>Может быть я недостаточно разобрался с вашим решением, но я попробовал хранить текущий коэффициент и текущий остаток и встретился вот с такой проблемой:


Как мне кажется, между решениями, предложенными мною и Кодтом, принципиальных отличий нет.
Из непринципиальных же можно выделить такую пару:
В-первых, у Кодта хранится в узле дерева градиент, сумма и время (как ключ), а у меня изначально лишь градиент и время. То есть по-сути отличие в том, будем-ли мы раскрывать скобки в выражении k(x-t) или сохраним как есть. Подход без раскрытия требует меньше памяти, но, очевидно, плохо совместим с мгновенными изменениями (зря про них сразу не сказал :) ). Так что в итоге всё равно в обоих решениях получилось по три числа на узел (время, градиент и сумма).
И во-вторых, я предлагал сохранять в дереве оригинальные данные, а суммирование достигать через аугментацию. В решении же Кодта ситуация обратная — в узлах дерева сразу же хранятся суммы, но теперь аугментация понадобится, если нужно будет доступ к оригинальным значениям, например чтобы отвечать на запрос об произведённых изменениях за конкретную дату. То есть тут разница лишь что считать первичным значением, а что вторичным.

В остальном все операции имеют свой прямой аналог и в другом решении. Оно и понятно — ведь используется практически стандартный подход для суммирования через деревья. Так что если увидишь у Кодта хорошую идею — смело используй, она точно так же сработает в обоих алгоритмах :)
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.