Size: a a a

2020 September 28

AT

Anatoly Tomilov in pro.algorithms
Andrey (@AndrewB330)
на емаксе есть пример для 2д, он легко до 3д дополняется

но я не уверен, можно ли будет максимум сделать
спасибо
источник

AT

Anatoly Tomilov in pro.algorithms
Kotomord_λapki
Вас дерево отрезков деревьев отрезков не устроит?
не знаю
источник

AT

Anatoly Tomilov in pro.algorithms
PROLOG ONE LOVE
На емаксе есть пример
спасибо
источник

AT

Anatoly Tomilov in pro.algorithms
Kotomord_λapki
Вас дерево отрезков деревьев отрезков не устроит?
по идее просто дерево отрезков, если упорядочивать по индексу для z-order curve, подойдёт
источник
2020 September 29

q

qwerty in pro.algorithms
Evgenii Zheltonozhskii🇮🇱
Можно первые два слагаемых оставить
почему кст? в некоторых книжках пишут, в некоторых опускают
источник

EZ

Evgenii Zheltonozhsk... in pro.algorithms
qwerty
почему кст? в некоторых книжках пишут, в некоторых опускают
Ну по определению О(nlogn+n)=O(nlogn)
источник

S

Stas in pro.algorithms
/report
источник
2020 October 03

AT

Anatoly Tomilov in pro.algorithms
Как задетектировать зацикливание в программе. Ограничение на размер цикла - S последовательных состояний. Могу получить хеш состояния. Пока придумал только создавать trie хешей и детектировать по превышению макс глубины. Это требует трекинга S указателей на ноды каждую итерацию и рост на S нод.
Можно ли что-нибудь придумать здесь? Допустим можно задетектировать не сразу, а с опозданием на M циклов.
источник

AT

Anatoly Tomilov in pro.algorithms
Состояния связаны и повторение двух подряд хешей почти наверняка означает зацикливание. Можно наверное сохранять пары и номер итерации. Когда встретится тройка пар, отстоящих через один и тот же интервал, то можно уже делать более ресурсозатратную проверку. Ведь так?
источник

AT

Anatoly Tomilov in pro.algorithms
Можно ещё хеши в хешмапу ограниченного размера записывать, а самый старый удалять и после того, как размер стал сокращаться и стабилизировался на каком-то значении, можно заключить, что произошло зацикливание
источник

K

Kotomord_λapki in pro.algorithms
Anatoly Tomilov
Как задетектировать зацикливание в программе. Ограничение на размер цикла - S последовательных состояний. Могу получить хеш состояния. Пока придумал только создавать trie хешей и детектировать по превышению макс глубины. Это требует трекинга S указателей на ноды каждую итерацию и рост на S нод.
Можно ли что-нибудь придумать здесь? Допустим можно задетектировать не сразу, а с опозданием на M циклов.
Ну, храните хэш стартового состояния, если за S+1 шагов в него не пришли - обновляйте на хэш текущего
источник

AT

Anatoly Tomilov in pro.algorithms
Тоже вариант
источник

M

MaxGraey in pro.algorithms
Anatoly Tomilov
Как задетектировать зацикливание в программе. Ограничение на размер цикла - S последовательных состояний. Могу получить хеш состояния. Пока придумал только создавать trie хешей и детектировать по превышению макс глубины. Это требует трекинга S указателей на ноды каждую итерацию и рост на S нод.
Можно ли что-нибудь придумать здесь? Допустим можно задетектировать не сразу, а с опозданием на M циклов.
статически или динамически? Если статически то это не всегда разрешимая задача, а вообще этим занимается reachability analysis и это довольно сложная тема для общего случая (для тривиальных програм возможно и простая). Если же динамически (в рантайме) довольно просто, достаточно хранить мета-состояние цикла и каждую итерацию сверять текущее состояние с предыдущим, если оно вдруг стало одинаковым - у нас бесконечный цикл
источник

M

MaxGraey in pro.algorithms
Вот один из пример динамического детектора
https://groups.csail.mit.edu/pac/jolt/paper.pdf
источник

A

Andrey in pro.algorithms
Anatoly Tomilov
Как задетектировать зацикливание в программе. Ограничение на размер цикла - S последовательных состояний. Могу получить хеш состояния. Пока придумал только создавать trie хешей и детектировать по превышению макс глубины. Это требует трекинга S указателей на ноды каждую итерацию и рост на S нод.
Можно ли что-нибудь придумать здесь? Допустим можно задетектировать не сразу, а с опозданием на M циклов.
заяц и черепаха?
источник

A

Andrey in pro.algorithms
MaxGraey
статически или динамически? Если статически то это не всегда разрешимая задача, а вообще этим занимается reachability analysis и это довольно сложная тема для общего случая (для тривиальных програм возможно и простая). Если же динамически (в рантайме) довольно просто, достаточно хранить мета-состояние цикла и каждую итерацию сверять текущее состояние с предыдущим, если оно вдруг стало одинаковым - у нас бесконечный цикл
а если зацикливается с периодом 2? просто сравнения с предыдущим не хватит
источник

M

MaxGraey in pro.algorithms
Andrey
а если зацикливается с периодом 2? просто сравнения с предыдущим не хватит
Чир значит 2? Шаг у периода итерации может быть любой, это никак не влияет на описанный принцип
источник

A

Andrey in pro.algorithms
Ну вот находимся мы в состоянии b, предыдущее -- a. Все ок. Перешли в a -- предыдущее b. Все ок. Перешли в b -- предыдущее a. Все ок, продолжаем. А цикл-то есть на самом деле
источник

A

Andrey in pro.algorithms
Может я просто не понял, что мы храним
источник

@N

@urandon Nikita Khom... in pro.algorithms
Kotomord_λapki
Ну, храните хэш стартового состояния, если за S+1 шагов в него не пришли - обновляйте на хэш текущего
Цикл может далеко не с первого состояния начаться
источник