15
Лекція 1. Графи і орграфи. На рівні наших повсякденних уявлень граф - будь-які об’єкти (зазвичай їх малюють у вигляді крапок або кругів), з’єднані лініями або стрілками. 1)неорієнтований 2) орієнтований В першому випадку граф називають неорієнтованим (просто граф), а в другому – орієнтованим (орграфом). У вигляді графів можна представляти електричні схеми, маршрути перевезень, схеми взаємозв’язку підрозділів підприємства, грошові і ресурсні потоки, схеми управління різними об’єктами. 1.1. Основні означення теорії графів. Нехай задано непорожню скінчену множину V і множину Е невпорядкованих пар різних елементів з множини V. Простим графом G називають пару множин V і Е, т.т. G = ( V,Е ). V V V V V V V V e e e l e e e e e e e

Лекція 1. Графи і орграфи

  • Upload
    adequ4t

  • View
    162

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Лекція 1. Графи і орграфи

Лекція 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

Ve e

el

e

e ee

e

ee

Page 2: Лекція 1. Графи і орграфи

вершин і є ребром, то її позначають . Вершини і є кінцями

ребра позначають одне і теж ребро. На рисунках ребра зображають

прямою чи кривою лініями без стрілок, а вершини позначають буквами або

цифрами. Оскільки Е множина, то у простому графі довільну пару вершин

може з’єднувати не менше одного ребра.

У деяких випадках розглядають графи, у яких дві вершини може

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

непорожня скінчена множина , а Е – сім’я невпорядкованих пар різних

елементів з V.

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

Ребра, які з’єднують одну і ту ж пару, називають кратними.

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

з’єднують вершину саму з собою.

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

множини, а Е – сім’я невпорядкованих пар елементів з множини V (не

обов’язково різних).

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

графами, причому:

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

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

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

Вершини і в неорієнтованому графі називають суміжними, якщо

є ребром. Два ребра називаються суміжними, якщо вони мають

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

одним з кінцеве .

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

графа, а інцидентність – між неоднорідними.

Page 3: Лекція 1. Графи і орграфи

Степінь вершини v ( deg (v)) у неорієнтованому графі – це кількість

ребер, інцидентних вершині v, причому петлю рахують двічі. Якщо

deg(v)=0, то вершину v називають ізольованою; якщо deg(v)= , то вершина

називається висячою.

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

Гіперграфом G називають сукупність множини V (основна множина) і

мультимножини Е, непустих підмножин множини V (не обов’язково

двохелементних).

Граф (і всі його узагальнення) називається графом зі зваженими

вершинами, якщо задано відображення V на множину дійсних чисел:

φ:V→R .

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

вершини.

Граф (і всі його узагальнення)називають графом зі зваженими

ребрами, якщо задане відображення Е на множину дійсних чисел: ψ:

Е→R .

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

ребра.

Граф Кn з n вершинами називається

повним графом, якщо кожну пару його вершин

з’єднує ребро.

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

V V

V V V

V

V

Ve

e ee

e

ee ee e ee

e

e

e

e

e

e

e

V

V

V

V

e e ee

e

e

e

e

e

e

ee

e

e

в) гіперграф

Page 4: Лекція 1. Графи і орграфи

Дійсно кожна з n вершин з’єднується з

будь-якою з (n-1) вершиною, що залишились,

тому загальне число кінців ребер дорівнює n

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

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

Граф називають двохчастинним, якщо існує максимальне розбиття

множини його вершин на два класи, при якому кінці кожного ребра лежать в

різних класах. Означення двохчастинного графа можна подати іншим чином

– в термінах розфарбування його вершин двома кольорами, наприклад,

червоним і синім. При цьому граф називається двохчастинним, якщо кожну

його вершину можна пофарбувати синім або червоним кольором, так, щоб

кожне його ребро мало один кінець червоний, а другий синій.

Двохчастинні графи зазвичай позначають як сукупність трьох м-н:

D=(V,W,E).

Прикладами двох частинних графів можуть служити зірки з числом

променів і многокутники з парним числом вершин. Часто вершини

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

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

в) гіперграфв) гіперграфв) гіперграфв) гіперграфв) гіперграф

1

2

4

3

К

1

4 5

2 3

К

Page 5: Лекція 1. Графи і орграфи

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

Взаємно однозначна відповідність між бінарними відношеннями і

графами на деякій скінченій множині дає можливість стверджувати, що

всякий граф можна подавати у вигляді матриці суміжностей.

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

квадратна матриця А(G) розмірності n×n, яке має вигляд

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

завжди симетрична, а друга не обов’язково. Очевидно, що всяка квадратна

матриця, елементи якої 0 і 1, буде матрицею суміжностей деякого

орієнтованого графа)

Нехай, G =( V,Е ) – граф, де V= , Е= .

Визначимо матрицю А(G) такими умовами:

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

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

змінюється.

V V

V V

Page 6: Лекція 1. Графи і орграфи

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

її розмір 4 х 14.

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

Орієнтованим графом (або орграфом) називають пару множин V і Е ,

де V – не порожня скінчена множина, Е – множина упорядкованих пар

елементів V.

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

орієнтованими ребрами).

Якщо пара вершин і є дугою, то її позначаємо . Вершину

називають початковою, а вершину - кінцевою. Дугу називають

петлею.

Приклади:

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

а) б) в)

v

v v v

v

v v v

v

v v v

Page 7: Лекція 1. Графи і орграфи

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

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

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

Ми будемо малювати графи або орграфи. При цьому самі будемо

задавати координати вершин. Нашу функцію назвемо Plotgraph. За

правилами MATLAB, це значить, що вона повинна бути розміщена в файлі з

іншим Plotgraph (створені програми всередовищі MATLAB здійснюється за

допомогою встроєного текстового редактора, який викликається

автоматично). Вікно редактора появляється на екрані. Для створення нового

файлу вибираєте меню File – New – M-file, або якщо вибрано назву одного із

існуючих М-файлів при виклику команди Open M-file із меню File.

В першому випадку вікно редактора буде пустим, в другому, буде

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

редактора готове для вводу нового тексту або корегування існуючого.

На мові MATLAB є програми двох типів: Script – файли (файли

сценарії) і файли функції (процедури). Всі програми повинні мати

розширення імен файлів. За допомогою Script – файлів оформлюються

основні програми, що управляють від початку до кінця організацією всього

обчислювального процесу. Як файл-функція оформляються окремі

v

v v v

v

v

v

v

v

v

e

e

ee

e

e

e

Page 8: Лекція 1. Графи і орграфи

процедури і функції (тобто такі частини програми, які розраховані на

неодноразове використання) Script – файлами або іншими процедурами, при

змінних значеннях вхідних параметрів і не можуть бути виконаними без

попереднього задання значень змінних, які називають вхідними.

Головною зовнішньою відмінністю текстів цих двох видів файлів є те,

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

Function « ПКВ » = « ім’я процедури » («ПВП») (Script – файл такої

стрічки немає) тут ПКВ – перелік кінцевих величин, ПВВ – перелік вхідних

величин.

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

1) зазвичай кожен оператор записується в окремій стрічці тексту

програми. Ознакою кінця оператора є символ «возврат каретки» і перехід у

наступну стрічку, який вводиться в програму при натисненні клавіші «Enter».

2) Можна розміщувати декілька операторів в одній стрічці, тоді

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

, ».

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

цьому попередня стрічка оператора повинна закінчуватись трьома крапками (

… ).

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

результати його дії при виконанні виконанні програми буде виведений в

команди вікно. Для того щоб результат дії оператора програми не виводився

на екран, запис цього оператора в тексті програми повинен закінчуватись « ;

».

5) Стрічка програми, що починається символом « % » не

виконується. Ця стрічка сприймається системою MATLAB як коментар.

6) Стрічки коментаря, що передують першому виконуваному

оператору програми, тоді такому який не є коментарем, сприймаються

Page 9: Лекція 1. Графи і орграфи

MATLAB як опис програми. Саме ці стрічки виводяться в командне вікно,

якщо в ньому набрана команда help «ім’я файлу».

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

тексту програми.

8) На мові MATLAB змінні не описуються і не оголошуються.

Будь-яке нове ім’я, що появляється в тексті програми сприймається

системою MATLAB як ім’я матриці. Розмір цієї матриці встановлюється при

попередньому вводі значень її елементів або визначаються діями по

встановленню значень її елементів, описаними в попередньому операторі чи

процедури.

9) Імена змінних можуть містити лише букви латинського алфавіту

або цифри і повинні починатись з букви. Загальне число символів в назві

може досягати 19. В іменах можуть використовуватись як великі так і малі

букви. Великі і малі букви в іменах розділяються системою ( наприклад «а» і

«А» можуть використовуватись в одній програмі для позначення різних

величин). Для відладки (виконання програм)використовують обцію Debug ---

Save, Run.

Як задавати граф.

Для розв’язку задачі є важливою структура зв’язку вершин і ребер

(дуг), а також ваги, якщо вони є, конкретне розміщення вершин не має

значення. При малюванні потрібно знати і координати вершин. З

координатами можна поступити так: задати масив дійсних чисел розміром n х

2 в першому стовпчику якого будуть абсциси вершин, в другому ординатах.

Інформацію про структуру графа можна вводити і зберігати в пам’яті

по-різному. Ми будемо вводити у вигляді списку його ребер (дуг).

Список ребер – це матриця розміру m х 2 , в кожній стрічці якої 2

цілих чисел: номери вершин, що з’єднані.

Наприклад: для графа і орграфа список ребер (дуг) має вигляд:V V

V V V

V

V

Ve e

el

e

e ee

e

ee

Page 10: Лекція 1. Графи і орграфи

12

13

14

24

34

Для графа стовбур цієї матриці можна переставляти,а для орграфа

– ні. Для орграфа будемо вважати, що кожна стрілка направлена від вершини

з номером, що стоїть в першому стовбурці до вершини, номер якої вказаний

в другому стовбурці. При такому заданнні графів немає проблем з кратними

ребрами (дугами) і петлями.

Але гіперграфи задавати таким чином не можна. Для них потрібно

використовувати масив розміром на m x 2, a m x , де - максимальна

кількість вершин, яку може з’єднувати гіперребро. Тоді більш короткі

стрічки заповнюються нулями.