Ваpиант
1
1.(15) Предположим, что существует алгоритм,
вычисляющий произведение двух 5х5 матриц, используя 50 операций умножения и 120
операций сложения. Алгоритм какой cложности для умножения N x N матриц можно было бы тогда
получить?
2.(20) Доказать, что алгоритм
моделирования НКА М корректен, т.е. для каждого i множество построенных на шаге i
состояний
Si = {q | (q0;a1a2...ai)
├(q, е )}.
3. (15) Построить
позиционное дерево и найти двоичный
вектор Bv для каждой его вершины для слова
x = abcaba$.
Определить
с помощью дерева все позиции, в которых входит в х символ а.
4. (20) Докажите NP-полноту
задачи ГАМИЛЬТОНОВ ПУТЬ МЕЖДУ ДВУМЯ ВЕРШИНАМИ.
Вход: неориентированный граф G= (V, E), и две вершины s и t.
Вопрос: существует ли в G путь из s в t, проходящий через
все вершины по одному разу.
5.(15) Используя приближенный
полиномиальный алгоритм, решите следующую задачу о рюкзаке с ошибкой < 25%:
S={5, 15, 20, 10, 7, 9}, B=34.
6.(20) Модифицировать алгоритм
нахождения замыкания множества атрибутов X правилами из F методом "прямой
волны" так, чтобы для каждого а
из ЗАМЫКАНИЕ(X,F) выдавалась линейная
программа его вычисления. (Эта линейная программа - список номеров правил, по
которым вычисляется а).
7. (10) Приведите определение
следующих понятий, сопроводив
примерами:
"вычислительная модель (по Тыугу),
синтез программ в ней".
Ваpиант
2
1. (15) Предположим, что
существует алгоритм, вычисляющий произведение двух 4х4 матриц, используя 30
операций умножения и 120 операций сложения. Алгоритм какой сложности для
умножения N x N матриц можно было бы тогда получить?
2.(15) Используя метод
"прямой волны" синтезировать программу-терм для следующей системы
зависимостей (вычислительной модели):
1) A = 180 -B; 5) S = a*b*
Sin(A) ;
2) B = 180 - A; 6) S1 = a*b*Cos(A);
3) S = 2S1 + S2; 7) S1 = b*hCos(A)/2
4) S = a*h; 8) S2 = h*(a - b*Cos(A)).
9) S2 = S - 2S1;
Задача: по B, a и b найти S2.
3.(20) Как расширить алгоритм
моделирования НКА М, чтобы он находил в слове
x= a1 ... an наименьшее k такое, что для некоторого j слово aj ... ak принадлежит L(M), и
наименьшее из таких j.
4. (20) Пусть y = b1 b2 ...
bn. Доказать, что ДКА М, построенный для регулярного выражения I*y c помощью
функции отказов работает корректно, т.е. для любого слова a1 ... ak
(0;
a1...ak) ├ (j,e )
<=> b1...bj - суффикс слова a1 ... ak, но при i > j
слово b1...bi не является суффиксом слова a1...ak.
5.(15) Для экземпляра задачи
ВЕРШИННОЕ_ПОКРЫТИЕ
G=({1,2,3,4},
{(1,2),(1,3),(2,4),(3,4)}), k=2,
построить
эквивалентный экземпляр задачи ОРИЕНТ_ГАМИЛЬТОНОВ_ЦИКЛ и для некоторого
2-покрытия указать соответствующий гамильтонов цикл.
6. (20) Доказать, что
следующая задача является NP-полной. ГАМИЛЬТОНОВО ПОПОЛНЕНИЕ: по графу
G=(V,E) и числу k>0 определить,
можно ли к E добавить k ребер, чтобы в графе появился гамильтонов цикл.
7. (10) Приведите определение
следующего понятия, сопроводив примерами:
"абстрактная мера сложности
вычислений"
Ваpиант 3
1.(15) Используя алгоритм 4Р, вычислить
произведение булевых
матриц С = A*B:
1
1 1 0 1 1
0 1
A =
1 1 0 1 B =
0 0 0 1
0
0 1 1 1 0
1 0
1
0 0 1 0
1 1 1
2. (25) Как расширить алгоритм
моделирования НКА М, чтобы он находил в слове
x= a1 ... an наименьшее k такое, что для некоторого j подслово aj ... ak принадлежит L(M),
и наибольшее из таких j.
3. (20) Пусть даны два
слова-образца y1 и y2. Предложить алгоритм, который распознает входит ли одно
из этих слов в слово x= a1...an за
время
n + O( |y1| + |y2|).
Указание:
использовать функцию отказов, совпадающую на общем префиксе слов y1 и y2.
Рассмотреть пример: y1=abbabca, y2 =
abbabba.
4. (15) Доказать, что самое
длинное повторяющееся подслово слова x соответствует внутренней вершине
позиционного дерева T(x) с наибольшей
глубиной.
5.(20) Какое уравнение в
словах соответствует следующей 3-КНФ:
Ф =(X or ¬Y or Z) & (¬X or ¬Y or U) & (Y or ¬Z or ¬U) ?
Найдите
соответствие между некоторым набором значений переменных, на котором Ф истинна
и решением уравнения в словах.
6. (15) Используя метод
"прямой волны", вычислить замыкание для следующей системы
зависимостей F и набора исходных атрибутов Х = {S2,B, a},
F:
1) A = 180 -B; 5) S = ab Sin(A) ;
2) B = 180 - A; 6) S1 = aCos(A)bSin(A)/2;
3) S = 2S1 + S2; 7) S1 = bhCos(A)/2
4) b = aCos(A); 8) h = bCos(A)
7. (10) Какова связь задач
обращения матриц, вычисления определителя,
решения
систем линейных уравнений с задачей умножения матриц.
Ваpиант 4
1. (15) Пусть при вычислении
произведения булевых матриц можно использовать операции над двоичными
векторами. Показать, что алгоритм 4Р
можно с использованием таких операций выполнить за O(n*n/log(n)) шагов.
2. (25) Пусть M -
недетерминированный конечный автомат, x = a1 ...
an.
Модифицировать
алгоритм моделирования НКА так, чтобы
находить все
подслова
слова x, принадлежащие языку,
допускаемому М.
3. (20) Пусть y = b1 b2 ...
bn. Доказать, что алгоpитм ФОТ, вычисляющий фyнкцию отказов f(j), pаботает
коppектно.
4.(20) Построить с помощью
алгоpитма ППД позиционное дерево для
слова x = bababba$. Определить с его
помощью все позиции, в которых в х
входит подслово ab.
5. (20) Пусть требуется
уложить в контейнеры 30m предметов с весами:
s(Ai)= 0.5 + ε
(1 <= i <= 6m)
s(Ai)= 0.25 + 2ε
(6m < i <= 12m)
s(Ai)= 0.25 + ε (12m
< i <= 18m)
s(Ai)= 0.25 - 2ε (18m
< i <= 30m)
Сколько
контейнеров потребуется алгоритму, основанному на принципе «в первый подходящий
в порядке убывания»? Покажите, что при оптимальной укладке достаточно 9m
контейнеров и оцените ошибку приближенного алгоритма.
6. (15) Используя метод
"прямой волны", вычислить замыкание для следующей системы
зависимостей F и набора исходных атрибутов Х = {B, a,h},
F:
1)
A = 180 -B; 5) S2 = aS1 Sin(A) ;
2)
B = 180 - A; 6) S1 =
abCos(A)bSin(A)/2;
3)
S = 2S1 + S2; 7) S1 = bhCos(A)/2
4) S1 = ah;
Построить
линейную программу, вычисляющую S.
7. (10) Приведите определение
следующего понятия, сопроводив
примерами:
«сложностные классы P, PSPACE, NP, NPSPACE»
Каковы
известные соотношения между этими классами.
Ваpиант 5
1. (20) Пyсть П - матpица
пеpестановки. Пpедставим ее массивом P:
P[i] = j <=> П[i,j]
= 1.
Постpойте
алгоpитм сложности O(n), вычисляющий массив P', пpедставляющий обpатнyю к П
матpицy.
2. (15) Построить для
заданного регулярного выражения R НКА M, допускающий язык L(R), задаваемый R.
Найти с его помощью первое вхождение слова из L(R) в слово x.
R = a(aa + bb)*(b +aa) , x= abaaabba.
3. (20) Пусть y = b1 b2 ... bn. Доказать, что алгоpитм ФОТ, вычисляет фyнкцию отказов f(j) за линейное
вpемя O(n).
4. (20) Построить с помощью
алгоpитма ППД позиционное дерево для слова x = aabaab$. Определить с его
помощью все позиции, в которых в х
входит подслово ab.
5. (20) Для экземпляра задачи
ОРИЕНТ_ГАМИЛЬТОНОВ_ЦИКЛ
G=(V={1,2,3,4,5},
E= {(1,2),(1,3),(2,4),(4,3),(3,5),(5,1))
построить
эквивалентный экземпляр G' задачи НЕОРИЕНТ_ГАМИЛЬТОНОВ_ЦИКЛ
и
для некоторого гамильтонова цикла в G указать соответствующий
гамильтонов
цикл в G'.
6. (15) Используя алгоритм
быстрого замыкания, вычислить замыкание
для
следующей системы зависимостей F и набора исходных атрибутов Х = { b,f},
F: 1) a,b,c -> d; 4) e,f -> c;
2) b,c,d -> a; 5) f,e -> d;
3) g,b -> e; 6) b,f
-> g.
Какая
линейная программа вычисляет атрибут a?
7. (10) Сформулируйте теорему
о существовании сколь угодно сложных
предикатов
и теорему об ускорении для произвольных мер сложности.
Ваpиант 6
1.(15) Используя алгоритм
Штрассена для подходящего кольца (какого?),
вычислить произведение булевых матриц С = A*B:
1
0 1 0 0 1
1 0
A
= 0 1
0 1 B = 1 0
0 0
1
0 1 1 1 0
1 0
1
0 1 0 0 1
1 1
3. (15) Используя алгоритм
моделирования, проверить принимается ли слово x=baaac НКА М.
M= ({q1,q2,q3,q4,q5,q6,q7},{a,b,c},
программа:{
q1 a -> q2; q1 -> q3; q2 b ->
q4; q3 b -> q5;
q3 b -> q2; q3 -> q4; q4 a -> q5; q4
-> q6;
q5 a -> q6; q5 a -> q3; q6 c -> q7},
нач.
состояние - q1, мн-во заключительных
состояний = {q7}).
3. (15) Построить функцию отказов и ДКА для
раcпознавания вхождения подслова y = cdcc. Используя этот ДКА, найти вхождение у в слово x = dcddcdccc.
4.(20) Какая задача КЛИКА
соответствует следующей 3-КНФ:
Ф =(X or ¬Y or Z) & (¬X or ¬Y or U) & (Y or ¬Z or ¬U) ?
Найдите
соответствие между некоторым набором значений переменных,
на
котором Ф истинна и кликой в построенном графе.
5. (15) Используя алгоритм
быстрого замыкания, вычислить замыкание для следующей системы зависимостей F и
набора исходных атрибутов Х = { e,f},
F: 1) a,b,c -> d; 4) e,f -> c;
2) c,d -> b; 5) f,e -> d;
3) g,b -> k; 6) b,f -> g.
6. (20) Уплотненным
позиционным деревом (УПД) для
слова Х =x1...xn$ назовем
дерево, полученное из позиционного дерева склеиванием цепей: каждый путь, в
котором у всех вершин (кроме, быть может, первой и последней) имеется по одному
сыну заменяется на одно ребро из первой вершины этого пути в последнюю, которому приписывается слово, соответствующее
всему пути. Показать, что
а) у каждой внутренней вершины УПД имеется
хотя бы 2 сына;
б) число всех вершин УПД =О(n).
7. (10) Приведите определение
следующих понятий, сопроводив
примерами:
"функция отказов, эвристика безопасного суффикса".