Es gibt bestimmte Knoten, die sich in festen Abständen voneinander befinden. An jedem dieser Knoten besteht ein gewisser Bedarf an Wasser (in Einheiten von m^3/s).Ich möchte eine GUI erstellen, um eine Lösung für ein spezifisches Optimierungsproblem zu implementieren.
Die Knoten sind durch ein Netzwerk von Rohren verbunden, wobei die Länge des Rohres, das verschiedene Knoten verbindet, festgelegt ist und die Strömungsraten durch jedes Rohrsegment rückwärts von der Nachfrage an den Endknoten berechnet werden.
Jetzt muss ich die festen Kosten der Auswahl der zu verwendenden Rohre minimieren, was eine Funktion der Durchflussrate, der Länge des Rohrs und des Rohrdurchmessers ist (und ich kenne die Korrelation zwischen den Kosten und diese Parameter in einer funktionalen Form).
Die Einschränkungen sind, dass der Druckabfall (eigentlich der dynamische Kopf) größer als die angegebenen Werte an jedem Knoten sein muss.
Ich weiß, wie man dies in ein lineares Optimierungsproblem umwandelt (indem man jedes Segment in eine Reihe von Rohren unterschiedlicher Länge mit spezifischen Durchmessern aufteilt) und die Simplex-Algorithmen verwendet.
Was ich tun möchte, ist eine GUI-Schnittstelle zu implementieren, wo der Benutzer die Knoten angeben können, wobei die Segmente die verschiedenen Knoten und die entsprechenden Abstände und die Mindest Köpfe durch simpling Klicken Verbinden und Ziehen und Eingabe der Informationen in einer Box, damit ich mit diesen Daten die optimale Lösung berechnen und anzeigen kann.
Kann mir jemand auf eine Sprache und eine Referenz verweisen, wo ich das auf einfache Weise machen kann? Ich bin bereit, die Mühe zu geben und es zu lernen, während ich programmiere.
Ich weiß, wie das Optimierungsproblem für ein vordefiniertes Netzwerk mit linearer Programmierung gelöst werden kann, und einen bestimmten Satz von Parameterwerten, die ich über die Befehlszeile eingib. Ich möchte wissen, wie man eine GUI erstellt, um das Netzwerk zu zeichnen und die Daten einzugeben.
Vielen Dank!
Danke. Um zu verdeutlichen, weiß ich, wie man das Optimierungsproblem mittels linearer Programmierung löst (dh der Simplex-Algorithmus). Ich bin nicht spezifisch in C++, ich möchte die GUI einfach machen. –
OK, nächste Frage: Wie sieht "easy" für dich aus? GUI-Code von Hand schreiben? Verwenden Sie eine Drag & Drop-Oberfläche, um es zu erstellen? Klingt so, als ob Sie das Netzwerk zur Laufzeit mithilfe einer vorhandenen UI-Bibliothek generieren möchten. Vielleicht Qt oder ein Äquivalent wird es tun Werfen Sie einen Blick auf den Link, den ich gesendet habe. – duffymo
GUI-Code manuell schreiben ist in Ordnung. Ich schaute auf den Link und Qt scheint genau das, was ich brauche. Vielen Dank. –