на стр 6, лекции 3, Очевидно "Ck <= модуль(Gk(е))*b(k+1)" (1) - , подскажите что значит "модуль" и почему это очевидно... |
Абак, алгорифмы Маркова, равнодоступная адресная машина
Равнодоступная адресная машина
Равнодоступная адресная машина (РАМ) — это числовая модель вычислительного устройства. Эта модель является наиболее близкой из рассмотренных к реальным вычислительным машинам и позволяет наиболее реалистично применять теоретические оценки сложности алгоритмов к реальным вычислениям.
Память машины состоит из регистров (ячеек). Каждый регистр имеет адрес и может содержать произвольное число. Регистр с номером 0 называется сумматором.
Программа — последовательность пронумерованных команд. Команда имеет вид

Коды операций

Операнд может быть одного из трех видов

Содержимое регистра с номером обозначим через
.
Значение
операнда
определяется в зависимости
от его вида следующим образом.

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

Основание логарифма при получении асимптотических оценок не имеет существенного значения.
Вес операнда
определяется в зависимости от его вида
следующим образом:

Команда | Действие | Логарифмический вес |
---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
печать ![]() |
![]() |
![]() |
переход на команду с номером ![]() |
1 |
![]() |
переход на команду с номером ![]() ![]() |
![]() |
![]() |
переход на команду с номером ![]() ![]() |
![]() |
![]() |
конец вычислений | 1 |
Например, команда имеет логарифмический вес

Временная сложность программы определяется как сумма весов всех выполненных команд с учетом их многократного выполнения.
Емкостная сложность программы определяется как сумма по всем регистрам длин максимальных чисел, побывавших в этих регистрах.
Пример.
Рассмотрим вычисление :

Этот псевдокод легко может быть заменен РАМ-программой, представленной в таблице 12.2.
Когда команда выполняется
-й раз, сумматор
содержит
, а
содержит
. Эта
команда выполняется
раз. При равномерном весовом
критерии суммарное время —
.
При логарифмическом весовом критерии суммарное время
равно
, где суммирование ведется по
.
Поскольку
, получаем

Емкостная сложность программы при равномерном критерии равна ,
при логарифмическом —
.