53 lines
3.6 KiB
PHP
53 lines
3.6 KiB
PHP
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
|
<html>
|
|
<head>
|
|
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
|
|
<link rel="stylesheet" type="text/css" media="all" href="stylesheet.css">
|
|
<title>Graphentheorie: Begriffe</title>
|
|
</head>
|
|
<body>
|
|
<span id="menu"><a href="index.php">zurück zur Liste</a></span>
|
|
|
|
<div id="buttons">
|
|
<form action="edit.php" method="POST">
|
|
<input type="hidden" name="filename" value="<?php echo $_SERVER['SCRIPT_FILENAME']?>">
|
|
<p>
|
|
<input type="submit" value="Seite bearbeiten">
|
|
</p>
|
|
</form>
|
|
</div>
|
|
|
|
<h1>Wichtige Begriffe der Graphentheorie</h1>
|
|
|
|
<h3>Aufspannende Bäume</h3>
|
|
Ein spannender bzw. aufspannender Baum ist ein Teilgraph eines ungerichteten Graphen, der ein Baum ist und alle seine Knoten enthält. Spannende Bäume existieren somit nur in zusammenhängenden Graphen.<br>
|
|
In kantengewichteten Graphen lässt sich als Gewicht eines spannenden Graphen die Summe seiner Kantengewichte definieren. Minimal spannende Bäume lassen sich mit <a href="greedy.php">Kruskal oder Prim</a> bestimmen.
|
|
|
|
<h3>Kürzeste Wege</h3>
|
|
In einem kantengewichteten Graphen lässt sich der kürzeste Weg durch den <a href="greedy.php">Algorithmus von Dijkstra</a> bestimmen.
|
|
|
|
<h3>Wälder</h3>
|
|
Ein Wald ist ein Graph, der aus einer Menge von Bäumen besteht, d.h. er ist nicht zusammenhängend und es gibt keine Kreise.
|
|
|
|
<h3>Mehrwegebäume</h3>
|
|
Ein Mehrwegebaum hat mehrere Elemente in einem Knoten gespeichert. <a href="baeume.php">B-Bäume</a> sind Mehrwegebäume.
|
|
|
|
<h3>Konvexe Hülle</h3>
|
|
Gegeben ist eine Menge von Punkten in R<sup>2</sup>. Die konvexe Hülle ist der Graph, der sich bildet, wenn man ein Gummiband um alle Punkte legen und straff ziehn würde.<br>
|
|
Man teilt in untere und obere konvexe Hülle auf.<br><br>
|
|
|
|
<b>Berechnung der unteren konvexen Hülle:</b><br>
|
|
Zunächst werden alle Punkte aufsteigend nach ihrem x-Wert geordnet. Haben mehrere Punkte den gleichen x-Wert, so nimmt man für die untere konvexe Hülle den untersten Punkt, also dem mit dem kleinsten y-Wert, und den obersten Punkt für die obere konvexe Hülle.<br>
|
|
Nun verbindet man die geordneten Punkte Q<sub>1</sub>, Q<sub>2</sub>, ... , Q<sub>n</sub> nacheinander. Bildet sich eine Einbuchtung nach innen, werden die inneren Punkte aus der konvexen Hülle entfernt.<br><br>
|
|
|
|
<img src="konvexehuelle.gif"><br>
|
|
Wir nehmen einen Stack zur Hilfe.<br>
|
|
Q<sub>1</sub> und Q<sub>2</sub> werden in den Stack geschoben. Mit Q<sub>3</sub> bildet sich eine Ecke nach unten. Q<sub>3</sub> kommt also in den Stack. Q<sub>2</sub>, Q<sub>3</sub> und Q<sub>4</sub> bilden auch eine Ecke nach unten. Also kommt Q<sub>4</sub> auch in den Stack. Bei Q<sub>5</sub>, Q<sub>6</sub> und Q<sub>7</sub> genauso.<br>
|
|
Jetzt sind Q<sub>1</sub>, Q<sub>2</sub>, ... , Q<sub>7</sub> im Stack. Nun kommt Q<sub>8</sub>. Q<sub>6</sub>, Q<sub>7</sub> und Q<sub>8</sub> bilden eine Ecke mit der Spitze nach oben. Deshalb wird Q<sub>7</sub> aus dem Stack gelöscht. Dasselbe gilt für Q<sub>6</sub> und Q<sub>5</sub>. Q<sub>3</sub>, Q<sub>4</sub> und Q<sub>8</sub> bilden wieder eine Ecke nach unten also kann Q<sub>8</sub> jetzt auf den Stack gelegt werden.<br>
|
|
Im Stack stehen die Punkte, die bis jetzt in der unteren konvexen Hülle enthalten sind: Q<sub>1</sub>, Q<sub>2</sub>, Q<sub>3</sub>, Q<sub>4</sub> und Q<sub>8</sub>.<br><br>
|
|
|
|
<b>Berechnung der oberen konvexen Hülle:</b><br>
|
|
Die obere konvexe Hülle wird im Prinzip genauso gestimmt. Man geht allerdings von rechts nach links und nimmt die Punkte deren Kanten in der konvexe Hülle nur Ecken mit der Spitze nach oben bilden.
|
|
|
|
</body>
|
|
</html> |