Kreise verbinden
-
Kannst du denn wenigstens einen Hinweis geben, was diese "verbunden/nicht verbunden" Beziehung eigentlich darstellen soll? Eventuell hilft das Verständnis der dahinterliegenden Struktur bei der Auswahl eines geeigneten Verfahrens.
-
CStoll schrieb:
Kannst du denn wenigstens einen Hinweis geben, was diese "verbunden/nicht verbunden" Beziehung eigentlich darstellen soll? Eventuell hilft das Verständnis der dahinterliegenden Struktur bei der Auswahl eines geeigneten Verfahrens.
Leider nicht, die "verbunden/nicht verbunden" Beziehung wird vom User bestimmt und das Programm wird mit Daten gefüttert und ich darf die Daten Visualisieren.
Je nach Problemstellung kann das Programm für Mindmaps, UML-Diagramme, Künstliche Neuronale Netze oder einfach abstrakte Graphen zur Auswertung verwendet werden.Die Lösung für Mindmaps und künstliche Neuronale Netzte sind die einfachsten da die anzahl der klassifizierbaren Strukturen überschaubar ist.
Wobei es bei Neuronalen Netzwerken auch mal paar schwierige "ausreiser" vorkommen...
UML-Diagramme sind auch noch machbar, wenn man die unterschiedlichen Verbindungen(Assoziationen[lateral], Vererbung[hierarchisch]) getrennt analysiert und anschliesend die ergebnisse zusammenträgt(und den einen oder anderen Kompromiss eingeht(wegen den []-annahmen).Aber bei den allgemeinen Graphen oder anderen, nicht von mir genannten Netzwerken, versagt mein Programm zu wenige Netzwerke klassifiziert und schön-zeichnen-Prozeduren kennt.
-
A Circle schrieb:
Ich finde es interessant das solche Probleme ein Mensch theoretisch lösen könnte, aber für einen Computer ein unzugängliches Problem darstellt.
Ein Mensch kann leider auch nicht das hübschere Graphenbildchen des K4 zwischen http://mathestuff.de/files/k4kl.png und http://upload.wikimedia.org/wikipedia/commons/thumb/5/59/Complete_graph_K4.svg/210px-Complete_graph_K4.svg.png herausfinden, wenn er nichts über die dargestellten Daten erfahren darf!
Das eine ist kreuzngsfrei. Das andere betont, daß keine der vier Ecken eine besondere Lage hat. Jede dieser Eigenschaften kann je nach Anwendung wichtiger sein.Was ich mit der mathematischen Forschung meinte, war: Könnte der Computer es schaffen, beliebige Graphenbildchen zu zurechtzurücken, daß sie hübsch sind, dann könnte er automatisiert mathematische Forschung betreiben. Und das ist möglicherweise prinzipiell nicht möglich.
Wenn Dein Programm den Zweck hat, den Menschen beim Überlegen zu unterstützen, mußt Du wohl dem Benutzer viele Knöpfe anbieten. Zum Beispiel beim neuronalen Netz Eingangs- und Ausgangsknoten definieren zu können (könnte mir voestellen, daß der Rechner versuchen soll, die an entgegengesetze Ränder zu legen), bei anderen Graphen definieren zu können, daß die Beziehung transitiv ist, auch wenn das nicht dargestellt wird (woraufhin der Rechner vielleicht versucht, durchgehende Richtungen länger beizubehalten), oder bestimmte Kreise als unwichtig zu kennzeichnen (zum Beispiel, damit der Rechner erkennt, daß das (bis auf den einen störenden Knoten) ein Baum ist).
-
Aha Neuronale Netze - immerhin eine neue Erkenntnis zur Fragestellung! Sind dafür 250 Punkte nicht viel zu wenig?
Für ein zu schreibendes Programm kommt man um klare Festlegungen und Rechenvorschriften nicht herum. Was nicht vorgedacht ist, kann das Programm nicht leisten.1. Punkt = neuronaler Knoten --> Welche Eigenschaften besitzt ein Punkt (x,y,...)?
2. Benutzer legt Beziehungen fest, aus denen sich Strukturen ergeben --> welche Eingaben sind möglich?
3. Für welche Punkte gelten diese Beziehungen?
4. Sind die Strukturen auf die Punkte oder auf die Beziehungen bezogen?Jester hat recht: Schritt 1 = Beschreibung des Problems.
Ich fürchte, dass dies nicht gelingt und es somit keine programmierbare Lösung gibt!
-
Neuronale Netze sind wahrscheinlich oft azyklisch, dann kann man prima topologisch sortieren und die Knoten auf Layer zuweisen. Jedes Layer wird dann auf eine horizontale Gerade gezeichnet. Der große Freiheitsgrad ist dann noch das Routen der Kanten und die Ordnung der Knoten in den Layern. Beliebt ist: Dummy-Knoten einfügen, sodass jede Kante nur noch benachbarte Layer verbindet, dann Barycenter-Methode zum Kreuzungen minimieren. Das Framework zu diesen Layer-Mathoden hört auf den Namen Sugiyama-style graph drawing, http://en.wikipedia.org/wiki/Layered_graph_drawing
Trifft das ungefähr was Du willst? Wenn nicht, nochmal die Aufforderung: versuch zu sagen was genau Du suchst.
-
Jester schrieb:
Trifft das ungefähr was Du willst? Wenn nicht, nochmal die Aufforderung: versuch zu sagen was genau Du suchst.
Er sucht offenbar ein Modell für komplexe neuronale Netze. Für den Anfang mit überschaubaren 250 Knoten. Ein rechenbarer Algorithmus für ein menschliches Gehirn mit sehr viel mehr Knoten und Verknüpfungen oder Layern könnte einen Nobelpreis wert sein?
Das wäre Forschung - viel Glück!
-
Jester schrieb:
Trifft das ungefähr was Du willst? Wenn nicht, nochmal die Aufforderung: versuch zu sagen was genau Du suchst.
Eigentlich schon, nur beschränkt sich mein Programm nicht nur auf neuronale Netze, ich suche ganz allgemein Routinen für meinen Graphenzeichner. Dank deines Links habe ich auch einen http://rise4fun.com/Agl, nun wäre ich Interessant welche Routinen dahinter stecken(und wo seine grenzen sind)
-
A Circle schrieb:
Dank deines Links habe ich auch einen http://rise4fun.com/Agl, nun wäre ich Interessant welche Routinen dahinter stecken(und wo seine grenzen sind)
Probier doch mal den K4. Macht er die viereckige Version mit vier gleichberechtigten Knoten und einer Kreuzung oder macht der die dreieckige Version mit einem Knoten in der Mitte?
digraph G { A -> B A -> C A -> D B -> A B -> C B -> D C -> A C -> B C -> D D -> A D -> B D -> C }
-
A Circle schrieb:
Jester schrieb:
Trifft das ungefähr was Du willst? Wenn nicht, nochmal die Aufforderung: versuch zu sagen was genau Du suchst.
Eigentlich schon, nur beschränkt sich mein Programm nicht nur auf neuronale Netze, ich suche ganz allgemein Routinen für meinen Graphenzeichner. Dank deines Links habe ich auch einen http://rise4fun.com/Agl, nun wäre ich Interessant welche Routinen dahinter stecken(und wo seine grenzen sind)
das sieht ein bißchen aus wie das dot-format von graphviz. Ansonsten klink ich mich dann hier langsam mal aus, solange du der meinung bist dass "ich will schöne bildchen für beliebige graphen malen" eine ausreichende problembeschreibung ist, werden wir hier nicht weit kommen. Du kannst dich ja melden, falls der Leidensdruck größer wird und Du daraufhin doch noch Lust bekommst über Deine Problemstellung nachzudenken.
-
Jester schrieb:
... Leidensdruck größer wird ...
Bisher war das nicht sein, sondern unser Leidensdruck!