- •Вопросы госэкзамена по направлению
- •09.03.03 «Прикладная информатика», 2020-2021 уч.Год Дисциплина «Вычислительные системы, сети и телекоммуникации»
- •Понятие вычислительной системы; архитектура и организация; этапы развития
- •Краткая характеристика первого и второго поколений вычислительных систем
- •Технические новации вычислительных систем третьего поколения
- •Специфика вычислительных систем четвертого и пятого поколений
- •Концепция вычислительной машины с хранимой в памяти программой
- •Классификация вычислительных систем, таксономия Флинна
- •Основная память вычислительной машины; временные характеристики
- •Структура вычислительной машины фон Неймана
- •Устройство управления вычислительной машины фон Неймана
- •Арифметико-логическое устройство, укрупненное представление тракта данных
- •Управление трактом данных, стек, машинный цикл с прерыванием
- •Шестиуровневая модель современной вычислительной системы
- •Параллельные вычислительные системы, закон Амдала
- •Параллелизм
- •Параллелизм на уровне инструкций
- •Параллелизм данных
- •Параллелизм задач
- •Распределённые операционные системы
- •Закон Амдала
- •Эталонная модель взаимодействия открытых систем
- •Физический уровень модели osi/rm
- •Потенциальная скорость передачи данных; формулы Шеннона и Найквиста
- •Канальный уровень модели osi/rm; система стандартов ieee 802
- •Межсетевой уровень модели osi/rm
- •Транспортный уровень модели osi/rm
- •Назначение и примеры реализации уровней 5, 6, 7 модели osi/rm
- •Дисциплина «Сетевое управление и протоколы»
- •Стеки коммуникационных протоколов
- •Способы и протоколы маршрутизации в ip-сетях
- •Адресация в сетях ip, классы сетей
- •Структурирование ip-сетей с помощью подсетей; маски подсетей
- •Протокол iPv6
- •Дисциплина «Мультимедиа технологии»
- •Психофизиологический закон Вебера-Фехнера
- •Кривые равной громкости; динамический диапазон
- •Восприятие сложных звуков, критические полосы
- •Градиент передачи яркости, гамма-коррекция
- •Цветовые модели
- •Цветовые стандарты
- •Цветовое пространство yCbCr
- •Цветовая субдискретизация
- •Дисциплина «Методы обработки аудио и видео данных»
- •Дискретизация, теорема Котельникова
- •Квантование; шум квантования
- •Основы устранения избыточности и сжатия аудиоданных с потерями
- •Характеристики электронных изображений
- •Растрово-пиксельный принцип электронного изображения
- •Дисциплина «Статистическая обработка информации»
- •Разделы статистической обработки информации: теория оценок, теория проверки статистических гипотез
- •Смещенность оценки; примеры смещенных и несмещенных оценок
- •Состоятельность оценки; примеры состоятельных и несостоятельных оценок
- •Эффективность оценки; функции штрафа и риска
- •Смещенность симметричного распределения: выборочное среднее, выборочная медиана, усеченное среднее
- •Метод моментов: пример нахождения параметров равномерного распределения
- •Оценка закона распределения случайной величины: эмпирическая интегральная функция распределения
- •Оценка закона распределения случайной величины: метод гистограмм
- •Коэффициенты асимметрии и эксцесса; диаграммы Каллена-Фрея
- •Дисциплина «Построение и анализ графовых моделей»
- •Графы: определения, соотношение числа ребер и вершин
- •Изоморфизм графов, примеры
- •Пути, цепи, циклы; связность графов; алгоритм нахождения компонент связности
- •Эйлеров цикл: определение, условие существования, алгоритм нахождения
- •Гамильтонов цикл: определение, алгоритм нахождения на основе динамического программирования
- •Деревья: остовное дерево, алгоритм Крускала
- •Способы хранения структуры графа в эвм
- •Алгоритм поиска кратчайшего пути в графе
- •Задача о коммивояжере: оптимальный и эвристический алгоритмы решения
- •Раскраска графов, эвристический алгоритм раскраски
- •Дисциплина «Имитационное моделирование»
- •Входные потоки заявок смо: классификация и основные характеристики
- •Модель сервера смо
- •Модель буфера смо; дисциплины обслуживания
- •Классификация Кендалла
- •Теорема Литтла
- •Время пребывания заявки в системе типа m/m/1; среднее количество заявок в системе
- •Три леммы о пуассоновском потоке (слияние, расщепление, выход m/m/1)
- •Расчет однонаправленных сетей массового обслуживания (сети Джексона)
Задача о коммивояжере: оптимальный и эвристический алгоритмы решения
Задача коммивояжёра— одна из самых известных задач комбинаторной оптимизации, заключающаяся в поиске самого выгодного маршрута, проходящего через указанные города хотя бы по одному разу с последующим возвратом в исходный город. В условиях задачи указываются критерий выгодности маршрута (кратчайший, самый дешёвый, совокупный критерий и тому подобное) и соответствующие матрицы расстояний, стоимости и тому подобного. Как правило, указывается, что маршрут должен проходить через каждый город только один раз — в таком случае выбор осуществляется среди гамильтоновых циклов.
Известная как минимум с 19 века задача коммивояжера имеет множество способов решения и неоднократно описана. Ее оптимизационная версия является NP-трудной, поэтому оптимальное решение можно получить либо полным перебором, либо оптимизированным полным перебором — методом ветвей и границ.
Метод ветвей и границ (оптимальный алгоритм)
Алгоритм Литтла является частным случаем МВиГ, т.е. в худшем случае его сложность равна сложности полного перебора. Теоретическое описание выглядит следующим образом:
Имеется множетво S всех гамильтоновых циклов рафа. На каждом шаге в S ищется ребро (i, j), исключение которого из маршрута максимально увеличит оценку снизу. Далее происходит разбиение множества на два непересекающихся S1 и S2. S1 — все циклы, содержащие ребро (i, j) и не содержащие (j, i). S2 — все циклы, не содержащие (i, j). Далее вычисляется оценка снизу для длины пути каждого множества и, если она превышает длину уже найденного решения, множество отбрасывается. Если нет — множества S1 и S2 обрабатываются так же, как и S.
Имеется матрица расстояний M. Диагональ заполняется бесконечными значениями, т.к. не должно возникать преждевременных циклов. Также имеется переменная, хранящая нижнюю границу.
Стоит оговориться, что нужно вести учет двух видов бесконечностей — одна добавляется после удаления строки и столбца из матрицы, чтобы не возникало преждевременных циклов, другая — при отбрасывании ребер. Случаи будут рассмотрены чуть позже. Первую бесконечность обозначим как inf1, вторую — inf2. Диагональ заполнена inf1.
Из каждого элемента каждой строки вычитается минимальный элемент данной строки. При этом минимальный элемент строки прибавляется к нижней границе
Из каждого столбца аналогично вычитается минимальный элемент и прибавляется к нижней границе.
Для каждого нулевого элемента M(i, j) вычисляется коэффициент, равный сумме минимальных элементов строки i и столбца j, исключая сам элемент (i, j). Этот коэффициент показывает, насколько гарантированно увеличится нижняя граница решения, если исключить из него ребро (i, j)
Ищется элемент с максимальным коэффициентом. Если их несколько, можно выбрать любой (все равно оставшиеся будут рассмотрены на следующих шагах рекурсии)
Рассматриваются 2 матрицы — M1 и M2. M1 равна M с удаленными строкой i и столбцом j. В ней находится столбец k и строка l, в которых не содержится inf1 и элемент M(k, l) приравнивается inf1. Как было сказано ранее, это необходимо во избежание преждевременных циклов (т.е. на первых этапах (k, l) == (j, i)). Матрица M1 соответствует множеству, сожержащему ребро (i, j). Вместе с удалением столбца и строки ребро (i, j) включается в путь.
M2 равна матрице M, у которой элемент (i, j) равен inf2. Матрица соответствует множетсву путей, не сожержащих ребро (i, j) (важно понимать, что ребро (j, i) при этом не исключается).
Переход к п.1 для матриц M1 и M2.
Эвристика состоит в том, что у матрицы M1 нижняя граница не больше, чем у матрицы M2 и в первую очередь рассматривается ветвь, содержащая ребро (i, j).
Жадный алгоритм (эвристический алгоритм)
Идея этого алгоритма очень проста. При выборе очередного города берётся ближайший город в котором мы ещё не были. Такой подход, по понятным причинам называется "жадным". К сожалению, если в начале путь получается коротким, то в конце часто возникает очень большой прирост его длины.
В жадном алгоритме принципиально какой город выбирается в качестве стартового. Чтобы улучшить результат, будем по очереди делать стартовым каждый город, выбирая тот вариант, который даст кратчайший путь. В начале следующей итерации вспомогательный массив way заполняется номерами городов: way = [0,1,2,3,...,N-1] и на первое место ставится город j=0,1,2,...N-1. Для этого он меняется местами с нулевым элементом массива. Затем ищется ближайший к нему город и ставится на первое место (снова при помощи перестановки элементов массива функцией swap). Эти действия продолжаются, пока не сформируется полный путь