Grafic (matematică)

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 .

Definiții

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 .

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.

Pseudograf

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] .

Multigraf

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] .

Pseudomultigraf

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

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

Grafic mixt

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.

Grafice izomorfe

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.

Alte definiții înrudite

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.

Caracteristici suplimentare ale graficelor

Graficul se numește:

Se mai intampla:

Generalizarea conceptului de graf

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:

Modalități de reprezentare a unui grafic în informatică

Matricea adiacentei

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.

Matricea de incidență

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).

Lista adiacentei

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.

Lista marginilor

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.

Limbaje de descriere și programe grafice

Limbi de descriere

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:

Construire programe

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 vizualizare

Următoarele instrumente software sunt utilizate pentru a vizualiza grafice :

  • Graphviz ( Eclipse Public License )
  • LION Graph Visualizer.
  • Analizorul grafic este un program în limba rusă cu o interfață de utilizator simplă ( GNU LGPL ; numai Windows).
  • Gephi este un cadru grafic pentru reprezentarea și studierea graficelor ( GNU GPL , CDDL ).
  • Biblioteca GraphX ​​este o bibliotecă .NET gratuită pentru calcularea și desenarea graficelor, folosind WPF 4.0 .
  • Biblioteca MSAGL este o bibliotecă gratuită pentru .NET [3] .

Vezi și

Note

  1. Burkatovskaya, 2014 , p. 3.
  2. 1 2 3 Burkatovskaya, 2014 , p. 6.
  3. Microsoft Automatic Graph Layout - Microsoft Research . research.microsoft.com. Consultat la 15 noiembrie 2015. Arhivat din original la 14 mai 2012.

Literatură

  • Burkatovskaya Yu. B. Teoria graficelor. - Tomsk: Editura Universității Politehnice din Tomsk, 2014. - T. 1. - 200 p.
  • Distel R. Teoria grafurilor. - Novosibirsk: Editura Institutului de Matematică. S. L. Sobolev SO RAN, 2002. - 336 p. - ISBN 5-86134-101-X.
  • Emelichev V. A., Melnikov O. I., Sarvanov V. I., Tyshkevich R. I. Prelegeri despre teoria grafurilor. M.: Nauka, 1990. 384 p. (Ed. 2, rev. M.: URSS, 2009. 392 p.)
  • Kasyanov V.N., Evstigneev V.A. Grafice în programare: procesare, vizualizare și aplicare. - Sankt Petersburg. : BHV-Petersburg, 2003. - S. 1104. - ISBN 5-94157-184-4 .
  • Kirsanov M.N. Grafice în arțar. — M. : Fizmatlit, 2007. — 168 p. - ISBN 978-5-9221-0745-7 .
  • Kormen T. M. și colab., Partea VI. Algoritmi pentru lucrul cu grafice // Algoritmi: constructie si analiza = Introduction to Algorithms. - Ed. a II-a. - M. : Williams, 2006. - S. 1296. - ISBN 0-07-013151-1 .
  • Ore O. Teoria grafurilor. — M .: Nauka, 1968. — 336 p.
  • Grafice // Dicţionar enciclopedic al unui tânăr matematician / Comp. A. P. Savin. - M . : Pedagogie , 1985. - S.  86 -88. — 352 p.
  • Salii VN, Bogomolov AM Fundamentele algebrice ale teoriei sistemelor discrete. - M .: Literatură fizică și matematică, 1997. - ISBN 5-02-015033-9 .
  • Wilson R. Introducere în teoria grafurilor. — M .: Mir, 1977. — 208 p.
  • Harari F. Teoria grafurilor. — M .: Mir, 1973.