Скажем, у нас есть программа, которая получает пользовательский ввод или любые другие непредсказуемые события в произвольные моменты времени.
Для каждого типа события программа должна выполнить какое-то вычисление или получить доступ к ресурсу, который требует значительных затрат времени. Программа должна вывести результат как можно быстрее. Если поступают следующие события, может быть приемлемо отбросить предыдущие вычисления и заняться новыми.
Чтобы усложнить ситуацию, некоторые вычисления / доступ к ресурсам могут быть взаимозависимыми, то есть создавать данные, которые могут использоваться в других вычислениях.
Что важно, мы знаем схему, в которой эти события обычно происходят. Например: их относительная частота относительно друг друга или общий порядок и интервалы времени, в которые они происходят.
Задача состоит в том, чтобы создать алгоритм, который решает проблему наиболее статистически эффективным способом. Подходы, дающие неоптимальные решения, могут быть более чем достаточными.
Существует ли концепция разработки таких алгоритмов?
Пример:
Интернет-браузер с вкладками.
Когда указано загружать разные веб-страницы на нескольких вкладках, следует решить, загружать ли страницу в активную вкладку с более высоким приоритетом, визуализировать только видимую часть страницы или предварительно визуализировать полную страницу, если да, что делать сделать первым - предварительно отрендерить всю страницу для активной вкладки или вместо этого отобразить другие вкладки и т. д.
(я ничего не знаю о том, как на самом деле работают браузеры, но при условии, что это так, не повредит)