Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/GAP/pkg/digraphs/doc/   (Algebra von RWTH Aachen Version 4.15.1©)  Datei vom 27.8.2025 mit Größe 350 kB image not shown  

Quelle  chap3_mj.html   Sprache: HTML

 
 products/Sources/formale Sprachen/GAP/pkg/digraphs/doc/chap3_mj.html


<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
         "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<script type="text/javascript"
  src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>
<title>GAP (Digraphs) - Chapter 3: Creating digraphs</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<meta name="generator" content="GAPDoc2HTML" />
<link rel="stylesheet" type="text/css" href="manual.css" />
<script src="manual.js" type="text/javascript"></script>
<script type="text/javascript">overwriteStyle();</script>
</head>
<body class="chap3"  onload="jscontent()">


<div class="chlinktop"><span class="chlink1">Goto Chapter: </span><a href="chap0_mj.html">Top</a>  <a href="chap1_mj.html">1</a>  <a href="chap2_mj.html">2</a>  <a href="chap3_mj.html">3</a>  <a href="chap4_mj.html">4</a>  <a href="chap5_mj.html">5</a>  <a href="chap6_mj.html">6</a>  <a href="chap7_mj.html">7</a>  <a href="chap8_mj.html">8</a>  <a href="chap9_mj.html">9</a>  <a href="chapA_mj.html">A</a>  <a href="chapB_mj.html">B</a>  <a href="chapBib_mj.html">Bib</a>  <a href="chapInd_mj.html">Ind</a>  </div>

<div class="chlinkprevnexttop"> <a href="chap0_mj.html">[Top of Book]</a>   <a href="chap0_mj.html#contents">[Contents]</a>    <a href="chap2_mj.html">[Previous Chapter]</a>    <a href="chap4_mj.html">[Next Chapter]</a>   </div>

<p id="mathjaxlink" class="pcenter"><a href="chap3.html">[MathJax off]</a></p>
<p><a id="X7D34861E863A5D93" name="X7D34861E863A5D93"></a></p>
<div class="ChapSects"><a href="chap3_mj.html#X7D34861E863A5D93">3 <span class="Heading">Creating digraphs</span></a>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap3_mj.html#X7D34861E863A5D93">3.1 <span class="Heading">Creating digraphs</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7877ADC77F85E630">3.1-1 IsDigraph</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7D7EDF83820ED6F5">3.1-2 IsMutableDigraph</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7CAFAA89804F80BD">3.1-3 IsImmutableDigraph</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7E749324800B38A5">3.1-4 IsCayleyDigraph</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X80F1B6D28478D8B9">3.1-5 IsDigraphWithAdjacencyFunction</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X86E798B779515678">3.1-6 DigraphByOutNeighboursType</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X834843057CE86655">3.1-7 Digraph</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X8023FE387A3AB609">3.1-8 DigraphByAdjacencyMatrix</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7F37B6768349E269">3.1-9 DigraphByEdges</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7B75C1D680757D6F">3.1-10 EdgeOrbitsDigraph</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X81BC49B57EAADEFB">3.1-11 DigraphByInNeighbours</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7FCADADC7EC28478">3.1-12 CayleyDigraph</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7BB820C9813F035F">3.1-13 ListNamedDigraphs</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap3_mj.html#X83608C407CC8836D">3.2 <span class="Heading">Changing representations</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7FBC4BDB82FBEDD2">3.2-1 AsBinaryRelation</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X86834E307EACC670">3.2-2 AsDigraph</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7B335342839E5146">3.2-3 Graph</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7C4F13E080EC16B0">3.2-4 AsGraph</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7C5360B2799943F3">3.2-5 AsTransformation</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap3_mj.html#X85126078848B420A">3.3 <span class="Heading">New digraphs from old</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X83D93A8A8251E6F9">3.3-1 DigraphImmutableCopy</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X8399F7427B227228">3.3-2 DigraphImmutableCopyIfImmutable</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X83C51DA182CCEA2F">3.3-3 InducedSubdigraph</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7CAF093B85A93D2F">3.3-4 ReducedDigraph</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X829E3EAC7C4B3B1E">3.3-5 MaximalSymmetricSubdigraph</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X79BA6A66846D5A95">3.3-6 MaximalAntiSymmetricSubdigraph</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7DD9766C86D3ED20">3.3-7 UndirectedSpanningForest</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X79C770918610AD97">3.3-8 DigraphShortestPathSpanningTree</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7D1D26D27F5B56C2">3.3-9 QuotientDigraph</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X78DECD26811EFD7C">3.3-10 DigraphReverse</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7F71D99D852B130F">3.3-11 DigraphDual</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X874883DD7DD450C4">3.3-12 DigraphSymmetricClosure</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7A6C419080AD41DE">3.3-13 DigraphTransitiveClosure</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X82AD17517E273600">3.3-14 DigraphTransitiveReduction</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X83B2506D79453208">3.3-15 DigraphAddVertex</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X8134BEE7786BD3A7">3.3-16 DigraphAddVertices</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7E58CC4880627658">3.3-17 DigraphAddEdge</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7BE5C7028760B053">3.3-18 DigraphAddEdgeOrbit</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X8693A61B7F752C76">3.3-19 DigraphAddEdges</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7B634A2B83C08B16">3.3-20 DigraphRemoveVertex</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7E290E847A5A299A">3.3-21 DigraphRemoveVertices</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X8433E3BC7E5EA6BF">3.3-22 DigraphRemoveEdge</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X85981D9187F49018">3.3-23 DigraphRemoveEdgeOrbit</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X87093FDA7F88E732">3.3-24 DigraphRemoveEdges</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X79324AF7818C0C02">3.3-25 DigraphRemoveLoops</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7DCCD0247897A3DE">3.3-26 DigraphRemoveAllMultipleEdges</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X792AD1147E2BFCB7">3.3-27 DigraphContractEdge</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7821753D85402A8C">3.3-28 DigraphReverseEdges</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X814F1DFC83DB273F">3.3-29 DigraphDisjointUnion</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7DA997697D310E44">3.3-30 DigraphEdgeUnion</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7DDFC759860E3390">3.3-31 DigraphJoin</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7D625CC87DBFFDED">3.3-32 DigraphCartesianProduct</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X84D24DC9833B54A5">3.3-33 DigraphDirectProduct</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X8160BCC378AF000F">3.3-34 ConormalProduct</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X79FD2AF279F20A72">3.3-35 HomomorphicProduct</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X8151176882BA9901">3.3-36 LexicographicProduct</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X807F95057F9DF576">3.3-37 ModularProduct</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X82E200F07FEFAF27">3.3-38 StrongProduct</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X8795087A78FE7D54">3.3-39 DigraphCartesianProductProjections</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X84FB64F185B804C2">3.3-40 DigraphDirectProductProjections</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X8595BF937B749F22">3.3-41 LineDigraph</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X8364C6F17A1680CB">3.3-42 LineUndirectedDigraph</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7FB8B48C87C0ED16">3.3-43 DoubleDigraph</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7C6E6CB284982C7A">3.3-44 BipartiteDoubleDigraph</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X8167A50A83256ED1">3.3-45 DigraphAddAllLoops</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X865436437DF95FEF">3.3-46 DistanceDigraph</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X86F9CCEA839ABC48">3.3-47 DigraphClosure</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7B5AC5FE859F4D80">3.3-48 DigraphMycielskian</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap3_mj.html#X85B5D9B97F5187B7">3.4 <span class="Heading">Random digraphs</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X86CF9F66788B2A24">3.4-1 RandomDigraph</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X78FE275E7E77D56F">3.4-2 RandomMultiDigraph</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7D36B5E57F055051">3.4-3 RandomTournament</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7A023E4787682475">3.4-4 RandomLattice</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap3_mj.html#X7C76D1DC7DAF03D3">3.5 <span class="Heading">Standard examples</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7D5E3E337D03EDFF">3.5-1 AndrasfaiGraph</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X8636C2898395B7DF">3.5-2 BananaTree</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7FC309427BB170D8">3.5-3 BinaryTree</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X845C374280D6EAA4">3.5-4 BinomialTreeGraph</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7E3240047C92733F">3.5-5 BishopsGraph</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X81A0AC37816D287B">3.5-6 BondyGraph</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X861F493382FA7C0B">3.5-7 BookGraph</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X8542287E81BDB55E">3.5-8 BurntPancakeGraph</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X84C1D3D67E3979A5">3.5-9 PancakeGraph</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7B5E9D857D47F5C2">3.5-10 StackedBookGraph</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X870594FC866AC88E">3.5-11 ChainDigraph</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7DB5AB657A797CF2">3.5-12 CirculantGraph</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X812417E278198D9C">3.5-13 CompleteDigraph</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X8795B0AD856014FA">3.5-14 CompleteBipartiteDigraph</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X873F29CC863241F8">3.5-15 CompleteMultipartiteDigraph</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X80C29DDE876FFBEB">3.5-16 CycleDigraph</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7F6EC0AE81531C3C">3.5-17 CycleGraph</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X80DAE31A79FEFD40">3.5-18 EmptyDigraph</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7CE45E2B782ADE9A">3.5-19 GearGraph</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X795B62398767E313">3.5-20 HaarGraph</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X801024F57DDC8A39">3.5-21 HalvedCubeGraph</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7C43BDE47DF6553A">3.5-22 HanoiGraph</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X782ABFCE812B020A">3.5-23 HelmGraph</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7EE552F88609B1A2">3.5-24 HypercubeGraph</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X80ED9CE785819607">3.5-25 JohnsonDigraph</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X79483C677AF65688">3.5-26 KellerGraph</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X80576A8C861512FD">3.5-27 KingsGraph</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X8655BA8584B3ACD0">3.5-28 KneserGraph</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X84609DCA79FD9B56">3.5-29 KnightsGraph</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7F61140C822880DA">3.5-30 LindgrenSousselierGraph</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X832E82CF87BF5D43">3.5-31 LollipopGraph</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X853613228110588E">3.5-32 MobiusLadderGraph</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X825943547FD7A687">3.5-33 MycielskiGraph</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7904BB2982014ADA">3.5-34 OddGraph</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X815055168405B7F0">3.5-35 PathGraph</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7A38DFC47AAE4A96">3.5-36 PermutationStarGraph</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X823F43217A6C375D">3.5-37 PetersenGraph</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7B5441F386BD105E">3.5-38 GeneralisedPetersenGraph</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X85425DC5847E6D20">3.5-39 PrismGraph</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X817982877B48D5BD">3.5-40 StackedPrismGraph</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X785C3F1F7D690151">3.5-41 QueensGraph</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7A6DD11881874F51">3.5-42 RooksGraph</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X8404987F849D7CF2">3.5-43 SquareGridGraph</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X8234361278E8816F">3.5-44 TriangularGridGraph</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X78F78C077CBAE1EC">3.5-45 StarGraph</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X81D59C4D809F4AD3">3.5-46 TadpoleGraph</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7BFA33067F83F8B0">3.5-47 WalshHadamardGraph</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X84F3B70A82EEE780">3.5-48 WebGraph</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X817EA60D828A765E">3.5-49 WheelGraph</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7BE44CA27AA5F8DB">3.5-50 WindmillGraph</a></span>
</div></div>
</div>

<h3>3 <span class="Heading">Creating digraphs</span></h3>

<p>In this chapter we describe how to create digraphs.</p>

<p><a id="X7D34861E863A5D93" name="X7D34861E863A5D93"></a></p>

<h4>3.1 <span class="Heading">Creating digraphs</span></h4>

<p><a id="X7877ADC77F85E630" name="X7877ADC77F85E630"></a></p>

<h5>3.1-1 IsDigraph</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsDigraph</code></td><td class="tdright">( category )</td></tr></table></div>
<p>Every digraph in <strong class="pkg">Digraphs</strong> belongs to the category <code class="code">IsDigraph</code>. Some basic attributes and operations for digraphs are <code class="func">DigraphVertices</code> (<a href="chap5_mj.html#X7C45F7D878D896AC"><span class="RefLink">5.1-1</span></a>), <code class="func">DigraphEdges</code> (<a href="chap5_mj.html#X7D1C6A4D7ECEC317"><span class="RefLink">5.1-3</span></a>), and <code class="func">OutNeighbours</code> (<a href="chap5_mj.html#X7E9880767AE68E00"><span class="RefLink">5.2-6</span></a>).</p>

<p><a id="X7D7EDF83820ED6F5" name="X7D7EDF83820ED6F5"></a></p>

<h5>3.1-2 IsMutableDigraph</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsMutableDigraph</code></td><td class="tdright">( category )</td></tr></table></div>
<p><code class="code">IsMutableDigraph</code> is a synonym for <code class="func">IsDigraph</code> (<a href="chap3_mj.html#X7877ADC77F85E630"><span class="RefLink">3.1-1</span></a>) and <code class="func">IsMutable</code> (<a href="/home/runner/gap/doc/ref/chap12_mj.html#X7999AD1D7A4F1F46"><span class="RefLink">Reference: IsMutable</span></a>). A mutable digraph may be changed in-place by methods in the <strong class="pkg">Digraphs</strong> package, and is not attribute-storing – see <code class="func">IsAttributeStoringRep</code> (<a href="/home/runner/gap/doc/ref/chap13_mj.html#X7A951C33839AF2C1"><span class="RefLink">Reference: IsAttributeStoringRep</span></a>).</p>

<p>A mutable digraph may be converted into an immutable attribute-storing digraph by calling <code class="func">MakeImmutable</code> (<a href="/home/runner/gap/doc/ref/chap12_mj.html#X80CE136D804097C7"><span class="RefLink">Reference: MakeImmutable</span></a>) on the digraph.</p>

<p><a id="X7CAFAA89804F80BD" name="X7CAFAA89804F80BD"></a></p>

<h5>3.1-3 IsImmutableDigraph</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsImmutableDigraph</code></td><td class="tdright">( category )</td></tr></table></div>
<p><code class="code">IsImmutableDigraph</code> is a subcategory of <code class="func">IsDigraph</code> (<a href="chap3_mj.html#X7877ADC77F85E630"><span class="RefLink">3.1-1</span></a>). Digraphs that lie in <code class="code">IsImmutableDigraph</code> are immutable and attribute-storing. In particular, they lie in <code class="func">IsAttributeStoringRep</code> (<a href="/home/runner/gap/doc/ref/chap13_mj.html#X7A951C33839AF2C1"><span class="RefLink">Reference: IsAttributeStoringRep</span></a>).</p>

<p>A mutable digraph may be converted to an immutable digraph that lies in the category <code class="code">IsImmutableDigraph</code> by calling <code class="func">MakeImmutable</code> (<a href="/home/runner/gap/doc/ref/chap12_mj.html#X80CE136D804097C7"><span class="RefLink">Reference: MakeImmutable</span></a>) on the digraph.</p>

<p>The operation <code class="func">DigraphMutableCopy</code> (<a href="chap3_mj.html#X83D93A8A8251E6F9"><span class="RefLink">3.3-1</span></a>) can be used to construct a mutable copy of an immutable digraph. It is however not possible to convert an immutable digraph into a mutable digraph in-place.</p>

<p><a id="X7E749324800B38A5" name="X7E749324800B38A5"></a></p>

<h5>3.1-4 IsCayleyDigraph</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsCayleyDigraph</code></td><td class="tdright">( category )</td></tr></table></div>
<p><code class="code">IsCayleyDigraph</code> is a subcategory of <code class="code">IsDigraph</code>. Digraphs that are Cayley digraphs of a group and that are constructed by the operation <code class="func">CayleyDigraph</code> (<a href="chap3_mj.html#X7FCADADC7EC28478"><span class="RefLink">3.1-12</span></a>) are constructed in this category, and are always immutable.</p>

<p><a id="X80F1B6D28478D8B9" name="X80F1B6D28478D8B9"></a></p>

<h5>3.1-5 IsDigraphWithAdjacencyFunction</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsDigraphWithAdjacencyFunction</code></td><td class="tdright">( category )</td></tr></table></div>
<p><code class="code">IsDigraphWithAdjacencyFunction</code> is a subcategory of <code class="code">IsDigraph</code>. Digraphs that are <em>created</em> using an adjacency function are constructed in this category.</p>

<p><a id="X86E798B779515678" name="X86E798B779515678"></a></p>

<h5>3.1-6 DigraphByOutNeighboursType</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ DigraphByOutNeighboursType</code></td><td class="tdright">( global variable )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ DigraphFamily</code></td><td class="tdright">( family )</td></tr></table></div>
<p>The type of all digraphs is <code class="code">DigraphByOutNeighboursType</code>. The family of all digraphs is <code class="code">DigraphFamily</code>.</p>

<p><a id="X834843057CE86655" name="X834843057CE86655"></a></p>

<h5>3.1-7 Digraph</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Digraph</code>( [<var class="Arg">filt</var>, ]<var class="Arg">obj</var>[, <var class="Arg">source</var>, <var class="Arg">range</var>] )</td><td class="tdright">( operation )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Digraph</code>( [<var class="Arg">filt</var>, ]<var class="Arg">list</var>, <var class="Arg">func</var)</td><td class="tdright">( operation )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Digraph</code>( [<var class="Arg">filt</var>, ]<var class="Arg">G</var>, <var class="Arg">list</var>, <var class="Arg">act</var>, <var class="Arg">adj</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: A digraph.</p>

<p>If the optional first argument <var class="Arg">filt</var> is present, then this should specify the category or representation the digraph being created will belong to. For example, if <var class="Arg">filt</var> is <code class="func">IsMutableDigraph</code> (<a href="chap3_mj.html#X7D7EDF83820ED6F5"><span class="RefLink">3.1-2</span></a>), then the digraph being created will be mutable, if <var class="Arg">filt</var> is <code class="func">IsImmutableDigraph</code> (<a href="chap3_mj.html#X7CAFAA89804F80BD"><span class="RefLink">3.1-3</span></a>), then the digraph will be immutable. If the optional first argument <var class="Arg">filt</var> is not present, then <code class="func">IsImmutableDigraph</code> (<a href="chap3_mj.html#X7CAFAA89804F80BD"><span class="RefLink">3.1-3</span></a>) is used by default.</p>


<dl>
<dt><strong class="Mark">for a list (i.e. an adjacency list)</strong></dt>
<dd><p>if <var class="Arg">obj</var> is a list of lists of positive integers in the range from <code class="code">1</code> to <code class="code">Length(<var class="Arg">obj</var>)</code>, then this function returns the digraph with vertices <span class="SimpleMath">\(E ^ 0 = \)</span><code class="code">[1 .. Length(<var class="Arg">obj</var>)]</code>, and edges corresponding to the entries of <var class="Arg">obj</var>.</p>

<p>More precisely, there is an edge from vertex <code class="code">i</code> to <code class="code">j</code> if and only if <code class="code">j</code> is in <code class="code"><var class="Arg">obj</var>[i]</code>; the source of this edge is <code class="code">i</code> and the range is <code class="code">j</code>. If <code class="code">j</code> occurs in <code class="code"><var class="Arg">obj</var>[i]</codewith multiplicity <code class="code">k</code>, then there are <code class="code">k</code> edges from <code class="code">i</code> to <code class="code">j</code>.</p>

</dd>
<dt><strong class="Mark">for three lists</strong></dt>
<dd><p>if <var class="Arg">obj</var> is a duplicate-free list, and <var class="Arg">source</var> and <var class="Arg">range</var> are lists of equal length consisting of positive integers in the list <code class="code">[1 .. Length(<var class="Arg">obj</var>)]</code>, then this function returns a digraph with vertices <span class="SimpleMath">\(E ^ 0 = \)</span><code class="code">[1 .. Length(<var class="Arg">obj</var>)]</code>, and <code class="code">Length(<var class="Arg">source</var>)</code> edges. For each <code class="code">i</code> in <code class="code">[1 .. Length(<var class="Arg">source</var>)]</code> there exists an edge with source vertex <code class="code">source[i]</code> and range vertex <code class="code">range[i]</code>. See <code class="func">DigraphSource</code> (<a href="chap5_mj.html#X7FDEBF3279759961"><span class="RefLink">5.2-5</span></a>) and <code class="func">DigraphRange</code> (<a href="chap5_mj.html#X7FDEBF3279759961"><span class="RefLink">5.2-5</span></a>).</p>

<p>The vertices of the digraph will be labelled by the elements of <var class="Arg">obj</var>.</p>

</dd>
<dt><strong class="Mark">for an integer, and two lists</strong></dt>
<dd><p>if <var class="Arg">obj</var> is an integer, and <var class="Arg">source</var> and <var class="Arg">range</var> are lists of equal length consisting of positive integers in the list <code class="code">[1 .. <var class="Arg">obj</var>]</code>, then this function returns a digraph with vertices <span class="SimpleMath">\(E ^ 0 = \)</span><code class="code">[1 .. <var class="Arg">obj</var>]</code>, and <code class="code">Length(<var class="Arg">source</var>)</code> edges. For each <code class="code">i</code> in <code class="code">[1 .. Length(<var class="Arg">source</var>)]</code> there exists an edge with source vertex <code class="code">source[i]</code> and range vertex <code class="code">range[i]</code>. See <code class="func">DigraphSource</code> (<a href="chap5_mj.html#X7FDEBF3279759961"><span class="RefLink">5.2-5</span></a>) and <code class="func">DigraphRange</code> (<a href="chap5_mj.html#X7FDEBF3279759961"><span class="RefLink">5.2-5</span></a>).</p>

</dd>
<dt><strong class="Mark">for a list and a function</strong></dt>
<dd><p>if <var class="Arg">list</var> is a list and <var class="Arg">func</var> is a function taking 2 arguments that are elements of <var class="Arg">list</var>, and <var class="Arg">func</var> returns <code class="keyw">true</code> or <code class="keyw">false</code>, then this operation creates a digraph with vertices <code class="code">[1 .. Length(<var class="Arg">list</var>)]</code> and an edge from vertex <code class="code">i</code> to vertex <code class="code">j</code> if and only if <code class="code"><var class="Arg">func</var>(<var class="Arg">list</var>[i], <var class="Arg">list</var>[j])</code> returns <code class="keyw">true</code>.</p>

</dd>
<dt><strong class="Mark">for a group, a list, and two functions</strong></dt>
<dd><p>The arguments will be <var class="Arg">G, list, act, adj</var>.</p>

<p>Let <var class="Arg">G</var> be a group acting on the objects in <var class="Arg">list</var> via the action <var class="Arg">act</var>, and let <var class="Arg">adj</var> be a function taking two objects from <var class="Arg">list</var> as arguments and returning <code class="code">true</code> or <code class="code">false</code>. The function <var class="Arg">adj</var> will describe the adjacency between objects from <var class="Arg">list</var>, which is invariant under the action of <var class="Arg">G</var>. This variant of the constructor returns a digraph with vertices the objects of <var class="Arg">list</var> and directed edges <code class="code">[x, y]</code> when <code class="code">f(x, y)</code> is <code class="code">true</code>.</p>

<p>The action of the group <var class="Arg">G</var> on the objects in <var class="Arg">list</var> is stored in the attribute <code class="func">DigraphGroup</code> (<a href="chap7_mj.html#X803ACEDA7BBAC5B3"><span class="RefLink">7.2-10</span></a>), and is used to speed up operations like <code class="func">DigraphDiameter</code> (<a href="chap5_mj.html#X7F16B9EB8398459C"><span class="RefLink">5.4-1</span></a>).</p>

</dd>
<dt><strong class="Mark">for a Grape package graph</strong></dt>
<dd><p>if <var class="Arg">obj</var> is a <span class="URL"><a href="https://gap-packages.github.io/grape">GRAPE</a></span> package graph (i.e. a record for which the function <code class="code">IsGraph</code> returns <code class="keyw">true</code>), then this function returns a digraph isomorphic to <var class="Arg">obj</var>.</p>

</dd>
<dt><strong class="Mark">for a binary relation</strong></dt>
<dd><p>if <var class="Arg">obj</var> is a binary relation on the points <code class="code">[1 .. n]</code> for some positive integer <span class="SimpleMath">\(n\)</span>, then this function returns the digraph defined by <var class="Arg">obj</var>. Specifically, this function returns a digraph which has <span class="SimpleMath">\(n\)</span> vertices, and which has an edge with source <code class="code">i</code> and range <code class="code">j</code> if and only if <code class="code">[i,j]</code> is a pair in the binary relation <var class="Arg">obj</var>.</p>

</dd>
<dt><strong class="Mark">for a string naming a digraph</strong></dt>
<dd><p>if <var class="Arg">obj</var> is a non-empty string, then this function returns the digraph that has name <var class="Arg">obj</var>. <strong class="pkg">Digraphs</strong> comes with a database containing a few hundred common digraph names that can be loaded in this way. Valid names include <code class="code">"folkman"</code>, <code class="code">"diamond"</code> and <code class="code">"brinkmann"</code>. If the name is commonly followed by the word <code class="code">"graph"</code>, then it is called without writing <code class="code">"graph"</code> at the end. You can explore the available graph names using <code class="func">ListNamedDigraphs</code> (<a href="chap3_mj.html#X7BB820C9813F035F"><span class="RefLink">3.1-13</span></a>). Digraph names are case and whitespace insensitive.</p>

<p>Note that any undirected graphs in the database are stored as symmetric digraphs, so the resulting digraph will have twice as many edges as its undirected counterpart.</p>

</dd>
</dl>

<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">gr := Digraph([</span>
<span class="GAPprompt">></span> <span class="GAPinput">[2, 5, 8, 10], [2, 3, 4, 2, 5, 6, 8, 9, 10], [1],</span>
<span class="GAPprompt">></span> <span class="GAPinput">[3, 5, 7, 8, 10], [2, 5, 7], [3, 6, 7, 9, 10], [1, 4],</span>
<span class="GAPprompt">></span> <span class="GAPinput">[1, 5, 9], [1, 2, 7, 8], [3, 5]]);</span>
<immutable multidigraph with 10 vertices, 38 edges>
<span class="GAPprompt">gap></span> <span class="GAPinput">gr := Digraph(["a""b""c"], ["a"], ["b"]);</span>
<immutable digraph with 3 vertices, 1 edge>
<span class="GAPprompt">gap></span> <span class="GAPinput">gr := Digraph(5, [1, 2, 2, 4, 1, 1], [2, 3, 5, 5, 1, 1]);</span>
<immutable multidigraph with 5 vertices, 6 edges>
<span class="GAPprompt">gap></span> <span class="GAPinput">Petersen := Graph(SymmetricGroup(5), [[1, 2]], OnSets,</span>
<span class="GAPprompt">></span> <span class="GAPinput">function(x, y) return Intersection(x, y) = []; end);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Digraph(Petersen);</span>
<immutable digraph with 10 vertices, 30 edges>
<span class="GAPprompt">gap></span> <span class="GAPinput">gr := Digraph([1 .. 10], ReturnTrue);</span>
<immutable digraph with 10 vertices, 100 edges>
<span class="GAPprompt">gap></span> <span class="GAPinput">Digraph("Diamond");</span>
<immutable digraph with 4 vertices, 10 edges></pre></div>

<p>The next example illustrates the uses of the fourth and fifth variants of this constructor. The resulting digraph is a strongly regular graph, and it is actually the point graph of the van Lint-Schrijver partial geometry, <a href="chapBib_mj.html#biBvLS81">[vLS81]</a>. The algebraic description is taken from the seminal paper of Calderbank and Kantor <a href="chapBib_mj.html#biBCK86">[CK86]</a>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">f := GF(3 ^ 4);</span>
GF(3^4)
<span class="GAPprompt">gap></span> <span class="GAPinput">gamma := First(f, x -> Order(x) = 5);</span>
Z(3^4)^64
<span class="GAPprompt">gap></span> <span class="GAPinput">L := Union([Zero(f)], List(Group(gamma)));</span>
[ 0*Z(3), Z(3)^0, Z(3^4)^16, Z(3^4)^32, Z(3^4)^48, Z(3^4)^64 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">omega := Union(List(L, x -> List(Difference(L, [x]), y -> x - y)));</span>
[ Z(3)^0, Z(3), Z(3^4)^5, Z(3^4)^7, Z(3^4)^8, Z(3^4)^13, Z(3^4)^15, 
  Z(3^4)^16, Z(3^4)^21, Z(3^4)^23, Z(3^4)^24, Z(3^4)^29, Z(3^4)^31, 
  Z(3^4)^32, Z(3^4)^37, Z(3^4)^39, Z(3^4)^45, Z(3^4)^47, Z(3^4)^48, 
  Z(3^4)^53, Z(3^4)^55, Z(3^4)^56, Z(3^4)^61, Z(3^4)^63, Z(3^4)^64, 
  Z(3^4)^69, Z(3^4)^71, Z(3^4)^72, Z(3^4)^77, Z(3^4)^79 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">adj := function(x, y)</span>
<span class="GAPprompt">></span> <span class="GAPinput">  return x - y in omega;</span>
<span class="GAPprompt">></span> <span class="GAPinput">end;</span>
function( x, y ) ... end
<span class="GAPprompt">gap></span> <span class="GAPinput">digraph := Digraph(AsList(f), adj);</span>
<immutable digraph with 81 vertices, 2430 edges>
<span class="GAPprompt">gap></span> <span class="GAPinput">group := Group(Z(3));;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">act := \*;</span>
<Operation "*">
<span class="GAPprompt">gap></span> <span class="GAPinput">digraph := Digraph(group, List(f), act, adj);</span>
<immutable digraph with 81 vertices, 2430 edges>
</pre></div>

<p><a id="X8023FE387A3AB609" name="X8023FE387A3AB609"></a></p>

<h5>3.1-8 DigraphByAdjacencyMatrix</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ DigraphByAdjacencyMatrix</code>( [<var class="Arg">filt</var>, ]<var class="Arg">list</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: A digraph.</p>

<p>If the optional first argument <var class="Arg">filt</var> is present, then this should specify the category or representation the digraph being created will belong to. For example, if <var class="Arg">filt</var> is <code class="func">IsMutableDigraph</code> (<a href="chap3_mj.html#X7D7EDF83820ED6F5"><span class="RefLink">3.1-2</span></a>), then the digraph being created will be mutable, if <var class="Arg">filt</var> is <code class="func">IsImmutableDigraph</code> (<a href="chap3_mj.html#X7CAFAA89804F80BD"><span class="RefLink">3.1-3</span></a>), then the digraph will be immutable. If the optional first argument <var class="Arg">filt</var> is not present, then <code class="func">IsImmutableDigraph</code> (<a href="chap3_mj.html#X7CAFAA89804F80BD"><span class="RefLink">3.1-3</span></a>) is used by default.</p>

<p>If <var class="Arg">list</var> is the adjacency matrix of a digraph in the sense of <code class="func">AdjacencyMatrix</code> (<a href="chap5_mj.html#X7DC2CD70830BEE60"><span class="RefLink">5.2-1</span></a>), then this operation returns the digraph which is defined by <var class="Arg">list</var>.</p>

<p>Alternatively, if <var class="Arg">list</var> is a square boolean matrix, then this operation returns the digraph with <code class="code">Length(</code><var class="Arg">list</var><code class="code">)</code> vertices which has the edge <code class="code">[i,j]</code> if and only if <var class="Arg">list</var><code class="code">[i][j]</code> is <code class="keyw">true</code>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">DigraphByAdjacencyMatrix([</span>
<span class="GAPprompt">></span> <span class="GAPinput">[0, 1, 0, 2, 0],</span>
<span class="GAPprompt">></span> <span class="GAPinput">[1, 1, 1, 0, 1],</span>
<span class="GAPprompt">></span> <span class="GAPinput">[0, 3, 2, 1, 1],</span>
<span class="GAPprompt">></span> <span class="GAPinput">[0, 0, 1, 0, 1],</span>
<span class="GAPprompt">></span> <span class="GAPinput">[2, 0, 0, 0, 0]]);</span>
<immutable multidigraph with 5 vertices, 18 edges>
<span class="GAPprompt">gap></span> <span class="GAPinput">D := DigraphByAdjacencyMatrix([</span>
<span class="GAPprompt">></span> <span class="GAPinput">[true, false, true],</span>
<span class="GAPprompt">></span> <span class="GAPinput">[false, false, true],</span>
<span class="GAPprompt">></span> <span class="GAPinput">[false, true, false]]);</span>
<immutable digraph with 3 vertices, 4 edges>
<span class="GAPprompt">gap></span> <span class="GAPinput">OutNeighbours(D);</span>
[ [ 1, 3 ], [ 3 ], [ 2 ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">D := DigraphByAdjacencyMatrix(IsMutableDigraph, </span>
<span class="GAPprompt">></span> <span class="GAPinput">[[true, false, true],</span>
<span class="GAPprompt">></span> <span class="GAPinput"> [false, false, true],</span>
<span class="GAPprompt">></span> <span class="GAPinput"> [false, true, false]]);</span>
<mutable digraph with 3 vertices, 4 edges>
</pre></div>

<p><a id="X7F37B6768349E269" name="X7F37B6768349E269"></a></p>

<h5>3.1-9 DigraphByEdges</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ DigraphByEdges</code>( [<var class="Arg">filt</var>, ]<var class="Arg">list</var>[, <var class="Arg">n</var>] )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: A digraph.</p>

<p>If the optional first argument <var class="Arg">filt</var> is present, then this should specify the category or representation the digraph being created will belong to. For example, if <var class="Arg">filt</var> is <code class="func">IsMutableDigraph</code> (<a href="chap3_mj.html#X7D7EDF83820ED6F5"><span class="RefLink">3.1-2</span></a>), then the digraph being created will be mutable, if <var class="Arg">filt</var> is <code class="func">IsImmutableDigraph</code> (<a href="chap3_mj.html#X7CAFAA89804F80BD"><span class="RefLink">3.1-3</span></a>), then the digraph will be immutable. If the optional first argument <var class="Arg">filt</var> is not present, then <code class="func">IsImmutableDigraph</code> (<a href="chap3_mj.html#X7CAFAA89804F80BD"><span class="RefLink">3.1-3</span></a>) is used by default.</p>

<p>If <var class="Arg">list</var> is list of pairs of positive integers, then this function returns the digraph with the minimum number of vertices <code class="code">m</code> such that its list equal <var class="Arg">list</var>.</p>

<p>If the optional second argument <var class="Arg">n</var> is a positive integer with <code class="code"><var class="Arg">n</var> >= m</code> (with <code class="code">m</code> defined as above), then this function returns the digraph with <var class="Arg">n</var> vertices and list <var class="Arg">list</var>.</p>

<p>See <code class="func">DigraphEdges</code> (<a href="chap5_mj.html#X7D1C6A4D7ECEC317"><span class="RefLink">5.1-3</span></a>).</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">DigraphByEdges(</span>
<span class="GAPprompt">></span> <span class="GAPinput">[[1, 3], [2, 1], [2, 3], [2, 5], [3, 6],</span>
<span class="GAPprompt">></span> <span class="GAPinput"> [4, 6], [5, 2], [5, 4], [5, 6], [6, 6]]);</span>
<immutable digraph with 6 vertices, 10 edges>
<span class="GAPprompt">gap></span> <span class="GAPinput">DigraphByEdges(</span>
<span class="GAPprompt">></span> <span class="GAPinput">[[1, 3], [2, 1], [2, 3], [2, 5], [3, 6],</span>
<span class="GAPprompt">></span> <span class="GAPinput"> [4, 6], [5, 2], [5, 4], [5, 6], [6, 6]], 12);</span>
<immutable digraph with 12 vertices, 10 edges>
<span class="GAPprompt">gap></span> <span class="GAPinput">DigraphByEdges(IsMutableDigraph, </span>
<span class="GAPprompt">></span> <span class="GAPinput">[[1, 3], [2, 1], [2, 3], [2, 5], [3, 6],</span>
<span class="GAPprompt">></span> <span class="GAPinput"> [4, 6], [5, 2], [5, 4], [5, 6], [6, 6]], 12);</span>
<mutable digraph with 12 vertices, 10 edges>
</pre></div>

<p><a id="X7B75C1D680757D6F" name="X7B75C1D680757D6F"></a></p>

<h5>3.1-10 EdgeOrbitsDigraph</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ EdgeOrbitsDigraph</code>( <var class="Arg">G</var>, <var class="Arg">edges</var>[, <var class="Arg">n</var>] )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: An immutable digraph.</p>

<p>If <var class="Arg">G</var> is a permutation group, <var class="Arg">edges</var> is an edge or list of edges, and <var class="Arg">n</var> is a non-negative integer such that <var class="Arg">G</var> fixes <code class="code">[1 .. <var class="Arg">n</var>]</code> setwise, then this operation returns an immutable digraph with <var class="Arg">n</var> vertices and the union of the orbits of the edges in <var class="Arg"> edges </var> under the action of the permutation group <var class="Arg">G</var>. An edge in this context is simply a pair of positive integers.</p>

<p>If the optional third argument <var class="Arg">n</var> is not present, then the largest moved point of the permutation group <var class="Arg">G</var> is used by default.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">digraph := EdgeOrbitsDigraph(Group((1, 3), (1, 2)(3, 4)),</span>
<span class="GAPprompt">></span> <span class="GAPinput">                                [[1, 2], [4, 5]], 5);</span>
<immutable digraph with 5 vertices, 12 edges>
<span class="GAPprompt">gap></span> <span class="GAPinput">OutNeighbours(digraph);</span>
[ [ 2, 4, 5 ], [ 1, 3, 5 ], [ 2, 4, 5 ], [ 1, 3, 5 ], [  ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">RepresentativeOutNeighbours(digraph);</span>
[ [ 2, 4, 5 ], [  ] ]
</pre></div>

<p><a id="X81BC49B57EAADEFB" name="X81BC49B57EAADEFB"></a></p>

<h5>3.1-11 DigraphByInNeighbours</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ DigraphByInNeighbours</code>( [<var class="Arg">filt</var>, ]<var class="Arg">list</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ DigraphByInNeighbors</code>( [<var class="Arg">filt</var>, ]<var class="Arg">list</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: A digraph.</p>

<p>If the optional first argument <var class="Arg">filt</var> is present, then this should specify the category or representation the digraph being created will belong to. For example, if <var class="Arg">filt</var> is <code class="func">IsMutableDigraph</code> (<a href="chap3_mj.html#X7D7EDF83820ED6F5"><span class="RefLink">3.1-2</span></a>), then the digraph being created will be mutable, if <var class="Arg">filt</var> is <code class="func">IsImmutableDigraph</code> (<a href="chap3_mj.html#X7CAFAA89804F80BD"><span class="RefLink">3.1-3</span></a>), then the digraph will be immutable. If the optional first argument <var class="Arg">filt</var> is not present, then <code class="func">IsImmutableDigraph</code> (<a href="chap3_mj.html#X7CAFAA89804F80BD"><span class="RefLink">3.1-3</span></a>) is used by default.</p>

<p>If <var class="Arg">list</var> is a list of lists of positive integers list the range <code class="code">[1 .. Length(<var class="Arg">list</var>)]</code>, then this function returns the digraph with vertices <span class="SimpleMath">\(E^0=\)</span><code class="code">[1 .. Length(<var class="Arg">list</var>)]</code>, and edges corresponding to the entries of <var class="Arg">list</var>. More precisely, there is an edge with source vertex <code class="code">i</code> and range vertex <code class="code">j</code> if <code class="code">i</code> is in the list <code class="code"><var class="Arg">list</var>[j]</code>.</p>

<p>If <code class="code">i</code> occurs in the list <code class="code"><var class="Arg">list</var>[j]</code> with multiplicity <code class="code">k</code>, then there are <code class="code">k</code> multiple edges from <code class="code">i</code> to <code class="code">j</code>.</p>

<p>See <code class="func">InNeighbours</code> (<a href="chap5_mj.html#X85C7AA5A81DA6E11"><span class="RefLink">5.2-7</span></a>).</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">D := DigraphByInNeighbours([</span>
<span class="GAPprompt">></span> <span class="GAPinput">[2, 5, 8, 10], [2, 3, 4, 5, 6, 8, 9, 10],</span>
<span class="GAPprompt">></span> <span class="GAPinput">[1], [3, 5, 7, 8, 10], [2, 5, 7], [3, 6, 7, 9, 10], [1, 4],</span>
<span class="GAPprompt">></span> <span class="GAPinput">[1, 5, 9], [1, 2, 7, 8], [3, 5]]);</span>
<immutable digraph with 10 vertices, 37 edges>
<span class="GAPprompt">gap></span> <span class="GAPinput">D := DigraphByInNeighbours([[2, 3, 2], [1], [1, 2, 3]]);</span>
<immutable multidigraph with 3 vertices, 7 edges>
<span class="GAPprompt">gap></span> <span class="GAPinput">D := DigraphByInNeighbours(IsMutableDigraph, </span>
<span class="GAPprompt">></span> <span class="GAPinput">                              [[2, 3, 2], [1], [1, 2, 3]]);</span>
<mutable multidigraph with 3 vertices, 7 edges>
</pre></div>

<p><a id="X7FCADADC7EC28478" name="X7FCADADC7EC28478"></a></p>

<h5>3.1-12 CayleyDigraph</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ CayleyDigraph</code>( [<var class="Arg">filt</var>, ]<var class="Arg">G</var>[, <var class="Arg">gens</var>] )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: A digraph.</p>

<p>Let <var class="Arg">G</var> be any group and let <var class="Arg">gens</var> be a list of elements of <var class="Arg">G</var>. This operation returns a digraph that corresponds to the Cayley graph of <var class="Arg">G</var> with respect to <var class="Arg">gens</var>.</p>

<p>The vertices of the digraph correspond to the elements of <var class="Arg">G</var>, in the order given by <code class="code">Set(<var class="Arg">G</var>)</code>. There exists an edge from vertex <code class="code">u</code> to vertex <code class="code">v</code> if and only if there exists a generator <code class="code">g</code> in <var class="Arg">gens</var> such that <code class="code">Set(<var class="Arg">G</var>)[u] * g = Set(<var class="Arg">G</var>)[v]</code>.</p>

<p>The labels of the vertices <code class="code">u</code>, <code class="code">v</code>, and the edge <code class="code">[u, v]</code> are the corresponding elements <code class="code">AsList(<var class="Arg">G</var>)[u]</code>, <code class="code">AsList(<var class="Arg">G</var>)[v]</code>, and generator <code class="code">g</code>, respectively; see <code class="func">DigraphVertexLabel</code> (<a href="chap5_mj.html#X7CA91E4B7904F793"><span class="RefLink">5.1-11</span></a>) and <code class="func">DigraphEdgeLabel</code> (<a href="chap5_mj.html#X79FAEACC7F438C2F"><span class="RefLink">5.1-13</span></a>).</p>

<p>If the optional first argument <var class="Arg">filt</var> is present, then this should specify the category or representation the digraph being created will belong to. For example, if <var class="Arg">filt</var> is <code class="func">IsMutableDigraph</code> (<a href="chap3_mj.html#X7D7EDF83820ED6F5"><span class="RefLink">3.1-2</span></a>), then the digraph being created will be mutable, if <var class="Arg">filt</var> is <code class="func">IsImmutableDigraph</code> (<a href="chap3_mj.html#X7CAFAA89804F80BD"><span class="RefLink">3.1-3</span></a>), then the digraph will be immutable. If the optional first argument <var class="Arg">filt</var> is not present, then <code class="func">IsImmutableDigraph</code> (<a href="chap3_mj.html#X7CAFAA89804F80BD"><span class="RefLink">3.1-3</span></a>) is used by default.</p>

<p>If the optional third argument <var class="Arg">gens</var> is not present, then the generators of <var class="Arg">G</var> are used by default.</p>

<p>The digraph created by this operation belongs to the category <code class="func">IsCayleyDigraph</code> (<a href="chap3_mj.html#X7E749324800B38A5"><span class="RefLink">3.1-4</span></a>), the group <var class="Arg">G</var> can be recovered from the digraph using <code class="func">GroupOfCayleyDigraph</code> (<a href="chap5_mj.html#X7A000B1D7CCF7093"><span class="RefLink">5.5-1</span></a>), and the generators <var class="Arg">gens</var> can be obtained using <code class="func">GeneratorsOfCayleyDigraph</code> (<a href="chap5_mj.html#X8528455987D7D2BF"><span class="RefLink">5.5-2</span></a>).</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">G := DihedralGroup(8);</span>
<pc group of size 8 with 3 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">CayleyDigraph(G);</span>
<immutable digraph with 8 vertices, 24 edges>
<span class="GAPprompt">gap></span> <span class="GAPinput">G := DihedralGroup(IsPermGroup, 8);</span>
Group([ (1,2,3,4), (2,4) ])
<span class="GAPprompt">gap></span> <span class="GAPinput">CayleyDigraph(G);</span>
<immutable digraph with 8 vertices, 16 edges>
<span class="GAPprompt">gap></span> <span class="GAPinput">digraph := CayleyDigraph(G, [()]);</span>
<immutable digraph with 8 vertices, 8 edges>
<span class="GAPprompt">gap></span> <span class="GAPinput">GroupOfCayleyDigraph(digraph) = G;</span>
true
<span class="GAPprompt">gap></span> <span class="GAPinput">GeneratorsOfCayleyDigraph(digraph);</span>
[ () ]
<span class="GAPprompt">gap></span> <span class="GAPinput">digraph := CayleyDigraph(IsMutable, G, [()]);</span>
<mutable digraph with 8 vertices, 8 edges>
</pre></div>

<p><a id="X7BB820C9813F035F" name="X7BB820C9813F035F"></a></p>

<h5>3.1-13 ListNamedDigraphs</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ ListNamedDigraphs</code>( <var class="Arg">s</var>[, <var class="Arg">level</var>] )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: A list of strings representing digraph names.</p>

<p>This function searches through the list of names that are currently in the <strong class="pkg">Digraphs</strong> database of named digraphs. The first argument <var class="Arg">s</var> should be a partially completed string; this function returns all completions <code class="code">str</code> of the string <var class="Arg">s</var> such that <code class="code">Digraph(str)</code> will successfully return a digraph.</p>

<p>The optional second argument <var class="Arg">level</var> controls the flexibility of the search. If <code class="code"><var class="Arg">level</var> = 1</code>, then only strings beginning exactly with <var class="Arg">s</var> are returned. If <code class="code"><var class="Arg">level</var> = 2</code>, then all names containing <var class="Arg">s</var> as a substring are returned. If <code class="code"><var class="Arg">level</var> = 3</code>, then once again a substring search is carried out, but characters that are not alphanumeric are ignored in the search.</p>

<p>If <var class="Arg">level</var> is not specified, it is set by default to equal 2.</p>

<p>The search is always case and whitespace insensitive, and this is also the case when applying <code class="func">Digraph</code> (<a href="chap3_mj.html#X834843057CE86655"><span class="RefLink">3.1-7</span></a>) to a string.</p>

<p><a id="X83608C407CC8836D" name="X83608C407CC8836D"></a></p>

<h4>3.2 <span class="Heading">Changing representations</span></h4>

<p><a id="X7FBC4BDB82FBEDD2" name="X7FBC4BDB82FBEDD2"></a></p>

<h5>3.2-1 AsBinaryRelation</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ AsBinaryRelation</code>( <var class="Arg">digraph</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: A binary relation.</p>

<p>If <var class="Arg">digraph</var> is a digraph with a positive number of vertices <span class="SimpleMath">\(n\)</span>, and no multiple edges, then this operation returns a binary relation on the points <code class="code">[1..n]</code>. The pair <code class="code">[i,j]</code> is in the binary relation if and only if <code class="code">[i,j]</code> is an edge in <var class="Arg">digraph</var>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">D := Digraph([[3, 2], [1, 2], [2], [3, 4]]);</span>
<immutable digraph with 4 vertices, 7 edges>
<span class="GAPprompt">gap></span> <span class="GAPinput">AsBinaryRelation(D);</span>
Binary Relation on 4 points
</pre></div>

<p><a id="X86834E307EACC670" name="X86834E307EACC670"></a></p>

<h5>3.2-2 AsDigraph</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ AsDigraph</code>( [<var class="Arg">filt</var>, ]<var class="Arg">f</var>[, <var class="Arg">n</var>] )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: A digraph, or <code class="keyw">fail</code>.</p>

<p>If <var class="Arg">f</var> is a binary relation represented as one of the following in <strong class="pkg">GAP</strong>:</p>


<dl>
<dt><strong class="Mark">
          a transformation
        </strong></dt>
<dd><p>satisfying <code class="func">IsTransformation</code> (<a href="/home/runner/gap/doc/ref/chap53_mj.html#X7B6259467974FB70"><span class="RefLink">Reference: IsTransformation</span></a>);</p>

</dd>
<dt><strong class="Mark">
          a permutation
        </strong></dt>
<dd><p>satisfying <code class="func">IsPerm</code> (<a href="/home/runner/gap/doc/ref/chap42_mj.html#X7AA69C6686FC49EA"><span class="RefLink">Reference: IsPerm</span></a>);</p>

</dd>
<dt><strong class="Mark">
          a partial perm
        </strong></dt>
<dd><p>satisfying <code class="func">IsPartialPerm</code> (<a href="/home/runner/gap/doc/ref/chap54_mj.html#X7EECE133792B30FC"><span class="RefLink">Reference: IsPartialPerm</span></a>);</p>

</dd>
<dt><strong class="Mark">
          a binary relation
        </strong></dt>
<dd><p>satisfying <code class="func">IsBinaryRelation</code> (<a href="/home/runner/gap/doc/ref/chap33_mj.html#X788D722F82165551"><span class="RefLink">Reference: IsBinaryRelation</span></a>);</p>

</dd>
</dl>
<p>and <var class="Arg">n</var> is a non-negative integer, then <code class="code">AsDigraph</codeattempts to construct a digraph with <var class="Arg">n</var> vertices whose edges are determined by <var class="Arg">f</var>.</p>

<p>The digraph returned by <code class="code">AsDigraph</code> has for each vertex <code class="code">v</code> in <code class="code">[1 .. <var class="Arg">n</var>]</code>, an edge with source <code class="code">v</code> and range <code class="code">v ^ <var class="Arg">f</var></code>. If <code class="code">v ^ <var class="Arg">f</var></code> is greater than <var class="Arg">n</var> for any <code class="code">v</code>, then <code class="keyw">fail</code> is returned.</p>

<p>If the optional second argument <var class="Arg">n</var> is not supplied, then the degree of the transformation <var class="Arg">f</var>, the largest moved point of the permutation <var class="Arg">f</var>, the maximum of the degree and the codegree of the partial perm <var class="Arg">f</var>, or as applicable, is used by default.</p>

<p>If the optional first argument <var class="Arg">filt</var> is present, then this should specify the category or representation the digraph being created will belong to. For example, if <var class="Arg">filt</var> is <code class="func">IsMutableDigraph</code> (<a href="chap3_mj.html#X7D7EDF83820ED6F5"><span class="RefLink">3.1-2</span></a>), then the digraph being created will be mutable, if <var class="Arg">filt</var> is <code class="func">IsImmutableDigraph</code> (<a href="chap3_mj.html#X7CAFAA89804F80BD"><span class="RefLink">3.1-3</span></a>), then the digraph will be immutable. If the optional first argument <var class="Arg">filt</var> is not present, then <code class="func">IsImmutableDigraph</code> (<a href="chap3_mj.html#X7CAFAA89804F80BD"><span class="RefLink">3.1-3</span></a>) is used by default.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">f := Transformation([4, 3, 3, 1, 7, 9, 10, 4, 2, 3]);</span>
Transformation( [ 4, 3, 3, 1, 7, 9, 10, 4, 2, 3 ] )
<span class="GAPprompt">gap></span> <span class="GAPinput">AsDigraph(f);</span>
<immutable functional digraph with 10 vertices>
<span class="GAPprompt">gap></span> <span class="GAPinput">AsDigraph(f, 4);</span>
<immutable functional digraph with 4 vertices>
<span class="GAPprompt">gap></span> <span class="GAPinput">AsDigraph(f, 5);</span>
fail
<span class="GAPprompt">gap></span> <span class="GAPinput">AsDigraph((1, 2, 3, 4)) = CycleDigraph(4);</span>
true
<span class="GAPprompt">gap></span> <span class="GAPinput">D := AsDigraph(IsMutableDigraph, (1, 3)(2, 4), 5);</span>
<mutable digraph with 5 vertices, 5 edges>
<span class="GAPprompt">gap></span> <span class="GAPinput">DigraphEdges(D);</span>
[ [ 1, 3 ], [ 2, 4 ], [ 3, 1 ], [ 4, 2 ], [ 5, 5 ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">b := BinaryRelationOnPoints(</span>
<span class="GAPprompt">></span> <span class="GAPinput">[[3], [1, 3, 5], [1], [1, 2, 4], [2, 3, 5]]);</span>
Binary Relation on 5 points
<span class="GAPprompt">gap></span> <span class="GAPinput">D := AsDigraph(b);</span>
<immutable digraph with 5 vertices, 11 edges>
</pre></div>

<p><a id="X7B335342839E5146" name="X7B335342839E5146"></a></p>

<h5>3.2-3 Graph</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Graph</code>( <var class="Arg">digraph</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: A <span class="URL"><a href="https://gap-packages.github.io/grape">GRAPE</a></span> package graph.</p>

<p>If <var class="Arg">digraph</var> is a mutable or immutable digraph without multiple edges, then this operation returns a <span class="URL"><a href="https://gap-packages.github.io/grape">GRAPE</a></span> package graph that is isomorphic to <var class="Arg">digraph</var>.</p>

<p>If <var class="Arg">digraph</var> is a multidigraph, then since <span class="URL"><a href="https://gap-packages.github.io/grape">GRAPE</a></span> does not support multiple edges, the multiple edges will be reduced to a single edge in the result. In order words, for a multidigraph this operation will return the same as <code class="code">Graph(DigraphRemoveAllMultipleEdges(</code><var class="Arg">digraph</var><code class="code">))</code>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">Petersen := Graph(SymmetricGroup(5), [[1, 2]], OnSets,</span>
<span class="GAPprompt">></span> <span class="GAPinput">function(x, y) return Intersection(x, y) = []; end);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Display(Petersen);</span>
rec(
  adjacencies := [ [ 3, 5, 8 ] ],
  group := 
   Group( [ ( 1, 2, 3, 5, 7)( 4, 6, 8, 9,10), ( 2, 4)( 6, 9)( 7,10) 
     ] ),
  isGraph := true,
  names := [ [ 1, 2 ], [ 2, 3 ], [ 3, 4 ], [ 1, 3 ], [ 4, 5 ], 
      [ 2, 4 ], [ 1, 5 ], [ 3, 5 ], [ 1, 4 ], [ 2, 5 ] ],
  order := 10,
  representatives := [ 1 ],
  schreierVector := [ -1, 1, 1, 2, 1, 1, 1, 1, 2, 2 ] )
<span class="GAPprompt">gap></span> <span class="GAPinput">Digraph(Petersen);</span>
<immutable digraph with 10 vertices, 30 edges>
<span class="GAPprompt">gap></span> <span class="GAPinput">Graph(last) = Petersen;</span>
true</pre></div>

<p><a id="X7C4F13E080EC16B0" name="X7C4F13E080EC16B0"></a></p>

<h5>3.2-4 AsGraph</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ AsGraph</code>( <var class="Arg">digraph</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
--> --------------------

--> maximum size reached

--> --------------------

100%


¤ Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.0.94Bemerkung:  (vorverarbeitet)  ¤

*Bot Zugriff






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung ist noch experimentell.