Graf (matematik)

En graf er en matematisk abstraktion af et virkeligt system af enhver art, hvis objekter har parvise forbindelser. En graf som et matematisk objekt er en samling af to sæt - selve sættet af objekter, kaldet sættet af hjørner , og sættet af deres parvise forbindelser, kaldet sættet af kanter. Et element i et kantsæt er et par elementer i et toppunktsæt.

Grafer er meget udbredt i moderne videnskab og teknologi. De bruges både inden for naturvidenskab (fysik og kemi) og i samfundsvidenskab (for eksempel sociologi), men brugen af ​​grafer har fået den største skala inden for datalogi og netværksteknologier.

Som det enkleste eksempel fra livet kan vi give et flyvediagram for et bestemt flyselskab, som er modelleret ved hjælp af en graf, hvor toppen af ​​grafen er byer, og kanterne er flyve, der forbinder par af byer. Et bibliotekstræ i en computer er også en graf: drev, mapper og filer er hjørner, og kanterne viser indlejring af filer og mapper i mapper og drev [1] . Strukturen af ​​Wikipedia er modelleret af en rettet graf , hvor artikler er grafens toppunkter, og hyperlinks er buer ( tematisk kort ).

Grafer er hovedobjektet for undersøgelse i grafteori .

Definitioner

Systemerne af den virkelige natur, der er modelleret af grafer, er meget forskellige, så der er forskellige typer grafer. Den enkleste abstraktion af systemer med elementer, der har parvise forbindelser, er en simpel graf .

Simpel graf

Definition. En simpel graf er en samling af to sæt - et ikke-tomt sæt og et sæt uordnede par af forskellige elementer i sættet . Et sæt kaldes et sæt af hjørner , et sæt kaldes et sæt kanter

,

det vil sige, at sættet består af 2-element undersæt af sættet .

Relaterede termer

Grafteori har ikke en veletableret terminologi. Derfor kan nogle publikationer bruge andre udtryk end dem, der er anført nedenfor.

Typisk er en graf afbildet som et diagram : knudepunkter - punkter, kanter - linjer.

Pseudograf

En pseudograf er en samling af to sæt - et ikke-tomt sæt og et sæt uordnede par af elementer i sættet .

Elementet er tilladt i sættet af kanter på pseudografen .

Med andre ord, hvis elementerne i sættet E kan være sløjfer, så kaldes grafen en pseudograf [2] .

Multigraf

En multigraf er en samling af to sæt - et ikke-tomt sæt og et multisæt af uordnede par af forskellige elementer i sættet .

Med andre ord, hvis ikke et sæt, men en familie, det vil sige, hvis det indeholder de samme elementer, så kaldes sådanne elementer multiple edges, og grafen kaldes en multigraf [2] .

Pseudomultigraf

En pseudomultigraf er en samling af to sæt - et ikke-tomt sæt og et multisæt af uordnede par af elementer i sættet .

Med andre ord, hvis en familie, der indeholder de samme elementer (flere kanter) og kan indeholde sløjfer, så kaldes grafen en pseudo-multigraf [2] .

Instrueret graf

Directed graph (digraph) ( eng.  directed graph eller dirgaph ) er et sæt af to sæt - et ikke-tomt sæt og et sæt buer eller ordnede par af forskellige elementer i sættet

.

sammen med to displays

,

hvor afbildningen tildeler hver bue dens indledende toppunkt (begyndelsen af ​​buen) , og afbildningen tildeler hver bue dens endepunkt (enden af ​​buen) . De siger, at buen fører fra til

Blandet graf

En  blandet graf er  en samling af tre sæt - et ikke-tomt sæt hjørner og et sæt buer eller ordnede par af forskellige elementer i sættet og et sæt kanter af uordnede par af forskellige elementer i sættet

.

sammen med to displays

Direkte og urettede grafer er særlige tilfælde af blandede grafer.

Isomorfe grafer

En graf kaldes isomorf i forhold til en graf, hvis der er en bijektion fra sættet af toppunkter i grafen til sættet af toppunkter i grafen , som har følgende egenskab: hvis grafen har en kant fra toppunkt til toppunkt , så grafen skal have en kant fra toppunkt til toppunkt og omvendt - hvis grafen har en kant fra toppunkt til toppunkt , så skal grafen have en kant fra toppunkt til toppunkt . I tilfælde af en rettet graf skal denne bijektion også bevare kantens orientering. I tilfælde af en vægtet graf skal bijektionen også bevare kantens vægt.

Andre relaterede definitioner

En rute i en graf er en endelig sekvens af knudepunkter, hvor hvert knudepunkt (undtagen det sidste) er forbundet med det næste knudepunkt i sekvensen med en kant. En kæde er en rute uden gentagne kanter. En simpel sti er en sti uden gentagne hjørner (hvilket betyder, at der ikke er nogen gentagne kanter i en simpel sti).

En orienteret rute (eller sti ) i en digraf er en endelig sekvens af hjørner og buer, hvor hvert element falder sammen med det forrige og det næste.

En cyklus er en kæde, hvor første og sidste toppunkt falder sammen. I dette tilfælde er længden af ​​stien (eller cyklus) antallet af dens konstituerende kanter . Bemærk, at hvis hjørnerne og er enderne af en eller anden kant, så er sekvensen ifølge denne definition en cyklus. For at undgå sådanne "degenererede" tilfælde introduceres følgende begreber.

En sti (eller cykel) kaldes simpel , hvis kanterne på den ikke gentager sig; elementær , hvis den er enkel, og hjørnerne i den ikke gentages (med undtagelse af den indledende og sidste i tilfælde af en cyklus).

De enkleste egenskaber ved stier og cykler:

En binær relation på toppunktet af en graf, angivet som "der er en vej fra til ", er en ækvivalensrelation og opdeler derfor dette sæt i ækvivalensklasser, kaldet forbundne komponenter af grafen. Hvis en graf har præcis én tilsluttet komponent, så er grafen forbundet. På den tilsluttede komponent kan vi introducere begrebet afstand mellem toppunkter som minimumslængden af ​​en sti, der forbinder disse toppunkter.

Enhver maksimalt forbundet undergraf af en graf kaldes en forbundet komponent (eller blot en komponent) af grafen . Ordet "maksimum" betyder maksimum med hensyn til inklusion, dvs. ikke indeholdt i en forbundet undergraf med et stort antal elementer.

En kant i en graf kaldes en bro, hvis dens fjernelse øger antallet af komponenter.

Yderligere karakteristika for grafer

Grafen hedder:

Det sker også:

Generalisering af begrebet en graf

En simpel graf er et endimensionelt forenklet kompleks .

Mere abstrakt kan en graf defineres som en tredobbelt , hvor og  er nogle sæt ( hhv . hjørner og kanter ), og  er en incidensfunktion (eller indfaldsfaktor ), der tildeler hver kant (ordnet eller uordnet) et par hjørner og fra (dens ender ). Særlige tilfælde af dette koncept er:

Måder at repræsentere en graf i datalogi

Adjacency matrix

En tabel, hvor både kolonner og rækker svarer til grafens hjørner. I hver celle i denne matrix er der skrevet et tal, der bestemmer tilstedeværelsen af ​​en forbindelse fra den øverste række til den øverste kolonne (eller omvendt).

Dette er den mest bekvemme måde at repræsentere tætte grafer på.

Ulempen er hukommelseskravene, som er direkte proportionale med kvadratet af antallet af toppunkter.

Incidensmatrix

En tabel, hvor rækkerne svarer til grafens toppunkter, og kolonnerne svarer til grafens links (kanter). I en matrixcelle i skæringspunktet mellem en række og en kolonne skrives følgende:

en i tilfælde af at forbindelsen "forlader" toppen , -1, hvis forbindelsen "kommer ind" i toppunktet, 0 i alle andre tilfælde (det vil sige, hvis forbindelsen er en sløjfe, eller forbindelsen ikke er indfaldende ved toppunktet)

Denne metode er ret rummelig (størrelsen er proportional med ) til opbevaring, så den bruges meget sjældent, i særlige tilfælde (for eksempel for hurtigt at finde cyklusser i en graf).

Adjacency liste

En liste, hvor hvert hjørne af grafen svarer til en streng, der gemmer en liste over tilstødende hjørner. En sådan datastruktur er ikke en tabel i sædvanlig forstand, men er en "liste over lister".

Hukommelsesstørrelse: .

Dette er den mest bekvemme måde at repræsentere sparsomme grafer, såvel som når du implementerer grundlæggende grafgennemløbsalgoritmer i bredden eller dybden, hvor du hurtigt skal finde "naboerne" til det aktuelt viste toppunkt.

Liste over kanter

En liste, hvor hver kant af grafen svarer til en streng, der gemmer to hjørner, der falder ind på kanten.

Hukommelsesstørrelse: .

Dette er den mest kompakte måde at repræsentere grafer på, så den bruges ofte til ekstern lagring eller dataudveksling.

Beskrivelsessprog og grafprogrammer

Beskrivelsessprog

For at beskrive grafer, der er velegnede til maskinbearbejdning og samtidig bekvemme for menneskelig opfattelse, bruges flere standardiserede sprog, herunder:

Byggeprogrammer

Der er udviklet en række kommercielle programmer til at bygge grafer, for eksempel er grafbygning grundlaget for ILOG applikationssoftwarepakker (siden 2009 ejet af IBM Corporation ), blandt andre programmer - GoView, Lassalle AddFlow, LEDA (der er en gratis udgave ).

Der er også et gratis grafprogram igraph og et gratis bibliotek kaldet Boost .

Visualiseringsprogrammer

Følgende softwareværktøjer bruges til at visualisere grafer :

  • Graphviz ( Eclipse Public License )
  • LION Graph Visualizer.
  • Grafanalysatoren er et russisksproget program med en enkel brugergrænseflade ( GNU LGPL ; kun Windows).
  • Gephi er en grafisk ramme til at repræsentere og studere grafer ( GNU GPL , CDDL ).
  • GraphX-biblioteket er et gratis .NET -bibliotek til beregning og tegning af grafer ved hjælp af WPF 4.0 .
  • MSAGL-biblioteket er et gratis bibliotek til .NET [3] .

Se også

Noter

  1. Burkatovskaya, 2014 , s. 3.
  2. 1 2 3 Burkatovskaya, 2014 , s. 6.
  3. Microsoft Automatic Graph Layout - Microsoft Research . research.microsoft.com. Hentet 15. november 2015. Arkiveret fra originalen 14. maj 2012.

Litteratur

  • Burkatovskaya Yu. B. Teori om grafer. - Tomsk: Tomsk Polytekniske Universitets forlag, 2014. - T. 1. - 200 s.
  • Distel R. Grafteori. - Novosibirsk: Forlaget for Matematisk Institut. S. L. Sobolev SO RAN, 2002. - 336 s. - ISBN 5-86134-101-X.
  • Emelichev V. A., Melnikov O. I., Sarvanov V. I., Tyshkevich R. I. Forelæsninger om grafteori. M.: Nauka, 1990. 384 s. (Udg. 2, rev. M.: URSS, 2009. 392 s.)
  • Kasyanov V.N., Evstigneev V.A. Grafer i programmering: bearbejdning, visualisering og anvendelse. - Sankt Petersborg. : BHV-Petersburg, 2003. - S. 1104. - ISBN 5-94157-184-4 .
  • Kirsanov M.N. Grafer i ahorn. — M. : Fizmatlit, 2007. — 168 s. - ISBN 978-5-9221-0745-7 .
  • Kormen T. M. et al., del VI. Algoritmer til at arbejde med grafer // Algoritmer: konstruktion og analyse = Introduktion til algoritmer. - 2. udg. - M. : Williams, 2006. - S. 1296. - ISBN 0-07-013151-1 .
  • Ore O. Grafteori. — M .: Nauka, 1968. — 336 s.
  • Grafer // Encyklopædisk ordbog over en ung matematiker / Komp. A. P. Savin. - M . : Pædagogik , 1985. - S.  86 -88. — 352 s.
  • Salii VN, Bogomolov AM Algebraiske grundlag for teorien om diskrete systemer. - M .: Fysisk og matematisk litteratur, 1997. - ISBN 5-02-015033-9 .
  • Wilson R. Introduktion til grafteori. — M .: Mir, 1977. — 208 s.
  • Harari F. Grafteori. — M .: Mir, 1973.