
- •7. Разработка эффективных алгоритмов: методы «Разделяй и влавствуй» и динамическое программирование.
- •2. Общие принципы код-я информации и формы ее представления в эвм
- •5. Анализ алгоритмов сортировки: обменная сортировка методом «пузырька», метод «простого выбора».
- •17. Анализ алг-мов поиска: послед-ый поиск в неупорядоч .Массиве, бинарный поиск в упорядоч. Массиве.
- •6. Разработка эффективных алгоритмов: методы «Разделяй и влавствуй» и «Балансировки».
- •8. Разработка эффективных алгоритмов: методы жадные алгоритмы. Задача о выборе заявок. Принцип жадного выбора.
- •Задача о выборе заявок
- •9. Алгоритм: содержательный и формализованный подходы к понятию «алгоритм». Свойства алгоритма и способы его описания.
- •21. Классификация ппо. Текстовые редакторы, издательские системы. Технологии обработки текстовой информации.
- •10.Линейность, ветвление и цикл. Их реализация в языках программирования.
- •4. Задача сортировки. Алгоритмы сортировки. Сортировка и индексирование.
- •12. Логические яп. Декларативность программ. Решение логических задач.
- •13. Функц яп. Декларативность прогтамм. Лямбда-исчислениею
- •29. Накопители инф-ции, принципы их действия. Физ. И лог. Стр-ра диска.
- •14. Языки программирования. Основные элементы. Обзор и классификация. Методологии программирования.
- •15. Понятие типа данных. Простые (базовые) типы данных. Ссылочный тип.
- •16. Структурированные типы данных (массивы, записи, множества, файлы)
- •18. Объектно-ориентированное программирование. Инкапсуляция. Наследование. Полиморфизм.
- •19. Программное обеспечение эвм. Операционные системы. Развитие ос. Оболочки ос.
- •20. Программное обеспечение эвм. Сервисные программы (антивирусы, архиваторы, дефрагментаторы, диагностика и отладка).
- •22. Классификация ппо. Табличная организация информации. Табличные модели. Табличные процессоры.
- •11. Подпрограммы. Их реализ. В яп. Рекурсия, модул. Пр-ние
- •23. Классификация ппо. Базы данных. Проектирование баз данных. Субд.
- •25. Реляционная алгебра. Операции над таблицами.
- •26. Эвм как средство обработки информации. Класс-кация эвм. Перспективы раз-ия вт
- •45. Нейр. Сети. Одн. Перцептр. Актив. Ф-ия. Лог. Операц. На основе прст. Перцептр.
- •27. Понятие архитектуры эвм. Центральные устройства эвм, их наз-е и характеристики
- •28. Устройства ввода и вывода информации, их назначения и функции.
- •30. Базовая эталонная модель взаимодействия открытых систем международной организации стандартизации и ее значение в развитии телекоммуникации.
- •Взаимодействие уровней модели osi
- •31. Протоколы общения компьютеров в сети (ip, tcp, udp, ftp, smpt, http, nntp) и интерфейсы. Области взаимодействия открытых сетей.
- •32. Принципы функционирования локальных вычислительных сетей. Основные компоненты и типы лвс. Одноранговые сети. Сети на основе сервера. Комбинированные сети.
- •33. Основные типы кабельных сред передачи данных. Узкополосная и широкополосная передача сигналов. Асинхронная передача и автоподстройка. Сетевой адаптер.
- •34. Беспроводные сети. Передача "точка-точка". Инфракрасные лазерные лвс. Беспроводные лвс с радиопередачей. Мобильные сети.
- •35. Классификация моделей. Моделирование физических процессов. Понятие вычислительного эксперимента, его этапы и фазы. Области применения вычислительного эксперимента.
- •36. Моделирование стохастических систем. Моделирование случайных величин с равномерным распределением. Методы проверки случайности данных.
- •37. Приближенное число. Абсолютная и относительная погрешности. Виды, основные источники, способы устранения погрешностей.
- •38. Решение уравнений методами бисекций и итераций.
- •40. Постан. З-чи интер-ния. Интер-ный многоч. Сплайны.
- •43. Обработка результатов наблюдений. Уточнение параметров методом средних и методом наименьших квадратов.
- •44. Нечеткая логика. Ф. Принадлежности. Ф. Ограничения. Основные операции в нечеткой логике.
- •46. Нейр. Сети. Обуч. С пом-ю алгор. Обр. Распр.
- •54. Алгебра высказываний. Нормальные формы. Совершенные нормальные формы. Теорема существования нормальной формы. Приложение алгебры высказываний к логико-математической практике.
- •47. Знания. Классификация. Экспертные системы. Искусственный интеллект
- •48. Представление знаний (логическая модель, семантические сети, фреймы, продукции).
- •49. Представление задачи оптимизации в канонической, стандартной и матричной форме. Постановка задачи линейного программирования. Математическая модель все типов задач линейного программирования.
- •50. Решение задач линейного программирования графическим методом.
- •1. Система огранич-й представл. В канонич. Видет
- •2. Пусть система огр-ий злп представлена в виде:
- •3. Пусть система ограничений злп представлена в виде
- •52. Элементы теории двойственности. Прямая и двойственная задачи линейного программирования. Основные теоремы двойственности. Применение двойственного симплексного метода.
- •53. Основные понятия теории графов. Степень вершины графа. Ориентированные графы, связные графы и компоненты связности. Понятие взвешенного графа. Способы задания графа.
8. Разработка эффективных алгоритмов: методы жадные алгоритмы. Задача о выборе заявок. Принцип жадного выбора.
Одна из самых конструктивных идей состоит в разложении задачи “размерности” n на одну операцию некоторой сложности, например, O(n) или O(1), и похожую задачу размерности m, меньшей n, или в общем случае на k задач с размерностями m1, m2, …, mk таких, что m1+ m2 + …+mk £n. Эта идея открывает путь к решению многих задач. Из нее исходят, в частности, почти все методы сортировки.
Теорема 1. Пусть a, b, c – неотрицательные постоянные. Решение рекуррентных уравнений
где n - степень числа c, имеет вид:
Из этой теоремы вытекает, что разбиение задачи размера n (за линейное время) на две подзадачи размера n/2 дает алгоритм сложности O(nlogn): a = c = 2. Если бы подзадач было 3, 4 или 8 (c=2, a=3>2, a=4>2, a=8>2 ), то получился бы алгоритм сложности порядка nlog3, n2 и n3 соответственно.
С другой стороны, разбиение задачи на 4 подзадачи размера n/4 дает алгоритм сложности O(nlogn): a = c = 4. Если бы подзадач было 9 и 16 (c=4, a=9>4, a=16>4) – порядка nlog3 и n2 соответственно.
Поэтому асимптотически более быстрый алгоритм умножения целых чисел можно было бы получить, если бы удалось так разбить исходные целые числа на 4 части, чтобы суметь выразить исходное умножение через 8 или менее меньших умножений. Другой тип рекуррентных соотношений возникает в случае, когда работа по разбиению задачи на не пропорциональна ее размеру.
Жадные алгоритмы. Задачи выбора объединяют огромное множество ситуаций, возникающих в повседневной жизни. Все эти задачи имеют следующие характерные общие свойства:
конечность множества вариантов выбора (например, путей между городами, способов расположения деталей);каждому варианту сопоставляется количественная характеристика (например, суммарное время работы, вес предметов в каждой из двух частей);требуется выбрать вариант, который обладает тем свойством, что его числовая характеристика удовлетворяет некоторому заранее сформулированному условию, или ответить на вопрос о существовании такого варианта (при этом нужен лишь один вариант, а иногда – все такие варианты или не сам вариант, а лишь значение его числовой характеристики); очень часто требуется, чтобы эта характеристика достигала экстремума на выбранном варианте – такие задачи выбора называются экстремальными задачами выбора.
Наиболее очевидным, как известно, методом решения таких задач является перебор всех вариантов и выбор требуемого. Для некоторых задач ничего лучше переборного алгоритма до сих пор не найдено.
Большое количество задач выбора связано с организацией вычисления на ЭВМ элементарных функций, с хранением, поиском и представлением данных в памяти компьютера, т.е. с задачами поиска, сортировки и порождения объектов. Построено множество изящных и хитроумных способов решения таких задач.
Множество вариантов выбора должно быть «хорошо» описано в условии задачи. Очень часто для этой цели используется традиционный способ: варианты определяются как подмножества некоторого конечного множества, удовлетворяющие фиксированному набору свойств. В этом случае варианты выбора называют траекториями.
Градиентный алгоритм – в некотором смысле самый простой алгоритм решения задачи выбора: каждый раз из множества выбирается наилучший из оставшихся элементов и достраивается, если это возможно, решение с помощью этого элемента. Отсюда другое название градиентного алгоритма – жадный алгоритм (greedy algorithmus).
Для многих оптимизационных задач есть более простые и быстрые алгоритмы, чем динамическое программирование.
Жадные алгоритмы, как и динамическое программирование, применяются в тех случаях, когда искомый объект строится по частям. Такой алгоритм делает на каждом шаге локально оптимальный выбор, - в надежде, что итоговое решение также окажется оптимальным. Например, стараясь набрать данную сумму денег минимальным числом монет, можно последовательно брать монеты наибольшего возможного достоинства (не превосходящего той суммы, которую нужно набрать).