Russian Qt Forum
Ноябрь 22, 2024, 14:51
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Программирование
>
Алгоритмы
>
Lazy Calculation(s)
Страниц:
1
2
[
3
]
4
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Lazy Calculation(s) (Прочитано 20839 раз)
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Lazy Calculation(s)
«
Ответ #30 :
Ноябрь 25, 2020, 13:13 »
Цитата: m_ax от Ноябрь 24, 2020, 10:33
Ну так вы выскажите свои подозрения? А мы их обсудим)
Ну я подозреваю что при выполнении 2 нитками алгоритм стартового поста будет при каждом запуске выдавать РАЗНЫЕ рез-ты (хотя входные данные одни и те же)
Более того, даже при выполнении 1 ниткой рез-ты воспроизводятся только если данные поступают в том же порядке (чего в общем случае никто не обещал)
В общем это та самая простота что "хуже воровства"
Записан
m_ax
Джедай : наставник для всех
Offline
Сообщений: 2095
Re: Lazy Calculation(s)
«
Ответ #31 :
Ноябрь 25, 2020, 14:12 »
Цитировать
Ну я подозреваю что при выполнении 2 нитками алгоритм стартового поста будет при каждом запуске выдавать РАЗНЫЕ рез-ты (хотя входные данные одни и те же)
Ну да, для данной реализации они вообще говоря каждый раз будут разными. Ну и что? Вон там Vanda в соседней ветке тоже каждый раз картинки разные получает..
Вопрос в том, на сколько это критично? И на сколько критично они "разные" будут в среднем..(Что такое "разные"?)
«
Последнее редактирование: Ноябрь 25, 2020, 14:15 от m_ax
»
Записан
Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..
Arch Linux Plasma 5
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Lazy Calculation(s)
«
Ответ #32 :
Ноябрь 25, 2020, 14:41 »
Цитата: m_ax от Ноябрь 25, 2020, 14:12
Вопрос в том, на сколько это критично? И на сколько критично они "разные" будут в среднем..(Что такое "разные"?)
Есть вещи которые инженер (или то же профессионал) улавливает интуитивно
Напр "достаточность" задачи или "воспроизводимость" рез-тов.
Конкретно "чем это грозит"... Пример. Просчитали данным алгоритмом. Потом просчитали честно все точки (долго). Сравнили в фотожопе - все Ок, погрешность не превышает заданную напр 5%. Теперь, (веселые и счастливые) считаем какую-то последовательность картинок (анимацию). На втором кадре ничего не изменилось, он должен быть == первому. А он-то совсем не равен
Анимация (мерзко) "дрожжит" (flick). Все ясно, тому козлу что делал - не платить, и больше с ним не связываться. Сразу, разговоров не будет.
Записан
m_ax
Джедай : наставник для всех
Offline
Сообщений: 2095
Re: Lazy Calculation(s)
«
Ответ #33 :
Ноябрь 25, 2020, 14:48 »
Тогда отказывайтесь от этого алгоритма. В противном случае, если речь идёт об анимации (много-много картинок) то в этой ситуации картинка неизбежно будет "дрожать".
Записан
Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..
Arch Linux Plasma 5
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Lazy Calculation(s)
«
Ответ #34 :
Ноябрь 25, 2020, 15:09 »
Цитата: m_ax от Ноябрь 25, 2020, 14:48
Тогда отказывайтесь от этого алгоритма. В противном случае, если речь идёт об анимации (много-много картинок) то в этой ситуации картинка неизбежно будет "дрожать".
Ну почему "неизбежно". Предложите решение(я) этой проблемы
Записан
m_ax
Джедай : наставник для всех
Offline
Сообщений: 2095
Re: Lazy Calculation(s)
«
Ответ #35 :
Ноябрь 25, 2020, 16:53 »
Цитировать
Ну почему "неизбежно". Предложите решение(я) этой проблемы
А вы не ходите вокруг до около..) Я так сразу даже не предложу решения..
Если хотите плавности анимации, то это может оказаться совсем нетривиальная задачка..
Могу пока только сделать предположение, что этот метод должен быть строго детерминистическим и, наверное,
с фиксированной сеткой (без всякого random)
Записан
Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..
Arch Linux Plasma 5
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Lazy Calculation(s)
«
Ответ #36 :
Ноябрь 26, 2020, 10:37 »
Цитата: m_ax от Ноябрь 25, 2020, 16:53
А вы не ходите вокруг до около..)
Ну вот, опять надо рассказывать как я делал, тогда уж (может быть) и покритикуют
Цитата: m_ax от Ноябрь 25, 2020, 16:53
Я так сразу даже не предложу решения.. Если хотите плавности анимации, то это может оказаться совсем нетривиальная задачка..
"Зашланговался". Ну это нормально, задача требует размышлений, это не футуры везде пихать
Цитата: m_ax от Ноябрь 25, 2020, 16:53
Могу пока только сделать предположение, что этот метод должен быть строго детерминистическим и, наверное,
с фиксированной сеткой (без всякого random)
И сразу "налил воды". Наверно рефлекторно, "публикуется", там без этого никак
Да, и формулирочка та еще "если хотите плавности". Мол, я чего-то там эдакого "хочу". Да меня никто не спрашивает, без этого выгонят с треском/позором
«
Последнее редактирование: Ноябрь 26, 2020, 10:48 от Igors
»
Записан
Racheengel
Джедай : наставник для всех
Offline
Сообщений: 2679
Я работал с дискетам 5.25 :(
Re: Lazy Calculation(s)
«
Ответ #37 :
Ноябрь 27, 2020, 15:12 »
Цитата: m_ax от Ноябрь 24, 2020, 10:36
Я боюсь (могу ошибаться) что уж лучше в таком случае с нуля всё переписать) Если уж совсем код древний и не расширяемый..
Но здесь, конечно, нужно в расчёт брать ресурсы и т.д..
Для инженера - всегда лучше
Ну в конечном счёте и для заказчика.
Но... бабло часто побеждает разум - обычно считается, что "там же только одну функцию починить надо!"
Записан
What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.
COVID не волк, в лес не уйдёт
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Lazy Calculation(s)
«
Ответ #38 :
Ноябрь 27, 2020, 15:54 »
Цитата: Racheengel от Ноябрь 27, 2020, 15:12
Для инженера - всегда лучше
Ну в конечном счёте и для заказчика.
А что Вы, батенька, все в оффтоп да в оффтоп
Как бум решать проблему воспроизводимости? Там же есть простое решение, пусть не идеальное. Уж его-то Вы точно укажете, да и вообще, я в Вас верю, может и еще что толковое предложите
Записан
m_ax
Джедай : наставник для всех
Offline
Сообщений: 2095
Re: Lazy Calculation(s)
«
Ответ #39 :
Ноябрь 28, 2020, 20:16 »
Цитировать
Ну вот, опять надо рассказывать как я делал, тогда уж (может быть) и покритикуют
Могу предположить, что это интерполяция (фильтр) между ближайшими кадрами. Т.е. аналог сглаживания одномерной кривой: блур, короче
Записан
Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..
Arch Linux Plasma 5
m_ax
Джедай : наставник для всех
Offline
Сообщений: 2095
Re: Lazy Calculation(s)
«
Ответ #40 :
Ноябрь 29, 2020, 00:32 »
Если моё предположение верно - то оно тоже ограничено: границы между контрастными областями также будут "дрожать"..
Записан
Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..
Arch Linux Plasma 5
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Lazy Calculation(s)
«
Ответ #41 :
Ноябрь 29, 2020, 11:33 »
Цитата: m_ax от Ноябрь 28, 2020, 20:16
Могу предположить, что это интерполяция (фильтр) между ближайшими кадрами. Т.е. аналог сглаживания одномерной кривой: блур, короче
Лично меня это интересует с точки зрения/задачи 3D рендера, хотя возможны и др применения за рамками моих интересов. Ну во всяком случае для рендера как-то лазить/считать/иметь 2 кадра одновременно - полная утопия
НО мы можем рендерить один кадр неск раз, и так часто делают для различных "буферных" фич (напр расчет битмаповских теней). Отсюда простая идея немного модифицировать алгоритм стартового поста:
- На первом проходе применяем lazy, но не бежим сразу считать "опорные" точки, а только маркируем/запоминаем их. Эту операцию придется делать в одной нитке, полагаем что она "достаточно быстрая". Заметим что kd-tree здесь не подходит (вставка слишком дорогая)
- После того как опорные точки накоплены, считаем их все наваливаясь всей тушей (нитками), это "разпоточивается" прекрасно.
- И наконец, веселые-счастливые, считаем второй (финальный) проход всеми нитками используя для интерполяции дерево (thread-safe) построенное на первом
Если входные данные следуют в произвольном порядке, то на первом проходе придется снвчала их все сохранить и отсортировать.
Ну это на словах "так просто", на деле тут немало скользких мест, поэтому я бы с удовольствием послушал какие-нить идеи (пусть безумные).
Записан
m_ax
Джедай : наставник для всех
Offline
Сообщений: 2095
Re: Lazy Calculation(s)
«
Ответ #42 :
Ноябрь 29, 2020, 13:05 »
Цитировать
- На первом проходе применяем lazy, но не бежим сразу считать "опорные" точки, а только маркируем/запоминаем их. Эту операцию придется делать в одной нитке, полагаем что она "достаточно быстрая".
А у вас что, "опорные" точки для всех кадров одни и те же? Я предполагал, что если картинка движется, то и "опорные" точки индивидуальны для каждого кадра..
Цитировать
Заметим что kd-tree здесь не подходит (вставка слишком дорогая)
Для kd-tree это ещё пол беды.. После множества вставок оно у вас быстро станет несбалансированным. Я вообще считаю, что там не нужен метод insert.
Переписал, кстати, своё kd-tree, с учётом балансировки при его создании)
Цитировать
- И наконец, веселые-счастливые, считаем второй (финальный) проход всеми нитками используя для интерполяции дерево (thread-safe) построенное на первом
Как всегда всё очень мутно и туманно..
Ну мы привыкшие)
Записан
Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..
Arch Linux Plasma 5
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Lazy Calculation(s)
«
Ответ #43 :
Ноябрь 29, 2020, 13:19 »
Цитата: m_ax от Ноябрь 29, 2020, 13:05
Как всегда всё очень мутно и туманно..
Ну мы привыкшие)
Как всегда, Вы не хотите подумать, даже немного, и спешите "клеить ярлыки"
Цитата: m_ax от Ноябрь 29, 2020, 13:05
А у вас что, "опорные" точки для всех кадров одни и те же? Я предполагал, что если картинка движется, то и "опорные" точки индивидуальны для каждого кадра..
Ну ведь вверху подробно разжевано в чем разница между 2 кадрами и 2
проходами
(одного и того же кадра). Конечно на каждом новом кадре все начнется с нуля, но если придут те же данные, то и рез-т будет точно тот же.
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Lazy Calculation(s)
«
Ответ #44 :
Ноябрь 29, 2020, 13:29 »
Цитата: m_ax от Ноябрь 29, 2020, 13:05
Для kd-tree это ещё пол беды.. После множества вставок оно у вас быстро станет несбалансированным.
Любое пополнение ведет к немедленной пере-балансировке, т.е. перестройке всего дерева (медиана-то убежала). Строго говоря, это не дерево а просто массив (хитро отсортированный)
Записан
Страниц:
1
2
[
3
]
4
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...