Ориентированные графы курсовая. Курсовая_Зебольд. Ориентированные графы
Скачать 70.53 Kb.
|
МИНИСТЕРСТВО НАУКИ И Высшего ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ ФГАОУ ВО «СЕВЕРО-КАВКАЗСКИЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ» Факультет математики и компьютерных наук имени профессора Н.И. Червякова КАФЕДРА вычислительной математики и кибернетики КУРСОВАЯ РАБОТА по дисциплине «Дискретная математика» на тему: «Ориентированные графы» Выполнил: Зебольд Даниил Александрович студент 2 курса группы ПМИ-б-о-21-1 направления 01.03.02 – Прикладная математика и информатика Направленность (профиль) Вычислительная математика и математическое моделирование очной формы обучения ________________________ (подпись) Руководитель работы: Самойленко В.В. доцент кафедры Вычислительной математики и кибернетики Работа допущена к защите _______________________ ______________ (подпись руководителя) (дата) Работа выполнена и защищена с оценкой _________________________ Дата защиты______________ Члены комиссии: ________________ __________ _______________ (должность) (подпись) (И.О. Фамилия) ________________ _______________ _______________ (должность) (подпись) (И.О. Фамилия) ________________ _______________ _______________ (должность) (подпись) (И.О. Фамилия) Ставрополь, 2022 г. Содержание Введение 3 1. Ориентированные графы 4 1.1 Основные определения 4 1.2 Полустепени исхода и полустепени захода 8 1.3 Пути 11 2. Описание алгоритма 15 3. Описание программы 17 3.1. Общие сведения 17 3.2. Функциональное назначение 17 3.3. Описание логической структуры программы 17 3.4. Использование технических средств 18 3.5. Описание данных 18 3.6. Руководство пользователю 18 3.7. Структурная схема программы 19 Заключение 20 Список литературы 21 ВведениеВ настоящее время дискретная математика и смежные с ней разделы привлекают большое внимание специалистов различных областей науки и техники, являясь эффективным аппаратом формализации современных инженерных задач, связанных с дискретными объектами. Особое значение с практической точки зрения имеет теория графов, использующаяся при проектировании интегральных схем и схем управления, исследовании автоматов и логических цепей, при системном анализе, автоматизированном управлении производством, при разработке вычислительных и информационных сетей, в схемотехническом и конструкторско-топологическом проектировании, и т.д. Обширное применение теория графов находит в современной вычислительной технике и кибернетике: в теоретическом программировании, при проектировании ЭВМ, баз данных, систем логического управления. В приложениях часто приходится рассматривать графы с ориентированными ребрами, т. е. ребрами, для которых указаны начало и конец. Примерами таких графов являются сети автомобильных дорог с односторонним движением или схемы программ для ЭВМ. Недостаточно простых (неориентированных) графов и для описания несимметричных отношений. Примерами подобных отношений могут служить порядок выполнения комплекса работ, задаваемый с помощью сетевого графика, или турнирная ситуация в спортивных соревнованиях. Темой курсовой работы является поиск сильных компонент ориентированного графа. Работа состоит из трех частей: в первой, теоретической, будет дан обзор основных понятий для ориентированных графов; во второй – приведен алгоритм поиска сильных компонент; в третьей – программная реализация алгоритма и описание программы. 1. Ориентированные графы1.1 Основные определенияПусть V — конечное непустое множество, V2 — его декартов квадрат. Ориентированный граф (орграф)—это пара (V, А), где A V2. Элементы множества V называются вершинами орграфа G=(V, А), а элементы множества А — его дугами. Таким образом, дуга — это упорядоченная пара вершин. Множества вершин и дуг орграфа G обозначаются через VG и AG соответственно. Число |VG| называется порядком орграфа G и обозначается через |G|. Если х = (u, v) — дуга, то вершины u и v называются ее концевыми вершинами, причем u называется началом дуги х, а. v — концом. Говорят, что дуга инцидентна каждой из своих концевых вершин. Говорят также, что дуга исходит из своего начала и заходит в свой конец. Дуга с совпадающими началом и концом, т. е. дуга вида (v, v), называется петлей. Можно определить ориентированные графы с несколькими дугами, имеющими общее начало и общий конец (мультиграфы). Такие дуги называются параллельными. На рисунке дуга изображается направленной линией, идущей от начала дуги к концу. Направление линии обозначается стрелкой. Например, для графа G, представленного на рис. 1, VG={v1, v2, v3, v4, v5}, AG= {x1, x2, x3, x4, x5, x6, x7}, причем x1 и x2 —параллельные дуги, a x7 — петля. Вершины орграфа называются смежными, если они являются концевыми для некоторой дуги. Дуги называются смежными, если они имеют общую концевую вершину. Пусть G— некоторый орграф. Ориентированным маршрутом (или просто маршрутом) в графе G называется такая последовательность S = (v0, x1, v1, x2, v2, x3, v3, x4,.., vn, xn,) (1) его чередующихся вершин vi и дуг хj, что xi = (vi-1, vi) (i = 1, n). Такой маршрут назовем (v0, vn) – маршрутом. Вершины v0 и vn назовем крайними, а остальные вершины маршрута (1) — промежуточными (внутренними). Длиной маршрута называется число входящих в пего дуг. Маршрут называется цепью, если все входящие в пего дуги различны, и путем, если все входящие в него вершины, кроме, возможно, крайних, различны. Если в орграфе G нет параллельных дуг, то маршрут (1) может быть задан последовательностью входящих в него вершин: S=( v0, v1, v2, v3,.., vn). В любом случае маршрут можно задать последовательностью входящих в него дуг: S = (x1, x2, x3, x4,.., xn,) Рис. 1. Маршрут называется циклическим, если его первая и последняя вершины совпадают. Циклический путь называется контуром. Очевидно, что любой (u, v) – маршрут при u v содержит (u, v)-путь, а при u = v — контур. Последовательность (1) чередующихся вершин и дуг орграфа G, таких что xi = (vi-1, vi) или xi = (vi, vi-1), называется полумаршрутом. Аналогично определяются полуцепь, полупуть и полуконтур. Если в орграфе существует (u, v) -маршрут, то говорят, что вершина v достижима из вершины u. Любая вершина считается достижимой из себя самой. Орграф называется сильным (или силъносвязным), если любые две его вершины достижимы друг из друга. Орграф называется односторонним (или односторонне-связным), если для любой пары его вершин по меньшей мере одна достижима из другой. Орграф называется слабым (слабосвязным, связным), если любые две его вершины соединены полупутем. Поскольку любая вершина графа достижима из себя, то одновершинный граф одновременно и сильный, и односторонний, и слабый. Очевидно, что каждый сильный граф является односторонним, а каждый односторонний — слабым. Очевидно также, что любые две несовпадающие вершины сильного орграфа принадлежат некоторому циклическому маршруту. На рис. 2, а изображен сильный орграф, на рис. 2, б — односторонний, а на рис. 2, в — слабый. Рис. 2. Маршрут, содержащий все вершины орграфа G, называется остовным. Утверждение 1. Орграф является сильным тогда и только тогда, когда в нем есть остовный циклический маршрут. Необходимость. Пусть G — сильный орграф и T = (v0, x1, v1, x2, v2,.., xn, v0)—его циклический маршрут, проходящий через максимально возможное число вершин. Если этот маршрут не является остовным, то возьмем вне его вершину v. Так как G — сильный орграф, то существуют маршруты T1 = (v0, y1, .., v), T2 = (v0, z1, .., v0) Но тогда циклический маршрут T’ = (v0, x1, v1, .., xn, v0, y1, .., v, .., z1, v0) содержит большее, чем Т, число вершин, что противоречит выбору маршрута Т. Следовательно, Т — остовный маршрут. Достаточность. Пусть u и v — две произвольные вершины орграфа G, а T = (v0, x, .., v, y, .., v, .., z,.., v0) — циклический маршрут. Тогда u достижима из v с помощью маршрута (v, у, ..., u)—части маршрута Т, — а v из u — с помощью маршрута (u, z, ..., v0, х, ..., v). Аналогично доказывается Утверждение 2. Орграф является односторонним тогда и только тогда, когда в нем есть остовный маршрут. Орграф является слабым тогда и только тогда, когда в нем есть остовный полумаршрут. Подграфы и порожденные подграфы ориентированного графа определяются так же, как и для неориентированного. Так же определяются и операции над орграфами. Введем важное понятие сильной компоненты орграфа. Сильной (или силъносвязной) компонентой ориентированного графа называется любой его максимальный относительно включения сильный подграф. Очевидно, что отношение взаимной достижимости вершин ориентированного графа G рефлексивно, симметрично и транзитивно. Следовательно, мы получим разбиение множества VG на классы, объединив в один класс все вершины, достижимые друг из друга. Подграфы, порожденные классами этого разбиения, и только они, служат сильными компонентами орграфа G. Рис. 3. В орграфе могут быть дуги, не входящие ни в одну из его сильных компонент. Орграф G, изображенный на рис. 3, имеет четыре сильные компоненты с множествами вершин {v1, v2, v3, v4}, {v5, v6, v8}, {v7} и {v9}. Пусть {S1, S2, ..., Sm} — множество всех сильных компонент ориентированного графа G. Конденсацией орграфа G называется орграф G*, вершины s1, s2, ..., sm которого соответствуют сильным компонентам орграфа G, и пара (si, sj) является дугой в G* тогда и только тогда, когда в G есть дуга, начало которой принадлежит компоненте Si а конец — Sj. На рис. 3 представлены орграф G и его конденсация G*. Утверждение 3. Конденсация G* любого орграфа G не имеет контуров. Проведем доказательство от противного. Пусть Т = (s0, x1, s1, …, s0) — контур в G*. Тогда каждая вершина, входящая в компоненту Si, достижима из любой вершины, входящей в компоненту Sj. Но это противоречит максимальности сильных компонент. Неориентированный мультиграф, получающийся в результате снятия ориентации с дуг орграфа G, называется основанием орграфа G и обозначается через Gb. Очевидно, что орграф является слабым тогда и только тогда, когда его основание — связный мультиграф. Орграф называется несвязным, если его основание — несвязный мультиграф. Ориентированный граф называется турниром, если его основание является полным графом. Этот класс графов получил свое название в связи со спортивными турнирами без ничьих, проводимыми по круговой системе. Результаты встреч можно описать ориентированным графом, вершины которого соответствуют участникам соревнований, а дуга (u, v) есть в орграфе, если участник u победил участника v. 1.2 Полустепени исхода и полустепени заходаПусть G — ориентированный граф и v VG. Множество концов всех дуг, исходящих из вершины v, обозначается через Г(v), а множество начал всех дуг, заходящих в v — Г-1(v). .Полустепенью исхода d+(v) вершины v называется число дуг, исходящих из v, т. е. d+(v) = |Г(v)|. Аналогично определяется полустепень захода d-(v) вершины v: d-(v) = |Г-l(v)|. Степень deg v вершины v орграфа — это число инцидентных ей дуг: deg v = d+(v) +d-(v) Для произвольной бинарной m*n – матрицы А вектор cA = (c1, c2, …, cm), i-я координата сi, которого равна числу единиц в i-й строке этой матрицы, называется вектором строчных сумм. Аналогично определяется вектор столбцовых сумм dA = (d1, d2, …, dn): координата di равна числу единиц в i-м столбце. Очевидно, что (2) поскольку каждая из этих сумм равна числу всех единиц матрицы А. Если А = А(G) — матрица смежности орграфа G, то т. е. число единиц в i - й строке матрицы A(G) равно полустепени исхода i- й вершины, а число единиц в j - м столбце равно полустепени захода j-й вершины. Таким образом, для A =A(G) имеем cA = (d+(1), d+(2), …, d+(n)) dA = (d-(1), d-(2), …, d-(n)) Поэтому верно следующее утверждение, являющееся аналогом леммы о рукопожатиях. Утверждение 4. Сумма полустепеней исхода всех вершин орграфа равна сумме полустепеней захода и равна числу его дуг: Нетрудно убедиться в том, что равенство (2) не является достаточным условием для существования бинарной n*m – матрицы А с векторами строчных сумм сA и столбцовых сумм dA. Например, нет матрицы А, для которой сA = (3, 0), dA = (2, 1). Пара векторов c = (c1, c2, …, cm), d = (d1, d2, …, dn) с целыми неотрицательными координатами называется графической, если существует бинарная m*n – матрица А, для которой сА = с, dА = d. Если истолковывать эту матрицу как приведенную матрицу смежности двудольного графа, то вектор сА окажется списком степеней вершин этого графа, принадлежащих одной доле, а вектор dА — списком степеней вершин другой доли, так что условия графичности пары векторов являются условиями существования соответствующего двудольного графа — реализации этой пары. Этим и объясняется термин «графическая пара векторов». При m = n ту же матрицу А можно истолковывать как матрицу смежности орграфа, и тогда условия графичности пары векторов станут условиями существования ориентированного графа с заданными списками полустепеней исхода и полустепеней захода вершин. Критерий графичности пары векторов устанавливается следующей теоремой. Теорема 5. Пара векторов c = (c1, c2, …, cm), d = (d1, d2, …, dn) (3) является графической тогда и только тогда, когда выполняются следующие два условия: 1) последовательность (c1+m-1, c2+m-1, …, cm+m-1, d1, d2, …, dn) (4) графическая; 2) Очевидно, что пара векторов (3) реализуется двудольным графом тогда и только тогда, когда последовательность (4) реализуется расщепляемым графом, для которого (c1+m-1, c2+m-1, …, cm+m-1) и (d1, d2, …, dn) — списки степеней вершин верхней и нижней долей соответственно. Поэтому доказываемое непосредственно вытекает из критерия расщепляемости графической последовательности. Коснемся вопроса о реконструируемости орграфов. Гипотезу Келли — Улама для ориентированных графов можно попытаться сформулировать так же, как и для неориентированных. Но для орграфов эта гипотеза не верна. П. Стокмейер (1977, 1981 гг.) нашел несколько семейств нереконструируемых орграфов. Одно из них состоит из сильных турниров специального вида. Два нереконструируемых турнира изображены на рис. 4. Ф. Харари и Е. Палмер доказали (1967 г.), что любой турнир, не являющийся сильным, реконструируем. Рис. 4. А. Рамачандран предложил новый вариант гипотезы реконструируемости для орграфов. Пусть G — ориентированный граф. Вместе с каждым подграфом Gv = G — v, v VG, будем рассматривать упорядоченную пару (d+(v), d-(v)) полустепеней исхода и захода вершины v. Орграф G назовем N-реконструируемым, если он определяется с точностью до изоморфизма набором {(Gv, d+(v), d-(v)): v VG}. Гипотеза Рамачандрана (1981 г.). Любой орграф N-реконструируем. Эта гипотеза пока не доказана и не опровергнута. 1.3 ПутиПусть М = (P1, P2,…, Pi) (5) — какое-либо множество путей орграфа G, попарно не имеющих общих вершин. Если множества VPi вершин этих путей составляют разбиение для VG, т. е. VG = VP1 VP2 ... VPi, то множество путей М называется разбиением орграфа G на пути. Минимальное число l путей, составляющих разбиение орграфа G, обозначим через l(G). Ниже фигурируют понятия числа независимости 0(G) и хроматического числа (G) орграфа G, которые для ориентированных графов определяются так же, как и для неориентированных, т. е. 0(G) = 0(Gb), (G) = (Gb). Теорема 6. Для любого орграфа G верно неравенство l(G) 0(G) Фиксируем некоторое разбиение (2) орграфа G на пути. Пусть N(M) = (a1, a2, …, ai), ai Рi — множество начальных вершин этих путей. Докажем более сильное утверждение: существует такое разбиение М' орграфа G на пути, что N(M’) N(M), |M’| 0(G) Доказательство последнего утверждения проведем индукцией по n = |G|. Утверждение очевидно при n = 1, 2. Пусть n > 2 и утверждение верно для орграфов, порядки которых меньше n. Вначале покажем, что, не ограничивая общности, можно считать |М| 0(G)+1. В самом деле, пусть |М| 0(G)+2. Рассмотрим орграф G1 = G —VP1. Очевидно, что 0(G1) . 0(G). По индуктивному предположению существует разбиение М1 орграфа G1 на пути с N(M1) N(M) и |М1| 0(G1) 0(G). Но тогда М' = M1 P1 — разбиение орграфа G с N(M')N(M) и |М’| 0(G)+1. Поэтому всегда можно считать, что |М| 0(G)+1. Пусть теперь |М| = 0(G)+1. Тогда множество N(M) = (a1, a2, …, ai) не является независимым, т. е. в нем есть хотя бы одна пара смежных вершин. Предположим, что (a1, a2) AG. Если путь P1 состоит из единственной вершины a1, то объединив P1 и P2 в путь (a1, a2, …), получим нужное разбиение. Если же путь Р = (а1, b1, ...) имеет более чем одну вершину, то рассмотрим орграф G1 = G—a1. По индуктивному предположению существует такое разбиение M1 орграфа G1 на пути, что |М1| 0(G1) 0(G) и N(M1) = {b1, a2, a3, ..., аi}. Если b1 N(M1), то М' получим из M1, добавив вершину a1 к пути, начинающемуся в b1. Аналогично можно поступить и тогда, когда а2 N(M1). Если же b1 N(M1) и a2 N(M1), то М' = M1 {(a1)}. Из теоремы 6 вытекают два важных следствия. Орграф G называется транзитивным, если истинна импликация ((x, y) AG и (y, z) AG) (x, z) AG Следствие 7. Если орграф G транзитивен, то l(G) = 0(G). Согласно предыдущей теореме l(G) 0(G). Но две вершины транзитивного орграфа, принадлежащие одной цепи, смежны, поэтому 0(G)l(G). Итак, l(G) = 0(G). Следствие 8. В каждом турнире существует гамилътонов путь. Поскольку любые две вершины, произвольного турнира Т смежны, то 0(T)=1. Поэтому существует цепь Р, содержащая все вершины турнира Т. Для сильных турниров верно следующее более общее утверждение. Теорема 9. Пусть Т — сильный турнир порядка n. Тогда для любой его вершины u и для любого числа k, 3 k n, в Т есть контур длины k, содержащий вершину u. Пусть S (u) и Р(u) — множество всех тех вершин v и, соответственно, w турнира Т, для которых (u, v) AT и (w, u) АТ. Оба эти множества не являются пустыми, поскольку орграф Т сильный. По той же причине существует хотя бы одна дуга (v, w), идущая из S (u) в Р(u) (рис. 5). Следовательно, вершина и лежит на контуре длины 3. Далее воспользуемся индукцией по k. Пусть вершина u входит в контуры всех длин от 3 до k, где k < n. Покажем, что она входит в контур длины k + 1. Пусть С=(v0, v1, …, vk), v0 = vk = u, — контур длины k. Предположим, что для некоторой вершины w, не входящей в этот контур, существуют такие дуги (w, x) и (у, w), что x VC и у VC. Тогда в С есть такие две смежные вершины vi, и vi+1, что (vi, w) и (w, vi+1)—дуги турнира Т. Следовательно, вершина u входит в контур С=(v0, v1, …, vi, w, vi+1, …, vk) v0 = vk = u длины k + 1. Рис. 5. Если же указанной выше вершины w нет, то множество вершин турнира Т, не входящих в контур С, можно разбить на две части S (С) и Р(С) так, чтобы для любых вершин aS(C), bP(C) и v С выполнялись условия (v, а) AG и (b, v) AG. Так как орграф T сильный, то S(С) и Р(С) не пусты и существует дуга, идущая из некоторой вершины a S(С) в некоторую вершину b Р(С) (рис. 6). Таким образом, вершина u входит в контур С‘ = (v0, a, b, v2, …, vk) длины k + 1. Очевидно Следствие 10. Сильный турнир гамильтонов. Заметим, что предыдущее следствие вытекает также из теоремы 9. Теорема 11. Если k—максимальная длина путей в орграфе G, то (G).k + 1. Обозначим через В такое минимальное относительно включения подмножество в АG, что орграф G1 = G — В не имеет контуров. Для любой вершины v определим t(v) как число вершин пути в орграфе G1 с началом в v, имеющем максимальную длину. Приписав каждой вершине v цвет t(v), получим раскраску орграфа G не более чем k + 1 цветами. Остается доказать, что эта раскраска правильная, т. е. что t(u) t(v) для любых двух смежных вершин u и v. Но если (u, v) АG1, то t(u)>t{v). Если же (u, v) В, то G1+(u,v) имеет контур. Поэтому в G1 существует (v, u) - путь и, следовательно, t(v)>t(u). Итак, доказано, (G).k + 1. Рис. 6. 2. Описание алгоритмаМатрицей достижимости графа с n вершинами называется квадратная матрица R порядка n, элементы которой определяются следующим образом: Матрицей контрдостижимости графа с n вершинами называется квадратная матрица Q порядка n, элементы которой определяются следующим образом: Матрицей сильной связности орграфа с n вершинами называется квадратная матрица S порядка n, элементы которой определяются следующим образом: При машинной реализации алгоритмов на графах матрицы расстояний, достижимости, контрдостижимости и сильной связности можно определять через матрицу смежности. Пусть дан граф G, - его матрица смежности. Элементы матрицы расстояний D можно вычислить при машинной реализации следующим образом: dij равно наименьшему из чисел n, для которых aijn > 0, где aijn - элемент матрицы An и равно бесконечности, если таких чисел нет. Пример. Дан граф G (рис. 7). Найти матрицу расстояний D. Рис. 7 Сначала найдем матрицу смежности A, элемент aij которой равен 1, если вершины xi и xj графа G смежны, и равен нулю в противном случае. В матрице D диагональные элементы будут равны нулю, так как расстояние между вершинами xi и xj, если i = j, считается равным нулю. Если элемент aij матрицы A равен 1, то соответствующий элемент dij матрицы D тоже будет равен 1. Недоопределенная матрица D изображена ниже. Умножим матрицу А саму на себя по правилу умножения матриц и найдем матрицу A2. Так как в матрице A2 нет нулевых элементов, то оставшиеся неопределёнными элементы матрицы D равны 2. Окончательно матрица D будет иметь вид: Матрицу достижимости R можно найти с помощью матрицы смежности А следующим образом R = T(E+A+A2+...+An-1), где n число вершин, E единичная матрица, а оператор T определяется следующим образом: Матрица контрдостижимости Q находится транспонированием матрицы достижимости R: Q = RT. Последовательность определения сильных компонент. 1. Построение матриц достижимости R и контрдостижимости . 2. Определение матриц . 3. Выделение сильных компонент графа. Вершины, соответствующие одинаковым строкам и столбцам матрицы S, принадлежат одной сильной компоненте графа. 3. Описание программы3.1. Общие сведенияПрограмма написана на языке Turbo Pascal версии 7.0 Отладка производилась в операционной системе MS Windows 95 на компьютере совместимом с IBM PC с процессором 80486 DX4. 3.2. Функциональное назначениеПрограмма предназначена для определения сильных компонент ориентированного графа. Максимальное число вершин обрабатываемого графа может быть не более 15. Ввод матрицы графа осуществляется из текстового файла с именем STRONG. Вывод результатов расчета производится на экран. 3.3. Описание логической структуры программыКонстанты. Nmax = 15 - максимальное число вершин обрабатываемого графа. Типы: Link = ^PLink - тип - список. PLink = record - тип запись с полями: sled - ссылочное поле - связь со следующим элементом. P - признак наличия пути: 1 - есть, 0 - нет. Mat2 - двумерный массив максимальной размерностью 15 * 15 состоящий из 0 и 1. Mas1 - одномерный массив максимальной размерностью 15 с элементами от 0 до 15. MasMno - массив максимальной размерностью 15 с элементами типа множество 1..15. Переменные (основные). G - матрица смежности исходного графа; R - матрица достижимости; Q - матрица контрдостижимости; C - произведение Адамара; C1 - матрица С, приведенная к блочно - диагональному виду. SetOfStr - массив множества сильных компонент; Описание процедур 1) Процедура Dostig Составление матрицы достижимости графа. 2) Процедура BDG Формирует блочно - диагональную матрицу. 3) Процедура Silnie Нахождение сильных компонент графа. 3.4. Использование технических средствДля использования программы необходимы следующие условия: Требования к компьютеру. Для нормальной работы программы требуется любой IBM - совместимый компьютер с процессором 80386 или выше с минимальной конфигурацией: оперативная память не менее 1024 Кбайт, размер свободного дискового пространства не менее 50 Кбайт для размещения основной программы, цветной графический монитор EGA, VGA, SVGA. Программное обеспечение. Разработка и отладка программы производилась с использованием интегрированной среды Turbo Pascal 7.0. Программа может работать в операционной системе MS-DOS не ниже пятой версии. 3.5. Описание данныхВходные данные: матрица смежности графа, расположенная в текстовом файле с именем STRONG. Каждая строка этого файла представляет собой набор из 0 и 1, разделенных одним пробелом. число вершин графа – определяется программно при считывании матрицы смежности. Выходные данные: количество сильных компонент графа; список вершин для каждой компоненты. 3.6. Руководство пользователюЗапуск программы производится выбором из панели Norton Commander файла с именем SILNYE.EXE и нажатия клавиши Enter. После этого работа с программой производится без вмешательства пользователя в следующей последовательности: - чтение данных их текстового файла с именем STRONG; - преобразование списка и формированием матрицы смежности графа; - формирование матриц достижимости, контрдостижимости и произведения Адамара; - приведение матрицы Адамара к блочно - диагональному виду; - поиск сильных компонент графа; - вывод решения. 3.7. Структурная схема программыНачало Чтение данных из файла Вывод матрицы смежности Формирование матрицы достижимости Dostig и расчет произведения Адамара Приведение к блочно – диагональному виду BDV Поиск сильных компонент Silnie Вывод сильных компонент Конец ЗаключениеГлавным итогом выполнения курсовой работы было создание программы определения сильных компонент ориентированного графа в соответствии с поставленной задачей и получение практических результатов работы программы. Созданная программа позволяет: - ввод размерности исходной матрицы смежности графа из файла; - формировать решение в соответствии с условием поставленной задачи; - вывод на экран исходного графа и полученных компонент. Созданная программа полностью удовлетворяет поставленной задаче, но при этом имеет ряд недостатков: - нет вывода на печать результатов расчета; - нет контроля правильности вводимых данных; - ограниченная размерность графа. Доработка указанных недостатков позволит сделать программу более универсальной и надежной. Список литературы1. Бондарев В.М. Основы программирования. Харьков: Фолио, 1997, 367 с. 2. Лекции по теории графов / Емеличев В.А., Мельников О.И., Сарванов В.И., Тышкевич Р.И. -М.: Наука, 1990, 384 с. 3. Нефедов В.Н., Осипова В.А. Курс дискретной математики / Учебное пособие. -М:. МАИ, 1992 г. -264 с. 4. Фаронов В.В. Программирование на персональных ЭВМ в среде ТУРБО - ПАСКАЛЬ. -М., изд - во МГТУ, -1991, -580 с. 5. Фаронов В.В. Turbo Pascal 7.0. Начальный курс. -М.: Нолидж, -1997, 616 с. |