- •1(18).Основное понятие теории графов. Определения и разновидности графов. Способы задания графов: аналитический, геометрический, матричный. Изоморфизм графов. Примеры.
- •2(19). Операции над графами с примерами.
- •3(20) Маршруты. Цепи. Циклы.
- •4(21) Метрические характеристики графа
- •5(22) Понятие сети. Матрица весов.
- •6(23) Алгоритм Беллмана-Мура (алгоритм корректировки меток)
- •7(24). Деревья и их свойства. Лес.
- •8(25). Задача об остове экстремального веса.
- •9(26) Эйлеровы графы и циклы. Алгоритм Флерн. Гальмитоновые графы и циклы
- •10(27) Планарные графы. Укладка графа. Теорема Эйлера. Теорема Понтрягина-Куратовского. Понятие искаженности и толщины непланарных графов
- •11(28) Алгоритм плоской укладки
- •2 Итерация
- •12(29). Раскраски графов
- •13(30)Потоки в сетях.
- •14(31) Потоки минимальной стоимости.
- •15(32)Элементы теории кодирования. Кодирование как способ представления информации.
- •16(33) Общий критерий взаимной однозначности. Теорема Маркова. Примеры
- •17(34) Неравенство Макмиллана.
- •18(35) Коды с минимальной избыточностью. Примеры.
- •19(36). Оптимальное кодирование Хаффмана. Решение задачи о построении кодов с минимальной избыточностью для двоичного кодирования.
- •20(37) Самокорректирующиеся коды. Коды Хэмминга. Алгоритм построения кода Хэмминга
- •21(38) Обнаружение ошибки в кодах Хемминга.
21(38) Обнаружение ошибки в кодах Хемминга.
Пусть при передаче кода b~=b1,b2,…,bl произошла ошибка в разряде с номером t, т.е. на выходе канала получено слов b~’=b’1,b’2,…,b’t-1,b’t,b’t+1,b’l.
Представим t в виде k-разрядного двоичного числа: t=Vk-1Vk-2…V1V0.
Покажем, как по коду b~’ найти разряды Vi для числа t.
Рассмотрим t’=V’k-1V’k-2…V0, где V’0=⊕Σb’j, j∈L0
V’1=⊕Σb’j, j∈L1
V’2=⊕Σb’j, j∈Lk-1
Докажем, что t’=t, т.е. V’0=V0…V’k-1=Vk-1
Случаи:
1)Пусть Vi=0. Это означает, что t∉Li={j∈L/Vi=1}
Следовательно, все разряды с номерами из множества Li, полученные на выходе канала без искажения, т.е.
b’j=bj, ∀j∈Li
Учитывая, что b2i=⊕Σbj, j∈Li, j≠2i.
Получим, что V’i=⊕Σb’j= b2i⊕ Σbj
b2i⊕ b2i=0 ∀j∈Li
2)Пусть Vi=1
t∈Li={ j∈L/Vi=1}
Некоторый разряд с номером из множества Li получен на выходе канала с искажением. Таким образом, ∃q∈Li:b’q=bq=bq⊕1 для всех j∈Li, j≠q, b’j=bj
Отсюда получаем V’i=⊕Σb’j=(⊕bi) ⊕1=0⊕1=1=Vi
Пусть в рассмотренном примере ошибка при передаче кодового слова b~=b1b2…b13=1010011010111 в 11 разряде, т.е. t=11. На выходе канала получено сообщение b’=b’1…b’13=1010011010011. Для этого кодового сообщения получаем
V’0=b’1⊕b’3⊕b’5⊕b’7⊕b’9⊕b’11⊕b’13=1⊕1⊕0⊕1⊕0⊕1=1
V’1= b’2⊕b’3⊕b’6⊕b’7⊕b’10⊕b’11=1
V’2= b’4⊕b’5⊕b’6⊕b’7⊕b’12⊕b’13=0
V’3= b’8⊕b’9⊕b’10⊕b’11⊕b’12⊕b’13=1
Таким образом, двоичное представление номера разряда, в котором произошла ошибка, есть t=V3V2V1V0=1011. Но это не что иное, как двоичное представление числа 1110.
Вывод: ошибочный разряд ошибочный.
Декодирование, получение исходного сообщения.
Этот шаг осуществляется следующим образом: после исправления ошибки нужно выписать информационные символы.
a~=a1a2…am=b3b5b6b7b9b10b11b12b13. В нашем примере b~=b1…b13=1010011010111, выписываем a~=101110111. Это и есть исходное сообщение.
