Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

СМРЗДП / Лекція 1. Графи і орграфи

.doc
Скачиваний:
8
Добавлен:
05.03.2016
Размер:
650.24 Кб
Скачать

Лекція 1.

Графи і орграфи.

На рівні наших повсякденних уявлень граф - будь-які об’єкти (зазвичай їх малюють у вигляді крапок або кругів), з’єднані лініями або стрілками.

  1. неорієнтований 2) орієнтований

В першому випадку граф називають неорієнтованим (просто граф), а в другому – орієнтованим (орграфом). У вигляді графів можна представляти електричні схеми, маршрути перевезень, схеми взаємозв’язку підрозділів підприємства, грошові і ресурсні потоки, схеми управління різними об’єктами.

1.1. Основні означення теорії графів.

Нехай задано непорожню скінчену множину V і множину Е невпорядкованих пар різних елементів з множини V.

Простим графом G називають пару множин V і Е, т.т. G = ( V,Е ).

Елементи основної множини V називають вершинами.

Будемо позначати вершини графа . Кількість вершин графа G (потужність множини V) називається розміром графа. Розмір графа зазвичай позначають буквою n: =n. Тут функція - кількість елементів множини. Елементи множини Е називають ребрами. Ребра позначають буквами ,,…,. Кількість ребер графа G (потужність множини Е) називають потужністю графа. Потужність графа позначають m: =m. Якщо пара вершин і є ребром, то її позначають . Вершини і є кінцями ребра. та {,} позначають одне і теж ребро. На рисунках ребра зображають прямою чи кривою лініями без стрілок, а вершини позначають буквами або цифрами. Оскільки Е множина, то у простому графі довільну пару вершин може з’єднувати не менше одного ребра.

У деяких випадках розглядають графи, у яких дві вершини може з’єднувати декілька ребер. Виникає поняття мультиграфа – пари (V), де V – непорожня скінчена множина , а Е – сім’я невпорядкованих пар різних елементів з V.

Термін «сім’я» означає, що елементи Е (ребра) можуть повторюватись. Ребра, які з’єднують одну і ту ж пару, називають кратними.

Окрім кратних ребер допускають наявність петель – ребер, які з’єднують вершину саму з собою.

Псевдографом називають пару (V,Е), де V – непорожня скінчена множини, а Е – сім’я невпорядкованих пар елементів з множини V (не обов’язково різних).

Три типи графів, які розглянули вище, називають неорієнтованими графами, причому:

  • псевдограф (може мати петлі і кратні ребра);

  • мультиграф (може мати кратні ребра (без петель));

  • простий граф (без петель і кратних ребер).

Вершини і в неорієнтованому графі називають суміжними, якщо є ребром. Два ребра називаються суміжними, якщо вони мають спільний кінець. Ребро називають інцидентним вершині , якщо є одним з кінців .

Отже, суміжність відображає зв'язок між однорідними елементами графа, а інцидентність – між неоднорідними.

Степінь вершини v ( deg (v)) у неорієнтованому графі – це кількість ребер, інцидентних вершині v, причому петлю рахують двічі. Якщо deg(v)=0, то вершину v називають ізольованою; якщо deg(v)=1 , то вершина називається висячою.

а) мультиграф б) псевдограф

Гіперграфом G називають сукупність множини V (основна множина) і мультимножини Е, непустих підмножин множини V (не обов’язково двохелементних).

Граф (і всі його узагальнення) називається графом зі зваженими вершинами, якщо задано відображення V на множину дійсних чисел: . Дійсні числа, ще характеризують кожну вершину, називають вагою вершини.

Граф (і всі його узагальнення) називають графом зі зваженими ребрами, якщо задане відображення Е на множину дійсних чисел:

Дійсні числа С, що характеризують кожне ребро, називають вагою ребра.

Граф Кn з n вершинами називається повним графом, якщо кожну пару його вершин з’єднує ребро.

Потужність граф :m=. (*)

Дійсно кожна з n вершин з’єднується з будь-якою з (n-1) вершиною, що залишились, тому загальне число кінців ребер дорівнює n

в) гіперграф

в) гіперграф

в) гіперграф

в) гіперграф

в) гіперграф

(
n - 1). Але в кожного ребра 2-а кінці, тому о

в) гіперграф

тримуємо (*).

в) гіперграф

в) гіперграф

в) гіперграф

в) гіперграф

в) гіперграф

в) гіперграф

в) гіперграф

в) гіперграф

в) гіперграф

в) гіперграф

в) гіперграф

в) гіперграф

в) гіперграф

в) гіперграф

в) гіперграф

в) гіперграф

в) гіперграф

в) гіперграф

в) гіперграф

в) гіперграф

в) гіперграф

в) гіперграф

в) гіперграф

Граф називають двохчастинним, якщо існує максимальне розбиття множини його вершин на два класи, при якому кінці кожного ребра лежать в різних класах. Означення двохчастинного графа можна подати іншим чином – в термінах розфарбування його вершин двома кольорами, наприклад, червоним і синім. При цьому граф називається двохчастинним, якщо кожну його вершину можна пофарбувати синім або червоним кольором, так, щоб кожне його ребро мало один кінець червоний, а другий синій.

Двохчастинні графи зазвичай позначають як сукупність трьох м-н: D=(V,W,E).

Прикладами двох частинних графів можуть служити зірки з числом променів і многокутники з парним числом вершин. Часто вершини двохчастинних графів зображають на двох вертикалях чи горизонталях.

Двох частинні графи відіграють важливу роль в застосуванні.

Матриця суміжності і матриця інцидентності.

Взаємно однозначна відповідність між бінарними відношеннями і графами на деякій скінченій множині дає можливість стверджувати, що всякий граф можна подавати у вигляді матриці суміжностей.

Якщо G =(V,Е) – скінчений граф порядку n, то йому відповідає квадратна матриця А(G) розмірності n×n, яке має вигляд

(матриці суміжностей неорієнтованого і орграфа відрізняються тим, що перша завжди симетрична, а друга не обов’язково. Очевидно, що всяка квадратна матриця, елементи якої 0 і 1, буде матрицею суміжностей деякого орієнтованого графа)

Нехай, G =( V,Е ) – граф, де V= , Е= . Визначимо матрицю А(G) такими умовами:

Матриця А(G) називається матрицею інцидентності графи G. Для орієнтованих графів означення матриці інцидентності А(G) дещо змінюється.

Приклад: побудуємо матрицю інцидентності для заданого гіперграфа її розмір 4 х 14.

Орієнтовані графи.

Орієнтованим графом (або орграфом) називають пару множин V і Е , де V – не порожня скінчена множина, Е – множина упорядкованих пар елементів V.

Елементи множини V називають вершинами, а множини Е є дугами (або орієнтованими ребрами).

Якщо пара вершин і є дугою, то її позначаємо . Вершину називають початковою, а вершину - кінцевою. Дугу {,} називають петлею.

Приклади:

Матриці суміжності

а) б) в)

Матриці інцидентності.

1 1 1 1 1 0 0

1 1 0 0 0 1 1

0 0 0 0 0 0 1

0 0 1 1 1 1 0

1 1 0 0 0 0 0

1 0 1 0 0 0 0

0 1 1 1 0 0 0

0 0 0 1 1 1 0

0 0 0 0 1 1 1

0 0 0 0 0 0 1

Опис процедури Grplot.

Ми будемо малювати графи або орграфи. При цьому самі будемо задавати координати вершин. Нашу функцію назвемо Plotgraph. За правилами MATLAB, це значить, що вона повинна бути розміщена в файлі з іншим Plotgraph (створені програми всередовищі MATLAB здійснюється за допомогою встроєного текстового редактора, який викликається автоматично). Вікно редактора появляється на екрані. Для створення нового файлу вибираєте меню File – New – M-file, або якщо вибрано назву одного із існуючих М-файлів при виклику команди Open M-file із меню File.

В першому випадку вікно редактора буде пустим, в другому, буде міститись текст вибраного М-файла. В обох випадках вікно текстового редактора готове для вводу нового тексту або корегування існуючого.

На мові MATLAB є програми двох типів: Script – файли (файли сценарії) і файли функції (процедури). Всі програми повинні мати розширення імен файлів. За допомогою Script – файлів оформлюються основні програми, що управляють від початку до кінця організацією всього обчислювального процесу. Як файл-функція оформляються окремі процедури і функції (тобто такі частини програми, які розраховані на неодноразове використання) Script – файлами або іншими процедурами, при змінних значеннях вхідних параметрів і не можуть бути виконаними без попереднього задання значень змінних, які називають вхідними.

Головною зовнішньою відмінністю текстів цих двох видів файлів є те, що файл-функція має першу стрічку виду:

Function « ПКВ » = « ім’я процедури » («ПВП») (Script – файл такої стрічки немає) тут ПКВ – перелік кінцевих величин, ПВВ – перелік вхідних величин.

Основні особливості оформлення М-файлів.

  1. зазвичай кожен оператор записується в окремій стрічці тексту програми. Ознакою кінця оператора є символ «возврат каретки» і перехід у наступну стрічку, який вводиться в програму при натисненні клавіші «Enter».

  2. Можна розміщувати декілька операторів в одній стрічці, тоді попередній оператор цієї стрічки повинен закінчуватись символом « ; » або « , ».

  3. Довгий оператор можна записувати в декількох стрічках. При цьому попередня стрічка оператора повинна закінчуватись трьома крапками ( … ).

  4. Якщо черговий оператор не закінчується символом « ; », результати його дії при виконанні виконанні програми буде виведений в команди вікно. Для того щоб результат дії оператора програми не виводився на екран, запис цього оператора в тексті програми повинен закінчуватись « ; ».

  5. Стрічка програми, що починається символом « % » не виконується. Ця стрічка сприймається системою MATLAB як коментар.

  6. Стрічки коментаря, що передують першому виконуваному оператору програми, тоді такому який не є коментарем, сприймаються MATLAB як опис програми. Саме ці стрічки виводяться в командне вікно, якщо в ньому набрана команда help «ім’я файлу».

  7. В програмах на мові MATLAB відсутній оператор закінчення тексту програми.

  8. На мові MATLAB змінні не описуються і не оголошуються. Будь-яке нове ім’я, що появляється в тексті програми сприймається системою MATLAB як ім’я матриці. Розмір цієї матриці встановлюється при попередньому вводі значень її елементів або визначаються діями по встановленню значень її елементів, описаними в попередньому операторі чи процедури.

  9. Імена змінних можуть містити лише букви латинського алфавіту або цифри і повинні починатись з букви. Загальне число символів в назві може досягати 19. В іменах можуть використовуватись як великі так і малі букви. Великі і малі букви в іменах розділяються системою ( наприклад «а» і «А» можуть використовуватись в одній програмі для позначення різних величин). Для відладки (виконання програм)використовують обцію Debug --- Save, Run.