Upload
adequ4t
View
162
Download
0
Embed Size (px)
Citation preview
Лекція 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
вершин і є ребром, то її позначають . Вершини і є кінцями
ребра позначають одне і теж ребро. На рисунках ребра зображають
прямою чи кривою лініями без стрілок, а вершини позначають буквами або
цифрами. Оскільки Е множина, то у простому графі довільну пару вершин
може з’єднувати не менше одного ребра.
У деяких випадках розглядають графи, у яких дві вершини може
з’єднувати декілька ребер. Виникає поняття мультиграфа – пари (V,Е), де V –
непорожня скінчена множина , а Е – сім’я невпорядкованих пар різних
елементів з V.
Термін «сім’я» означає, що елементи Е (ребра) можуть повторюватись.
Ребра, які з’єднують одну і ту ж пару, називають кратними.
Окрім кратних ребер допускають наявність петель – ребер, які
з’єднують вершину саму з собою.
Псевдографом називають пару (V,Е), де V – непорожня скінчена
множини, а Е – сім’я невпорядкованих пар елементів з множини V (не
обов’язково різних).
Три типи графів, які розглянули вище, називають неорієнтованими
графами, причому:
- псевдограф (може мати петлі і кратні ребра);
- мультиграф (може мати кратні ребра (без петель));
- простий граф (без петель і кратних ребер).
Вершини і в неорієнтованому графі називають суміжними, якщо
є ребром. Два ребра називаються суміжними, якщо вони мають
спільний кінець. Ребро називають інцидентним вершині , якщо є
одним з кінцеве .
Отже, суміжність відображає зв'язок між однорідними елементами
графа, а інцидентність – між неоднорідними.
Степінь вершини 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
в) гіперграф
Дійсно кожна з n вершин з’єднується з
будь-якою з (n-1) вершиною, що залишились,
тому загальне число кінців ребер дорівнює n
n - 1). Але в кожного ребра 2-а кінці, тому
отримуємо (*).
Граф називають двохчастинним, якщо існує максимальне розбиття
множини його вершин на два класи, при якому кінці кожного ребра лежать в
різних класах. Означення двохчастинного графа можна подати іншим чином
– в термінах розфарбування його вершин двома кольорами, наприклад,
червоним і синім. При цьому граф називається двохчастинним, якщо кожну
його вершину можна пофарбувати синім або червоним кольором, так, щоб
кожне його ребро мало один кінець червоний, а другий синій.
Двохчастинні графи зазвичай позначають як сукупність трьох м-н:
D=(V,W,E).
Прикладами двох частинних графів можуть служити зірки з числом
променів і многокутники з парним числом вершин. Часто вершини
двохчастинних графів зображають на двох вертикалях чи горизонталях.
Двох частинні графи відіграють важливу роль в застосуванні.
в) гіперграфв) гіперграфв) гіперграфв) гіперграфв) гіперграф
1
2
4
3
К
1
4 5
2 3
К
Матриця суміжності і матриця інцидентності.
Взаємно однозначна відповідність між бінарними відношеннями і
графами на деякій скінченій множині дає можливість стверджувати, що
всякий граф можна подавати у вигляді матриці суміжностей.
Якщо G =(V,Е) – скінчений граф порядку n, то йому відповідає
квадратна матриця А(G) розмірності n×n, яке має вигляд
(матриці суміжностей неорієнтованого і орграфа розділяються тим, що перша
завжди симетрична, а друга не обов’язково. Очевидно, що всяка квадратна
матриця, елементи якої 0 і 1, буде матрицею суміжностей деякого
орієнтованого графа)
Нехай, G =( V,Е ) – граф, де V= , Е= .
Визначимо матрицю А(G) такими умовами:
Матриця А(G) називається матрицею інцидентності графи G. Для
орієнтованих графів означення матриці інцидентності А(G) дещо
змінюється.
V V
V V
Приклад: побудуємо матрицю інцидентності для заданого гіперграфа
її розмір 4 х 14.
Орієнтовані графи.
Орієнтованим графом (або орграфом) називають пару множин V і Е ,
де V – не порожня скінчена множина, Е – множина упорядкованих пар
елементів V.
Елементи множини V називають вершинами, а множини є дугами (або
орієнтованими ребрами).
Якщо пара вершин і є дугою, то її позначаємо . Вершину
називають початковою, а вершину - кінцевою. Дугу називають
петлею.
Приклади:
Матриці суміжності
а) б) в)
v
v v v
v
v v v
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
Опис процедури 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
процедури і функції (тобто такі частини програми, які розраховані на
неодноразове використання) Script – файлами або іншими процедурами, при
змінних значеннях вхідних параметрів і не можуть бути виконаними без
попереднього задання значень змінних, які називають вхідними.
Головною зовнішньою відмінністю текстів цих двох видів файлів є те,
що файл-функція має першу стрічку виду:
Function « ПКВ » = « ім’я процедури » («ПВП») (Script – файл такої
стрічки немає) тут ПКВ – перелік кінцевих величин, ПВВ – перелік вхідних
величин.
Основні особливості оформлення М-файлів.
1) зазвичай кожен оператор записується в окремій стрічці тексту
програми. Ознакою кінця оператора є символ «возврат каретки» і перехід у
наступну стрічку, який вводиться в програму при натисненні клавіші «Enter».
2) Можна розміщувати декілька операторів в одній стрічці, тоді
попередній оператор цієї стрічки повинен закінчуватись символом « ; » або «
, ».
3) Довгий оператор можна записувати в декількох стрічках. При
цьому попередня стрічка оператора повинна закінчуватись трьома крапками (
… ).
4) Якщо черговий оператор не закінчується символом « ; »,
результати його дії при виконанні виконанні програми буде виведений в
команди вікно. Для того щоб результат дії оператора програми не виводився
на екран, запис цього оператора в тексті програми повинен закінчуватись « ;
».
5) Стрічка програми, що починається символом « % » не
виконується. Ця стрічка сприймається системою MATLAB як коментар.
6) Стрічки коментаря, що передують першому виконуваному
оператору програми, тоді такому який не є коментарем, сприймаються
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
12
13
14
24
34
Для графа стовбур цієї матриці можна переставляти,а для орграфа
– ні. Для орграфа будемо вважати, що кожна стрілка направлена від вершини
з номером, що стоїть в першому стовбурці до вершини, номер якої вказаний
в другому стовбурці. При такому заданнні графів немає проблем з кратними
ребрами (дугами) і петлями.
Але гіперграфи задавати таким чином не можна. Для них потрібно
використовувати масив розміром на m x 2, a m x , де - максимальна
кількість вершин, яку може з’єднувати гіперребро. Тоді більш короткі
стрічки заповнюються нулями.