Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпоры по дискретке.docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
206.09 Кб
Скачать

34. Кратчайший путь в орграфе. Алгоритм Дейкстры.

Кратчайший путь — это путь минимального общего веса, соединяющий выбранные вершины. Общий вес, по определению, равен сумме весов всех дуг, составляющих путь. Общий вес кратчайшего пути, ведущего из вершины u в вершину v, называют расстоянием от u до v. Алгоритм Дейкстры. Пусть (V, E) –нагруженный граф, и A –его вершина. Алгоритм выбирает кратчайший путь от вершины A до любой другой вершины v и присваивает его длину переменной d[v]. Для вершин u и v через w(u, v) мы обозначаем вес дуги uv, а в списке PATHTO(v) перечисляются вершины кратчайшего пути от A до v. begin for каждой v∈V do

begin

d[v]:=w(A,v); PATHTO(v):=A;

end

Отметить вершину A;

while остаются неотмеченные вершины do

begin

u:=неотмеченную вершину с минимальным

расстоянием от A;

Отметить вершину u;

for каждой неотмеченной вершины v

c условием uv ∈ E do

begin

d’:=d[u]+w(u,v)

if d’ < d[v] then

begin

d[v]:=d’

PATHTO(v):=PATHTO(u),v;

end

end

end

end

35. Дизъюнктивная нормальная форма логического выражения.

Дизъюнктивной нормальной формой (ДНФ) называется такая форма представления функции, при которой логическое выражение функции строится в виде дизъюнкции ряда членов, каждый из которых является простой конъюнкцией аргументов или их инверсий.

36. Проблема упрощения логического выражения. Карты Карно.

Решим задачу об «упрощении» выражения для булевой функции. Под «упрощением» мы подразумеваем эквивалентное выражение, использующее меньше символов, чем исходное. Метод состоит в упрощении дизъюнктивной нормальной формы булевой функции, несмотря на то, что эта форма может оказаться более громоздкой, чем сама функция. Мы будем писать

p̅q̅r ˅ p̅qr ˅ pq̅r̅ вместо (р̅˄q̅˄r) ˅ (р̅˄q˄r) ˅ (р˄q̅˄r̅) опуская символ ˄ аналогично тому, как в обычной алгебре опускают символ умножения. Это выражение — дизъюнктивная нормальная форма. Его можно упростить следующим образом: p̅q̅r ˅ p̅qr ˅ pq̅r̅ = (p̅rq̅ ˅ p̅rq) ˅ pq̅r̅ = по законам

коммутативности и

ассоциативности

= p̅r(q̅ ˅ q) ˅ pq̅r̅ = по закону дистрибутивности

= p̅r ˅ pq̅r̅ так как q̅ ˅ q=1 Упрощение функций можно делать с помощью карты Карно. Образно говоря. Карта Карно — это наглядная схема, предназначенная для обнаружения пар минтермов, которые можно сгруппировать и преобразовать в одно простое выражение. В случае булевых функций трех переменных р, q и r карта Карно представляет собой таблицу с двумя строками и четырьмя столбцами.

Столбцы обозначены дизъюнкциями, которые можно

получить из двух переменных р и q и их отрицаний, а строки —переменной r и ее отрицанием r.

Метки расставлены таким образом, что от столбца к столбцу в них происходит изменение ровно в одном символе. Ячейки карты Карно соответствуют восьми минтермам, которые можно построить

из трех булевых переменных. Если нам дано булево выражение в дизъюнктивной нормальной форме, то в ячейки, соответствующие минтермам, участвующим в ней, мы записываем цифру 1. Затем предлагается «группировать» пары «соседних» единиц в Карте Карно.