Как прогнозировать промежуточный прогресс для пошаговой задачи? На сайте долгоиграющая задача выполняется шагами: серия ajax вызовов. Каждый выполняется секунд 12–18. Пользователю хочется показывать что-то часто обновляемое, предсказуемое, типа живого прогресса, мелкими шагами.Попробовал сделать линейно: предполжил, что progress = f(time) это просто k * time. При поступлении следующего ответа, этот k корректируется исходя из последней полученной точки. fiddle – имитация, время выполнения очередной пачки случайно +- 4 сек.
Похоже, линейность — неправильный подход: если реальный шаг внезапно тормозит, по сравнению с предыдущими, мой прогресс откатывается назад, когда приходят, наконец, реальные данные.
Как можно относительно реалистично угадывать прогресс, опираясь на дискретные шаги?

21 Авг 2019 в 06:13
180 +1
0
Ответы
1

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

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

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

Использование таких подходов может помочь более точно предсказывать прогресс выполнения задачи и отображать его пользователю в виде живого прогресса.

20 Апр 2024 в 13:22
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир