Un grafic este o abstractizare matematică a unui sistem real de orice natură, ale cărui obiecte au conexiuni pe perechi. Un graf ca obiect matematic este o colecție de două mulțimi - mulțimea de obiecte în sine, numită mulțimea de vârfuri , și mulțimea conexiunilor lor pe perechi, numită mulțime de muchii. Un element al unui set de muchii este o pereche de elemente ale unui set de vârfuri.
Graficele sunt utilizate pe scară largă în știința și tehnologia modernă. Ele sunt utilizate atât în științele naturii (fizică și chimie), cât și în științele sociale (de exemplu, sociologie), dar utilizarea graficelor a primit cea mai mare scară în informatică și tehnologii de rețea.
Ca cel mai simplu exemplu din viață, putem da o diagramă de zbor a unei anumite companii aeriene, care este modelată printr-un grafic, unde vârfurile graficului sunt orașe, iar marginile sunt zboruri care leagă perechi de orașe. Un arbore de directoare într-un computer este, de asemenea, un grafic: unitățile, folderele și fișierele sunt vârfuri, iar marginile arată imbricarea fișierelor și folderelor în foldere și unități [1] . Structura Wikipedia este modelată de un grafic direcționat , în care articolele sunt vârfurile graficului, iar hyperlinkurile sunt arce ( hartă tematică ).
Graficele sunt principalul obiect de studiu în teoria grafurilor .
Sistemele de natură reală modelate prin grafice sunt foarte diverse, deci există diferite tipuri de grafice. Cea mai simplă abstractizare a sistemelor cu elemente care au conexiuni pe perechi este un grafic simplu .
Definiție. Un grafic simplu este o colecție de două mulțimi - o mulțime nevidă și un set de perechi neordonate de elemente diferite ale mulțimii . O mulțime se numește un set de vârfuri , o mulțime se numește un set de muchii
,adică mulţimea este formată din submulţimi de 2 elemente ale mulţimii .
Termeni înrudiți
Teoria grafurilor nu are o terminologie bine stabilită. Prin urmare, unele publicații pot folosi alți termeni decât cei enumerați mai jos.
De obicei, un grafic este reprezentat ca o diagramă : vârfuri - puncte, margini - linii.
Un pseudograf este o colecție de două seturi - un set nevid și un set de perechi neordonate de elemente ale mulțimii .
Elementul este permis în setul de muchii ale pseudografului .
Cu alte cuvinte, dacă elementele mulțimii E pot fi bucle, atunci graficul se numește pseudograf [2] .
Un multigraf este o colecție de două seturi - un set nevid și un multiset de perechi neordonate de elemente diferite ale mulțimii .
Cu alte cuvinte, dacă nu o mulțime, ci o familie, adică dacă conține aceleași elemente, atunci astfel de elemente se numesc muchii multiple, iar graficul se numește multigraf [2] .
Un pseudomultigraf este o colecție de două seturi - o mulțime nevidă și un multiset de perechi neordonate de elemente ale mulțimii .
Cu alte cuvinte, dacă o familie care conține aceleași elemente (mai multe muchii) și poate conține bucle, atunci graficul se numește pseudo-multigraf [2] .
Graficul direcționat (digraf) ( eng. graficul direcționat sau dirgaph ) este un set de două seturi - o mulțime nevide și un set de arce sau perechi ordonate de diferite elemente ale mulțimii
.împreună cu două display-uri
,unde maparea atribuie fiecărui arc vârful său inițial (începutul arcului) , iar maparea atribuie fiecărui arc vârful său final (sfârșitul arcului) . Se spune că arcul duce de la la
Un grafic mixt este o colecție de trei mulțimi - un set nevid de vârfuri și un set de arce sau perechi ordonate de diferite elemente ale mulțimii și un set de muchii de perechi neordonate de diferite elemente ale mulțimii
.împreună cu două display-uri
Graficele direcționate și nedirecționate sunt cazuri speciale de grafice mixte.
Un graf se numește izomorf la un graf dacă există o bijecție de la mulțimea de vârfuri a graficului la mulțimea de vârfuri a graficului , care are următoarea proprietate: dacă graficul are o muchie de la vârf la vârf , atunci graficul trebuie să aibă o muchie de la vârf la vârf și invers - dacă graficul are o muchie de la vârf la vârf , atunci graficul trebuie să aibă o muchie de la vârf la vârf . În cazul unui graf direcționat , această bijecție trebuie să păstreze și orientarea muchiei. În cazul unui grafic ponderat, bijecția trebuie să păstreze și greutatea muchiei.
O rută într-un grafic este o succesiune finită de vârfuri în care fiecare vârf (cu excepția ultimului) este conectat la următorul vârf din succesiune printr-o muchie. Un lanț este un traseu fără margini repetate. O cale simplă este o cale fără vârfuri repetate (ceea ce înseamnă că nu există muchii care se repetă într-o cale simplă).
O rută orientată (sau cale ) într-un digraf este o secvență finită de vârfuri și arce în care fiecare element este incident cu precedentul și următorul.
Un ciclu este un lanț în care primul și ultimul vârf coincid. În acest caz , lungimea traseului (sau ciclului) este numărul muchiilor sale constitutive . Rețineți că dacă vârfurile și sunt capetele unei muchii, atunci, conform acestei definiții, secvența este un ciclu. Pentru a evita astfel de cazuri „degenerate”, sunt introduse următoarele noțiuni.
O cale (sau ciclu) se numește simplă dacă marginile din ea nu se repetă; elementar dacă este simplu și vârfurile din el nu se repetă (cu excepția inițialei și finalei în cazul unui ciclu).
Cele mai simple proprietăți ale căilor și ciclurilor:
O relație binară pe mulțimea de vârfuri a unui graf, dată ca „există o cale de la la ”, este o relație de echivalență și, prin urmare, împărțiește această mulțime în clase de echivalență, numite componente conexe ale grafului. Dacă un grafic are exact o componentă conectată, atunci graficul este conectat. Pe componenta conectată, putem introduce conceptul de distanță dintre vârfuri ca lungime minimă a unei căi care leagă aceste vârfuri.
Orice subgraf conex maxim al unui grafic se numește componentă conexă (sau pur și simplu componentă) a graficului . Cuvântul „maxim” înseamnă maxim în ceea ce privește includerea, adică nu este conținut într-un subgraf conectat cu un număr mare de elemente.
O muchie dintr-un grafic se numește punte dacă îndepărtarea ei crește numărul de componente.
Graficul se numește:
Se mai intampla:
Un grafic simplu este un complex simplial unidimensional .
Mai abstract, un grafic poate fi definit ca un triplu , unde și sunt unele mulțimi ( de vârfuri și , respectiv, muchii ), și este o funcție de incidență (sau incidentor ) care atribuie fiecărei muchii (ordonate sau neordonate) o pereche de vârfuri și de la ( capetele sale ). Cazurile particulare ale acestui concept sunt:
Un tabel în care atât coloanele, cât și rândurile corespund vârfurilor graficului. În fiecare celulă a acestei matrice, este scris un număr care determină prezența unei conexiuni de la rândul de sus la coloana de sus (sau invers).
Acesta este cel mai convenabil mod de a reprezenta grafice dense.
Dezavantajul îl reprezintă cerințele de memorie, care sunt direct proporționale cu pătratul numărului de vârfuri.
Un tabel în care rândurile corespund vârfurilor graficului, iar coloanele corespund legăturilor (marginelor) graficului. Într-o celulă matriceală la intersecția unui rând cu o coloană , se scrie următoarele:
unu în cazul în care conexiunea „pleacă” de sus , -1, dacă conexiunea „intră” în vârf, 0 în toate celelalte cazuri (adică dacă conexiunea este o buclă sau conexiunea nu este incidentă la vârf)Această metodă este destul de încăpătoare (dimensiunea este proporțională cu ) pentru stocare, așa că este folosită foarte rar, în cazuri speciale (de exemplu, pentru a găsi rapid cicluri într-un grafic).
O listă în care fiecare vârf al graficului corespunde unui șir care stochează o listă de vârfuri adiacente. O astfel de structură de date nu este un tabel în sensul obișnuit, ci este o „listă de liste”.
Dimensiunea memoriei: .
Acesta este cel mai convenabil mod de a reprezenta grafice rare, precum și atunci când implementați algoritmi de parcurgere a graficului de bază în lățime sau adâncime, unde trebuie să obțineți rapid „vecinii” vârfului vizualizat în prezent.
O listă în care fiecare margine a graficului corespunde unui șir care stochează două vârfuri incidente marginii.
Dimensiunea memoriei: .
Acesta este cel mai compact mod de a reprezenta grafice, așa că este adesea folosit pentru stocare externă sau schimb de date.
Pentru a descrie grafice care sunt potrivite pentru prelucrarea automată și în același timp convenabile pentru percepția umană, sunt utilizate mai multe limbaje standardizate, inclusiv:
Au fost dezvoltate o serie de programe comerciale pentru construirea de grafice, de exemplu, construirea de grafice stă la baza pachetelor software de aplicație ILOG (din 2009 deținute de IBM Corporation ), printre alte programe - GoView, Lassalle AddFlow, LEDA (există o ediție gratuită). ).
Există, de asemenea, un program gratuit de graficare igraph și o bibliotecă gratuită numită Boost .
Programe de vizualizareUrmătoarele instrumente software sunt utilizate pentru a vizualiza grafice :