18. Задача о рюкзаке
Вход:
1.n видов предметов, которыe имеет веса w1,…,wn и стоимости с1,…cn;
2.рюкзак размера R.
Нужно унести в рюкзаке предметы наибольшей суммарной стоимости
Пусть– количество предметовi-го вида.
+…+® max
+…+£ R
Будем строить матрицу A размера n´(R+1). A[i][j] – максимальная стоимость предметов
из множества {1,…,i}, которые занимают в рюкзаке объем не более j.
A[n][R] - ?
A[i][0] = 0, A[1][j] = ?
Утверждение.
A[i][j] = max{mici + A[i-1][j - miwi], где максимум берется по всем 0£mi£j/wi
Трудоемкость - О()
Алгоритм неполиномиальный, например если R = (2n+1 – размер входа).
Но в реальности R ограничен, тогда алгоритм полиномиальный. Такие алгоритмы называются псевдополиномиальными.
19. Алгоритм Штрассена умножения матриц Задача: перемножить две матрицы n на n.Стандартное умножение – O(n3).Предположим для простоты, что n – степень двойки
AB = C
C1,1=A1,1B1,1+A1,2B2,1
………………………….
C2,2=A2,1B1,2+A2,2B2,2
T(n) – трудоемкость алгоритма умножения матриц T(n) = 8T(n/2) + 4*n2/4 . Решение этого рекуррентного уравнения – O(n3). Пусть мы умеем перемножать матрицы 2 на 2 с помощью m умножений и a сложений .
T(n) = mT(n/2) + a*n2/4 Лемма. T(n) = O(nlogm)
Лемма. Умножение двух матриц размера 2 на 2 можно выполнить с помощью 7 умножений и 18 сложений (вычитаний)
Теорема. Умножение двух матриц размера n на n можно выполнить за время O(nlog7)»O(n2,81)
В наст время сущ алгор с трудоемкост O(n2,376)
20. Определение. Машина Тьюринга – это семерка (Γ,b,Q,q0,qy,qn,), где Γ – множество символов, bΓ – пустой символ, Q – конечное множество состояний, q0,qy,qnQ – начальное и конечные состояния, : (Q\{qy,qn})ΓQΓ{-1,0,1}
- 1.Трудоемкость алгоритмов
- 2.Алгоритмы сортировки
- 3.Сортировка слиянием
- 4.Бинарные поисковые деревья
- 5.2-3-4 Деревья
- 6.Хеширование
- 7. Поиск подстроки. Алгоритм Кнута-Морриса- Пратта.
- 8. Графы. Структуры данных для представления графов
- 9. Алгоритм нахождения Эйлерова цикла
- 10 .Поиск в ширину(волновой алгоритм)
- 11.Поиск в глубину
- 12.Жадные алгоритмы и матроиды
- 13.Задача об остовном дереве. Алгоритмы Прима и Краскала, их реализация
- 14. Алгоритм Дийкстры
- 15. Алгоритм Флойда
- 16. Паросочетания в двудольных графах
- 17. Потоки и разрезы в сетях. Алгоритм Форда-Фалкерсона
- 18. Задача о рюкзаке
- 21. Классы p и np. Полиномиальное сведение.
- 22. Np- полные задачи. Теорема Кука-Карпа-Левина. Np-полнота задачи о клике
- 23. Алгоритмы с гарантированной оценкой точности. Задача упаковки
- 24.Метод локального поиска и поиска с запретами. Задача о максимальном разрезе.
- 25.Метод ветвей и границ. Задача коммивояжера.
- 26. Задача коммивояжера с неравенством треугольника. Алгоритм Кристофидеса
- 27.Задача о независимом множестве, точные и эвристические алгоритмы ее решения
- 28.Задача о раскраске графа, точные и эвристические алгоритмы ее решения.
- 31.Задача о раскраске хордальных графов
- 32.Генетические алгоритмы
- 33. Page Rank
- 34 Криптосистема с открытым ключом. Криптосистема rsa
- 35.Задача разделения секрета.
- 36. Алгоритмы сжатия информации