Автор работы: Пользователь скрыл имя, 27 Января 2012 в 00:57, шпаргалка
Работа содержит ответы на вопросы по дисциплине "Программирование и компьютеры"
Нахождение минимального пути в графах
Алгоритм применим для ненагруженных графов и работает за время O(N2), где N – количество вершин в графе. Воспользуемся этим алгоритмом для нахождения длин минимальных путей из vs во все остальные вершины графа:
Шаг 1. Каждой вершине vi поставим в соответствие метку Li – длину минимального пути от vs до vi. Изначально Li = ¥ для i¹s, Ls = 0. Заносим в очередь вершину vs. Переходим к шагу 2;
Шаг 2. Извлекаем очередную вершину vi из очереди [если осуществляется поиск минимального пути из vs в vi, то алгоритм может завершить работу сейчас]. Всем смежным с ней вершинам vj, метки которых Lj = ¥, присвоим метки Lj=Li+1. Занесём эти вершины в очередь. Переходим к шагу 3;
Шаг 3. Если очередь пуста, то алгоритм заканчивает работу, иначе переходим к шагу 2.
Теперь по полученным значениям Li восстановим один из минимальных путей из vs в vd:
Шаг 1. Если Ld = ¥, то пути из vs в vd не существует, и алгоритм заканчивает работу, иначе переходим к шагу 2.
Шаг 2. Текущей вершиной vc объявляем vd. Переходим к шагу 3;
Шаг 3. Занесём vc в стек. Если vc = vs, то переходим к шагу 5, иначе переходим к шагу 4;
Шаг 4. Текущей вершиной vc объявляем одну из вершин vj, метки которыхLj=Lc-1. Переходим в шагу 3;
Шаг 5. Последовательно извлекаем из стека все находящиеся в нём вершины – полученная последовательность и является одним из минимальных путей из vs в vd.
Алгоритм применим для нагруженных графов, дуги которых неотрицательны, и работает за время O(N2), где N – количество вершин в графе. Воспользуемся этим алгоритмом для нахождения длин минимальных путей из vs во все остальные вершины графа:
Шаг 1. Каждой вершине vi поставим в соответствие следующие метки:
1) Li – длину минимального пути от vs до vi;
2) Qi – вершину, из которой vi получила свою метку Li;
3) Ci – признак постоянности метки Li (если Сi = 0, то метка Li является временной, иначе постоянной.
Изначально Li = ¥, Ci = 0 для i¹s. Ls = 0, Cs = 1. Qi = 0 для всех i. Переходим к шагу 2;
Шаг 2. Текущей вершиной vc объявляем одну из вершин vj, метки которых Lj являются минимальными и временными (Ci = 0). Если такой вершины не найдено, то алгоритм заканчивает работу, иначе переходим к шагу 3;
Шаг 3. Присваиваем vc постоянную метку Cc = 1. Всем вершинам vj, смежным с vc, метки которых Lj > Lc + len(vc, vj) присваиваем метки Lj = Lc + len(vc, vj) и Qj = vc. Переходим к шагу 2.
Теперь по полученным значениям Li и Qi восстановим один из минимальных путей из vs в vd:
Шаг 1. Если Ld = ¥, то пути из vs в vd не существует, и алгоритм заканчивает работу, иначе переходим к шагу 2.
Шаг 2. Текущей вершиной vc объявляем vd. Переходим к шагу 3;
Шаг 3. Занесём vc в стек. Если vc = vs, то переходим к шагу 5, иначе переходим к шагу 4;
Шаг 4. Текущей вершиной vc объявляем вершину vj = Qc. Переходим в шагу 3;
Шаг
5. Последовательно извлекаем из
стека все находящиеся в нём
вершины – полученная последовательность
и является одним из минимальных
путей из vs в vd.
4. Алгебра логики. Понятие логической функции. Примеры логических функций одной и двух переменных. Формулы алгебры логики. Равносильность формул.
Алгебра логики
Алгебра логики – алгебра, образованная множеством B = {0, 1} и всеми логическими операциями, определёнными на этом множестве.
Понятие логической функции
Логическая функция – функция f (x1,…,xn), принимающая значения из B, когда её аргументы пробегают B. Список переменных функции – упорядоченный набор (x1, …, xn).
Примеры логических функций одной и двух переменных
Функцией от 1-го арг наз-ся функ f(x) заданная на мн-ве из 2-х элемнтов и принимающая значения в том же 2-х элементном множестве
x | j1 | j2 | j3 | j4 |
0 | 0 | 0 | 1 | 1 |
1 | 0 | 1 | 0 | 1 |
j1 – константа 0;
j2 – тождественная функция;
j3 – отрицание;
j4 – константа 1.
Фун-ия g(x,y) заданная на мн-ве {0,1}x{0,1}={0,1}2 и принимающая значения в 2-х эле-ом мн-ве т.о. сапостовляет любой упорядоченной паре составленной из 0 и 1 либо 0 либо1
x1 | x2 | j2 | j7 | j8 | j9 | j10 | j14 | j15 |
0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 |
0 | 1 | 0 | 1 | 1 | 0 | 0 | 1 | 1 |
1 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 1 |
1 | 1 | 1 | 0 | 1 | 0 | 1 | 1 | 0 |
Их 16, вот некоторые из них:
j2 – конъюнкция ( & );
j7 – сложение по модулю 2 ( Å );
j8 – дизъюнкция ( Ú );
j9 – стрелка Пирса ( ¯ );
j10 – эквиваленция ( « );
j14 – импликация ( ® );
j15 – штрих Шеффера ( | ).
Формулы алгебры логики
Алфавит алгебры логики содержит логические переменные, логические связки и скобки. Формула – слово в языке, порождённом КС грамматикой со следующими правилами:
I ® xi, I ® (ØI), I ® ( I & I ), I ® ( I Ú I ), I ® ( I ® I ), I ® ( I ¯ I ), I ® ( I | I ), I ® ( I « I ), I ® ( I Å I ).
В соответствии с принятыми соглашениями разрешается опускать скобки, которые могут быть однозначно восстановлены, а также опускать знак конъюнкции ( & ).
Пример: x1 & x2 ® x3 Ú x1.
Равносильность формул
Определение
Формулы наз-ся равносильные если они принимают одинаковые значения на всех наборах значений переменных.
Равносильность – отношение эквивалентности между формулами.
Основные равносильности
1) Коммутативность: A & B º B & A; A Ú B º B Ú A;
2) Ассоциативность: (A & B) & С º A & (B & С); (A Ú B) Ú С º A Ú (B Ú С);
3) Дистрибутивность: A & (B Ú С) º (A & B) Ú (A & С); A Ú (B & С) º (A Ú B) & (A Ú С);
4) Закон идемпотенции: A & A º A; A Ú A º A;
5) Законы де Моргана: Ø (A & B) º ØA Ú ØB; Ø (A Ú B) º ØA & ØB;
6) Законы поглощения: A & (A Ú B) º A; A Ú (A & B) º A;
7) Законы расщепления: A º (A Ú B) & (A Ú ØB); A º (A & B) Ú (A & ØB);
8) Свойство нуля: A & 0 º 0; A Ú 0 º A;
Информация о работе Шпаргалка по "Программированию и компьютерам"