(Оффтоп)
Я не могу понять, что вам не ясно.
Вы определение МТ видели?
Машина реализующая событийный цикл: запускается, ждет на вход текст программы, выполняет ее, выводит на выход результат, ждет дальнейших инструкций. Причем, во время выполнения алгоритма она может получить новое задание(принять текст) и поставить его в очередь (в простом случае).
Ага, хорошо (правда, термин "Машина реализующая событийный цикл" придется считать бесструктурным, но пофиг). У МТ есть лента и функция переходов
. Не сильно понятно, что такое "программа", будем считать, что программа - это новое слово на чистой ленте и новая функция
. Время
номер шага. "Ждет" - это ничто (нет в МТ такого свойства).
Тогда эту ситуацию МТ напрямую вроде бы не описывает. Свойство "Ждет", например, прямо не описывается. Если пренебречь ожиданием и моментами выставления новых заданий, то данная ситуация может быть просто описано как последовательное вычисление разных программ, можно на разных МТ, можно на одной и той же (МТ делает 1-е вычисление, потом очищает ленту, переходит в новое множество состояний, делает 2-е вычисление и т.п.). Но так длина очереди, средний объем очереди, число заданий и т.п. теряется из рассмотрения.
Однако, можно извратиться и все это всунуть в МТ. Только букв будет много. Надо просто проэмулировать весь описываемый процесс (МТ и все вычисления, ввод задания, постановку его в очередь) на некоей другой абстрактной МТ
. Т.е., например, ленту
разбить на
частей (ячейки
-й части - это последовательность
из
), в 1-й части писать ленту исходной МТ, во 2-й части - писать функцию
из МТ, вычисление которой будет эмулироваться, закодированную каким-либо образом, в 3-й части - моменты времени, в которые вводят новые ленты и новые функции переходов, в 4-й - вводимые программы и т.п. Соотв-но,
будет эмулировать на 1-й части вычисление с помощью функций переходов во 2-й части. Как только вычисление закончено - ленту стираем, программу стираем - если в 4-й части есть вводимые функции переходов и содержания ленты, то самые крайние функции переходов и ленты переписываем на 2-ю часть, а из 4-й - стираем. Если в 4-й части ничего нет -
будет бегать туда-сюда - это и будет называться "МТ ждет". В 5-й части можно "инкрементно" считать время и сравнивать его после каждого шага вычисления исходной МТ с моментами времени в части 3. Если совпадают, то МТ ВНЕЗАПНО начинает из памяти (в смысле из состояний
) писать в 4-ю часть ленты
новую ленту МТ и новую функцию переходов для нее - это назовем "постановкой новой программы в очередь". Можно вынести это также на 6-ю часть ленты и таким образом "постановкой новой программы в очередь" станет просто переписывание программы из 6-й части ленты в 4-ю часть. Как вариант.
Как-то так. Ясно, что
в обычном смысле ничего не вычисляет, а по умолчанию зациклена.
Удовлетворяет?
Соотв-но, чтобы это описать, лучше сделать новую модель.
Делать мне ее лень - это несложно, потому Вы это сами должны делать, кроме того, Вы явно сидите в предметной области, которая мне неизвестна, из которую Вам надо (а может быть и не надо?) извлекать модель. Модель ведь нужна попроще, напридумывать моделей можно дофига