Was sind theoretisch fundierte Programmiersprachen für Grafikprobleme?

8

Es gibt zahlreiche graphentheoretische Werkzeuge / Pakete. Jeder mit seinen Vor- und Nachteilen. Was sollte die Semantik / Syntax einer Programmiersprache sein, um graphentheoretische Probleme zu lösen?

Kaveh
quelle
2
Ihre Frage beginnt mit der Frage nach einer graphentheoretischen Programmiersprache und endet dann mit dem Sprechen über Grafikzeichnungspakete. Was willst du?
Dave Clarke
Ich möchte beides an einem Ort und mehr. Authoring-Einrichtungen auch.
3
Diese Frage ist nicht fokussiert - die Antworten, die Sie erhalten haben, beziehen sich auf die Frage "Was sind theoretisch fundierte Programmiersprachen für Grafikprobleme?", Die für CSTheory und Stackexchange zum Thema gehört. Sie erhalten möglicherweise bessere Antworten, wenn Sie die Dinge von "sowohl an einem Ort als auch an mehreren" auf etwas Spezifischeres eingrenzen können.
Rob Simmons
1
Insbesondere wenn Sie sich für die Frage "Was sollte ein mathematisch korrektes Paradigma sein und wie entscheiden Sie es?" Interessieren, wäre eine solche Frage für CSTheory definitiv eine unabhängige Frage von der, die Sie zu sein scheinen hier fragen.
Rob Simmons
@Rob: Ok, ich ändere den Fragentitel. Obwohl ich das nicht gefragt habe. Ich suchte nach einer Umgebung wie Mathematica. Das hat überlegene Publishing- / Authoring-Funktionen wie Latex. Bessere Syntax, spezialisiert auf Graphentheorie. Bessere Visualisierungsmöglichkeiten. Sagemath ist eine praktikable Option für Linux-Familien, aber nicht für PCs.

Antworten:

20

Vielleicht möchten Sie sich die Graph Programming Language GP ansehen . Von der verlinkten Seite:

GP (für Grafikprogramme) ist eine regelbasierte, nicht deterministische Programmiersprache zur Lösung von Grafikproblemen auf einer hohen Abstraktionsebene, die Programmierer vom Umgang mit Datenstrukturen auf niedriger Ebene befreit. Der Kern von GP besteht aus vier Konstrukten: einstufige Anwendung einer Reihe von Regeln für die bedingte Graphtransformation, sequentielle Zusammensetzung, Verzweigung und Iteration.

Sandra Steinert widmete ihre Doktorarbeit dem Thema.

Es gibt auch eine Hoare-Logik, um über die Richtigkeit solcher Programme nachzudenken.

Dave Clarke
quelle
Das Hauptaugenmerk von GP liegt darauf, Grafikprogramme besser lesbar zu machen.
Das ist eine Möglichkeit, "auf einer höheren Abstraktionsebene" zu interpretieren.
Dave Clarke
Ja. Aber dann sind noch zwei weitere Ziele übrig. Eine Authoring- und Visualisierungsumgebung.
2
Das tikz / pgf-Latexpaket ist sehr flexibel und kann hübsche Diagramme erstellen. Vielleicht entspricht dies eher Ihren Wünschen.
Dave Clarke
10

Ich bin mir nicht ganz sicher, was du willst. Aber hast du dir angesehen:

Suresh Venkat
quelle
Vielen Dank. Ja, ich habe außer PADS. Ich möchte eine Umgebung, in der ich graphbasierte Papiere, Algorithmen, Probleme usw.
Für mich reicht die Verwendung einer Kombination aus NetworkX, Latex und PGF aus. Aber ich habe nach mehr gedacht. All dies an einem Ort tun.
6

Schauen Sie sich das Sage-Projekt an , das Python mathematischer macht und Networkx und nette Visualisierungsmaterialien enthält. Ihre Liste der Diagrammfunktionen könnte wiki.sagemath.org/graph_survey oder wiki.sagemath.org/graph sein.

Abraham Flaxman
quelle
Sagemath ist zweifellos großartig. Ich bedaure, dass ich Windows benutze. VMWare dist ist ein Speicherfresser.
5

Sazzad - Ich bin ein bisschen frustriert über deine Antworten. Sie haben nützliche Antworten und Vorschläge erhalten, bleiben aber unzufrieden. Verwenden Sie entweder die besten Tools, die auf Ihrem System verfügbar sind, für verschiedene Aspekte der Graphforschung oder schreiben Sie Ihre eigenen.

Craig Holman
quelle
: P Eigentlich habe ich keine richtige Antwort erwartet. Da gibt es keine. Ich wollte mehrere Ideen erarbeiten. Wollte auch wissen, was die Experten darüber denken. Zum Beispiel, ob das, was ich dachte, überhaupt möglich ist. Wenn ja, was sind die theoretischen Grundlagen usw. Nun, so scheint es, habe ich viele Fragen an einem Ort gestellt.
Und danke für den Rat, "schreibe deine eigenen". Ich würde es definitiv tun. Sagemath ist eine sehr gute Alternative. Es unterstützt bereits Latex. Hat ein großartiges Paket zur Graphentheorie. Hervorragende visuelle Routinen. Daher ist es wahrscheinlich am besten, GP-Syntax / -Semantik usw. einzubeziehen. Und es gibt noch eine weitere große Herausforderung. So erstellen Sie einen Windows-Port.
1
Ich wollte nicht so schnippisch abschneiden wie in meiner Antwort. Ich entwerfe neue Algorithmen für k-Cliquen, maximale Cliquen und Graphisomorphismus sowie boolesche Erfüllbarkeit und Vereinfachung und Factoring. Ich schreibe meine eigene Software zur Instanzgenerierung und Problemlösung in C ++ in einer Windows-Umgebung und verwende keine Grafikbibliotheken. Ich habe die Amalfi-Grafikdatenbank verwendet. Ich habe mit einigen der genannten Werkzeuge zum Zeichnen von Diagrammen experimentiert.
Craig Holman
1
@Sazzad: Beachten Sie für die Zukunft, dass dies eine Q & A-Site ist. Wenn Sie nicht der Meinung sind, dass Ihre Frage überhaupt beantwortet werden kann, sollten Sie sie hier nicht stellen. Solche Fragen werden als "keine echte Frage" geschlossen Zumindest sollte es ein Community-Wiki sein, wenn es nicht geschlossen ist. Bitte lesen Sie " Wie man eine gute Frage stellt " und die FAQ der Site .
Kaveh
3

Gremlin ist einer. Es verfügt über eine umfangreiche Dokumentation und ist gut entwickelt. Ich glaube, es wird von einer Gruppe bei AT & T verwendet. Es ist auch plattformübergreifend (wenn Sie sich für solche Dinge interessieren). Es gibt eine Präsentation des Autors auf seiner Website, aber ich kann diesem Beitrag keinen zusätzlichen Hyperlink hinzufügen, da ich ein neuer Benutzer bin.

user7545
quelle