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?
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?
Antworten:
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.
Ich bin mir nicht ganz sicher, was du willst. Aber hast du dir angesehen:
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.
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.
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.