№1 Предмет изучения дисциплины Дискретная математика
Дискретная математика, или дискретный анализ – область математики, которая занимается исследованием структур и задач на конечных множествах. Поэтому в качестве синонима иногда используется термин «конечная математика». Можно считать общепринятым деление математики на непрерывную и дискретную. Последняя представляет собой важное направление, имеющее характерные для него предмет исследований, методы и задачи. Специфика задач дискретной математики в первую очередь предполагает отказ от основных понятий классической математики – предела и непрерывности. Поэтому для задач дискретной математики обычные средства классического анализа являются вспомогательными.
Дискретная и непрерывная математика взаимно дополняют друг друга. Понятия и методы одной часто используются в другой. Один и тот же объект может рассматриваться с двух точек зрения и в зависимости от этого выбирается непрерывная или дискретная математика.
При исследовании, анализе и решении управленческих проблем, моделировании объектов исследования и анализа широко используются дискретные методы формализованного представления, являющиеся предметом рассмотрения в дискретной математике. К ним относятся методы, основанные на теоретико-множественных представлениях, графы, алгоритмы, математическая логика и др.
Дискретная математика предлагает:
· универсальные средства (языки) формализованного представления;
· способы корректной переработки информации, представленной на этих языках;
· возможности и условия перехода с одного языка описания явлений на другой с сохранением содержательной ценности моделей.
Сегодня дискретная математика является важным звеном математического образования. Умение проводить анализ, композицию и декомпозицию информационных комплексов и информационных процессов – обязательное квалификационное требование к специалистам в области информатики.
№2Моделирование
Математическое моделирование – это процесс, использующий математический аппарат для решения реальных задач. Его можно представить в виде диаграммы, изображенной на рис. 1.1.
Рисунок ..1. Основные этапы математического моделирования
В качестве примера моделирования рассмотрим следующую задачу: Расстояние между шестью белорусскими городами: Брест, Витебск, Гомель, Гродно, Минск и Могилев дано в табл. 1.1. Требуется найти дорожную сеть минимальной длины, связывающую все шесть городов.
Таблица.1. Расстояние между городами (абстрактная модель задачи).
-
Брест
Витебск
Гомель
Гродно
Минск
Могилев
Брест
–
618
531
274
348
526
Витебск
–
334
538
270
169
Гомель
–
573
308
178
Гродно
–
268
475
Минск
–
327
Могилев
–
Сама таблица является абстрактной моделью реальной задачи. На ее основе трудно получить решение. Поэтому преобразуем ее в графическую модель – граф, чьи вершины обозначают города, а ребра – связывающие их дороги. Каждое ребро графа, изображенного на рис. 1.2, имеет вес, который означает расстояние между соответствующими городами согласно табл. 1.1.
Рисунок.2. Графическая модель задачи
Алгоритм Прима
Шаг 1. Выберите произвольную вершину и ребро, соединяющее ее с ближайшим (по весу) соседом.
Шаг 2. Найдите не присоединенную (еще) вершину, ближе всего лежащую к одной из присоединенных, и соедините с ней.
Шаг 3. Повторяйте шаг 2 до тех пор пока все вершины не будут присоединены.
Рисунок.3. Граф, построенный используя алгоритм Прима
№3 Псевдокод
будем использовать псевдокод, основанный на языке программирования Pascal. Алгоритм в нем выглядит следующим образом:
begin
операторы исполняемых действий
операторы, управляющие порядком выполнения
end
Элементами алгоритмического языка являются операторы, которые можно разбить на две категории: операторы присваивания и операторы управления.
1.Оператор присваиванияприписывает переменным определенные величины и имеет такую общую форму:
имя переменной:= выражение
Пример 1.1. Алгоритм сложения двух чисел One и Two и присвоение результата переменной Sum.
begin
Input One and Two;
Sum:=One+Two
end
2.Оператор управленияопределяет порядок, в котором должны выполняться шаги алгоритма. Операторы управления бывают трех типов:
составные операторы;
условные операторы;
операторы цикла.
3.Составные операторыпредставляют собой список операторов, которые должны выполняться как отдельная команда в том порядке, в котором они записаны. Составные операторы имеют следующий вид:
begin
оператор 1;
оператор 2;
…
оператор п
end
4.Условныеоператорыпозволяют делать выбор между двумя альтернативными ситуациями. Они записываются в виде if-thenили if-then-else
Оператор цикла или просто цикл может иметь одну из трех форм записи:
for X := A toZ do оператор;
whileвыражение doоператор;
repeat
Пример 1.4. Алгоритм вычисления суммы квадратов первых п натуральных чисел.
begin
Sum:=0;
for i:= 1 to ndo
begin
j := i * i;
Sum := Sum + j;
end
OutputSum
end
Проследим алгоритм в случае п= 4, записав результаты в табл. 1.3
Таблица.2
-
i
j
Sum
Перед выполнением цикла
–
–
0
Первый проход цикла
1
1
1
Второй проход цикла
2
4
5
Третий проход цикла
3
9
14
Четвертый проход цикла
4
16
30
Выводимый результат: Sum = 30.
псевдокод для алгоритма Прима, который позволяет выделить граф с минимальным общим весом в исходном графе, имеющем ребра между любыми двумя вершинами.
Пример 1.6.
begin
v:= произвольная вершина;и:= ближайшая соседняя вершина;
связать v и и;
while остаются неприсоединенные вершины do
begin
u:= неприсоединенная вершина, ближайшая к одной из присоединенных вершин;
соединить и с ближайшей из присоединенных вершин;
end
end
№4