Das „Haus vom Nikolaus“ mit seinen 88 Möglichkeiten und seine Bedeutung in der Graphentheorie

Das „Haus vom Nikolaus„, ein einfaches geometrisches Muster aus fünf Linien, das die Form eines stilisierten Hauses darstellt, mag auf den ersten Blick wie eine unschuldige Kindermalerei wirken. Doch hinter diesem scheinbar simplen Muster verbirgt sich eine faszinierende Verbindung zur Graphentheorie, einem Teilgebiet der Mathematik, das sich mit den Eigenschaften und Beziehungen von Graphen beschäftigt. Dann mal los, und ein kleines Java Programm dazu.

Was ist das „Haus vom Nikolaus“? „Das „Haus vom Nikolaus“ mit seinen 88 Möglichkeiten und seine Bedeutung in der Graphentheorie“ weiterlesen

Königsberger Brückenproblem oder etwas Graphentheorie mit jgrapht in Java

Das Königsberger Brückenproblem ist eine klassische mathematische Herausforderung, die im 18. Jahrhundert entstand und einen wichtigen Einfluss auf die Entwicklung der Graphentheorie hatte. Es handelt sich um eine Fragestellung bezüglich der Überquerung von Brücken über den Flüssen Pregel und seinen Inseln in der Stadt Königsberg (heute Kaliningrad, Russland). Das Problem wurde erstmals von dem Schweizer Mathematiker Leonhard Euler im Jahr 1735 gelöst und legte den Grundstein für die moderne Graphentheorie.

In Königsberg gab es sieben Brücken, die die Flüsse Pregel und die beiden Inseln verbunden haben. Die Frage war, ob es möglich war, die Stadt zu durchqueren, indem man jede Brücke nur einmal überquerte und schließlich an einem beliebigen Punkt endete.

Euler bewies, dass es keine Möglichkeit gibt, das Königsberger Brückenproblem zu lösen. Er zeigte, dass mindestens zwei der vier Landpunkte eine ungerade Anzahl von Brücken haben müssten, um eine Lösung unmöglich zu machen. Dies führte zur Entwicklung der Graphentheorie, bei der das Problem als ein Graph dargestellt werden kann, wobei die Landpunkte die Knoten und die Brücken die Kanten des Graphen sind.

Da kommt nun die Implementierung mit JGraphT in Java ins Spiel. „Königsberger Brückenproblem oder etwas Graphentheorie mit jgrapht in Java“ weiterlesen

Alexa Echo Sprachausgabe via Raspberry Pi und openHAB 2

Wie kann man eine Sprachausgabe über Alexa Echo machen wenn die Tür aufgeht? Bei mir kommt z.B. eine Ansage von Alexa „Die Haustür ist geöffnet worden“ oder „Die Haustür wurde geschlossen„. Das läuft bei mir analog auch für die Fenster, alles mit Kontakten von Homematic und einem CUL im USB des Pi.

Wenn openHAB 2 läuft, braucht man nur eine Rules Datei: /etc/openhab2/rules/Alexa.rules mit folgenden Regeln kopieren: „Alexa Echo Sprachausgabe via Raspberry Pi und openHAB 2“ weiterlesen

Wie kann auf einem Raspberry Pi GraphViz 2.38.0 installiert und mit DOT zum erzeugen schöner Diagramme genutzt werden?

Warum den Raspberry Pi nicht für die Erstellung von schönen Grafiken mit GraphViz verwenden? Graphviz kann auf dem rPi schnell installiert werden mit:

sudo apt-get update && upgrade
sudo apt-get install graphviz

Nach der Installation die Version checken mit

dot -version

es werden auch einige weitere interessante Infos ausgegeben:

Mit Graphviz können aus DOT Dateien schönen Diagramme erzeugt werden. Mit DOT konzentriert man sich auf den Inhalt und Graphviz macht das Layout. DOT hat eine einfache (C ähnliche) Syntax. Hier erst einmal eine Mindmap zu DOT:
dot

Z.B. die Datei: „Wie kann auf einem Raspberry Pi GraphViz 2.38.0 installiert und mit DOT zum erzeugen schöner Diagramme genutzt werden?“ weiterlesen

Wie kann das Zest 2.0.0 Plugin (dot4zest) für Graphviz DOT unter Eclipse 4.4 Luna auf einem Mac OS X installiert werden?

Für Eclipse gibt es ein schönes Plugin (dot4zest) zum bearbeiten von DOT Dateien. Wie kann der DOT-Editor installiert werden?

Zuerst das Plugin über den Eclipse Marketplace installieren. Einfach nach zest suchen und das Graphviz DOT for Zest (dot4zest) 2.0.0 installieren:
zest plugin

Dann auf dem Mac, Graphviz installieren. Auf der Konsole mit:
sudo port install graphviz „Wie kann das Zest 2.0.0 Plugin (dot4zest) für Graphviz DOT unter Eclipse 4.4 Luna auf einem Mac OS X installiert werden?“ weiterlesen

Wie können die Beziehungen installierter Packages grafisch auf dem Raspberry Pi mit debtree erzeugt werden?

Die Abhängigkeiten der installierten Packages auf dem Raspberry Pi sind manchmal sehr umfangreich. Aber man kann diese Abhängigkeiten gut grafisch anzeigen bzw. ausgeben. Hier mal ein Beispiel vom Package openssl:

openssl
Und hier noch ein etwas umfangreicheres Beispiel, ich habe keine Mühe gescheut mit ssh
ssh
Wie kann so ein Diagramm erzeugt werden?
„Wie können die Beziehungen installierter Packages grafisch auf dem Raspberry Pi mit debtree erzeugt werden?“ weiterlesen

Wie kann auf einem Raspberry Pi Graphviz (2.26.3) installiert und mit DOT genutzt werden?

Warum den Raspberry Pi nicht für die Erstellung von schönen Grafiken verwenden?

Graphviz kann auf dem rPi schnell installiert werden mit:

sudo apt-get update && upgrade
sudo apt-get install graphviz

Nach der Installation die Version checken mit

dot -version

es werden auch einige weitere interessante Infos ausgegeben:
Bildschirmfoto 2014-07-27 um 16.17.15
Es ist zwar nicht die aktuellste Version, die ist derzeit 2.38 (vom 13. April 2014) aber es reicht für erste Versuche immer. Wer mehr will, muss die aktuellste Version aus den Source-Code erstellen.

Mit Graphviz können aus DOT Dateien schönen Diagramme erzeugt werden. Mit DOT konzentriert man sich auf den Inhalt und Graphviz macht das Layout. DOT hat eine einfache (C ähnliche) Syntax. Hier erst einmal eine Mindmap zu DOT:
dot

Z.B. die Datei:

digraph Diagramm {

node [fillcolor="#EEEEEE"]
node [style=bold]
edge [color="#31CEF0"]
DOT -> Beschreibungssprache
DOT -> Beispiel
DOT -> "Darstellung von Graphen"
DOT -> Interpretiert
DOT -> URLs -> Graphiz
URLs -> "DOT Language"
}

Kann mit folgenden Befehl

dot -T png -o test-dot-diagramm.png test-dot-diagramm.dot

dieses Diagramm erzeugen:

test-dot-diagramm

Oder die gleiche Datei mit einem anderen Renderer (fdp):

fdp -T png -o test-dot-diagramm.png test-dot-diagramm.dot

test-dot-fdp-diagramm

Der circo Renderer ist auch nicht schlecht. Dazu noch die Größenangabe
graph [size="10.3, 5.3"] ergänzen und erzeugen mit:

circo -T png -o test-dot-diagramm.png test-dot-diagramm.dot

Folgendes Diagramm wird erstellt:
test-dot-diagramm

Eine schöne Anleitung für weitere Nutzung in englisch.