-
CMatrix ist ein Java-Kommandozeilen-Programm um binäre Adjazenzmatrizen nach Entfernung zu gewichten
-
Installation/Ausführung
Zum Aufruf des Programmes muss eine Java-Laufzeitumgebung (JRE1)
auf dem Computer installiert sein. Der Programmaufruf erfolgt durch java -jar cmatrix.jar und eventuellen Flags
durch eine Kommandozeile (konsole, terminal, cmd...) direkt in dem Ordner, in dem sich das heruntergeladene
cmatrix.jar-Archiv befindet
-
Anwendungsbereiche
Als Eingabe sind quadratische Matrizen, bestehend aus 0en oder 1en, erlaubt, deren Werte durch
, ; | oder einem oder zwei Leerzeichen getrennt sind. Die einzelnen Zeilen müssen durch
Zeilenumbrüche dargestellt sein
-
In einer solchen Matrix ist sehr einfach zu sehen wie weit zwei Knoten auseinanderliegen.
In der momentanen Version des Programmes lediglich unter der Annahme dass alle Kanten gleich
lang sind: e = [r][c] wobei
- Reihennummer (r)
- Spaltennummer (c)
-
Wert des Feldes dass durch Reihe und Spalte definiert wird (e), welcher zugleich jedoch der
gesuchten Entfernung entspricht.
Auf diese Weise lässt sich auch sehr einfach der längste vorhandene Pfad bestimmen.
-
Ebenfalls sehr einfach ist die Bestimmung der kürzesten Verbindung zweier Wege aus einer solchen
Matrix heraus. Wenn f die Nummer des Start-Knotens, t die des Zielknotens und d die Entfernung der
beiden (abzulesen nach obigem Schema), dann geht man in der Suche wie folgt vor:
- Laufvariable i = 0
-
(d + 1) mal ausführen:
-
Suche eine Reihe in der Matrix, die an der Stelle von f den Wert i und an der Stelle des
Knotens t den Wert d - i hat
-
Lege die Zahl der gefundenen Reihe als i-ten Wegknoten fest
-
Erhöhe i um 1
-
Der verwendete Algorithmus überprüft während des Konvertierens auf eventuell vorhandene Maschen und
kann diese bei Bedarf mit ausgeben. Gerichtete Wege innerhalb der Matrix werden ebenfalls korrekt
behandelt
-
Flags
-
-h zeigt eine Hilfe zum Programm inklusive aller Flags an und beendet das Programm
-
-v schreibt zusätzlich noch einige Programmdaten wie Version und Autor
-
-g zeigt Informationen über die GNU General Public License (GPL) an
-
-i <datei> liest die Matrix nicht per Tastatur ein sondern über die angegebene
Datei
-
-o [+] <datei> schreibt die Matrix und, wenn die entsprechenden Flags benutzt
wurden, vorhandene Maschen (-c), Wege (-l oder -r) oder Versionsangabe (-v) in die
angegebene Datei statt sie in der Kommandozeile auszugeben. Durch hinzufügen des "+"
nach dem "-o"-Flag wird die Ausgabe an das Ende der Datei angehängt
-
-a gibt dem Programm die Information, dass die einzulesende Matrix bereits gewichtet ist
-
-w schreibt die Ausgabematrix als html-Tabelle
-
-s <trenner> trennt die einzelnen Werte der Matrix nicht durch Kommata sondern durch
das/die angegebene/n Zeichen
-
-n schreibt die matrix nicht
-
-r <von> <zu> oder -r <zu> gibt zusätzlich einen Weg von dem Knoten mit der
Ordnungszahl "von" bis zum Knoten der Ordnungszahl "zu" aus. Wird nur ein Wert übergeben, so
wird als Ausgangspunkt der Knoten der Ordnungszahl 0 genommen
-
-l Spezialfall von -r bei dem das Programm automatisch alle längsten Pfade der Matrix ausgibt
-
-c überprüft und schreibt eventuell gefundene Maschen auf
-
Dateien
-
Kompiliertes Jar-Archiv: cmatrix.jar
Version 0.3 - 13.12.2008 - 13,74kb
-
Zip-gepackter Quellcode: cmatrixsource.zip
Version 0.3 - 13.12.2008 - 14,57kb
-
Beispieltextdatei einer ungewichteten Matrix: input54d.txt
13.12.2008 - 493 Bytes
-
Copyright
Alle Dateien sind (C) 2008 Johannes Kiesel
Das Jar-Archiv und der Quellcode stehen unter der GNU General Public License
http://creativecommons.org/licenses/GPL/2.0/