Пред.
След.
Макеты страниц
Распознанный текст, спецсимволы и формулы могут содержать ошибки, поэтому с корректным вариантом рекомендуем ознакомиться на отсканированных изображениях учебника выше Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике ДЛЯ СТУДЕНТОВ И ШКОЛЬНИКОВ ЕСТЬ
ZADANIA.TO
1.3. ВЫЧИСЛИТЕЛЬНАЯ СЛОЖНОСТЬ РАМ-ПРОГРАММДвумя важными мерами сложности алгоритма являются временная и емкостная сложности, рассматриваемые как функции размера входа. Если при данном размере в качестве меры сложности берется наибольшая из сложностей (по всем входам этого размера), то она называется сложностью в худшем случае. Если в качестве меры сложности берется "средняя" сложность по всем входам данного размера, то она называется средней (или усредненной) сложностью. Обычно среднюю сложность найти труднее, чем сложность в худшем случае. Нужно еще принять некоторое предположение о распределении входов, а реалистичные допущения часто бывает трудно сформулировать математически. Мы будем уделять основное внимание худшему случаю, поскольку его легче исследовать и он имеет универсальную приложимость. Однако следует помнить, что алгоритм с наименьшей сложностью в худшем случае не обязательно имеет лучшую сложность в среднем. Временная сложность в худшем случае (или просто временная сложность) РАМ-программы — это функция Чтобы точно определить временную и емкостную сложности, надо указать время, необходимое для выполнения каждой РАМ-команды, и объем памяти, используемый каждым регистром. Мы рассмотрим два таких весовых критерия для наших программ. При равномерном весовом критерии каждая РАМ-команда затрачивает одну единицу времени и каждый регистр использует одну единицу памяти. Если не оговорено противное, то сложность РАМ-программы будет измеряться в соответствии с равномерным весовым критерием. Второе определение, иногда более реалистичное, принимает во внимание ограниченность размера реальной ячейки памяти и называется логарифмическим весовым критерием. Пусть
Таблица на рис. 1.10 дает логарифмические веса Здесь учитывается, что для представления целого числа Логарифмический весовой критерий основан на грубом допущении, что цена выполнения команды (ее вес) пропорциональна длине ее операндов. Например, рассмотрим вес команды
Рис. 1.10. Логарифмические веса операндов.
Рис. 1.11. Логарифмические веса команд РАМ, где сумматоре, то ясно, что разумным весом, который следует придать команде Определим логарифмическую емкостную сложность РАМ-программы как сумму по всем работавшим регистрам, включая сумматор, величин Само собой разумеется, данная программа может иметь радикально различные временные сложности в зависимости от того, какой используется весовой критерий — равномерный или логарифмический. Если разумно предположить, что каждое число, встречающееся в задаче, можно хранить в виде одного машинного слова, то годится равномерная весовая функция. В иной ситуации для реалистического анализа сложности более подходящим может оказаться логарифмический вес. Оценим временную и емкостную сложности РАМ-программы из примера 1.1, вычисляющей пп. При подсчете временной сложности будет доминировать цикл с командой времени, и поэтому на выполнение всех команд MULT тратится время
что составляет Емкостная сложность определяется числами, которые хранились в регистрах от
Для этой программы равномерный вес реалистичен только в ситуации, когда столь большое целое, как Для программы из примера 1.2 в предположении, что
Для этой программы в ситуации, когда
|
1 |
Оглавление
|