Optimierungsproblem bzgl. Kernkraftwerke

Neue Frage »

IreneAdler Auf diesen Beitrag antworten »
Optimierungsproblem bzgl. Kernkraftwerke
Hallo Mathefreunde,

ich habe eine für die Fortführung meiner Forschung eine essentielle Frage:

Es ist ein Modellerierungs- bzw. Optimierungsproblem. Ich habe verschiedene Kraftwerke (Angetrieben von Öl, Gas, Wasser, Atomkraft und Kohle). Ich kenne die durchschnittliche Auslastung jedes Kraftwerkes pro Jahr und man kann jedes Kraftwerk natürlich an und ausschalten. ich kenne den Energiebedarf zu jedem Zeitpunkt und es gibt bestimmte Power Control Areas, in denen sich die Kraftwerke (power plants) "bündeln". sie versorgen in der gegend die menschen mit dem strom. natürlich haben alle verschiedenen kraftwerke verschiedene emissionswerte, kosten/MW und jede PCA hat ne unterschiedliche auslastung.


wie soll ich da heran gehen? ich denke matlab ist eine gute wahl aber ich kann nicht besonders gut programmieren.
Mazze Auf diesen Beitrag antworten »

Die erste Frage ist, was willst Du optimieren? Emissionen? Erzeugnis? Beides in Abhängigkeit? Irgendeine Funktion von den Parametern?
IreneAdler Auf diesen Beitrag antworten »

gute Frage! das habe ich vergessen anzufügen:

Man muss die Emissionsgrenze beachten und möglichst günstig den Strom liefern. Sinn des ganzen ist am Ende zu wissen welche Power Plants in welcher Stunde im ganzen jahr eingeschaltet sind. (wir haben den stromverbauch pro stunde).

Weitere interessante infos:
ein AKW ist ca. ein monat ausgeschaltet im jahr.
ein wasserkraftwerk ist ca. 50% der zeit verfügbar und ist natürlich sehr günstig.
Mazze Auf diesen Beitrag antworten »

Ich schätze mal das man mit ein wenig Vorüberlegungen schon in eine Richtung gehen kann. Allerdings kenn ich mich in dieser Thematik jetzt zu wenig aus. Daher würde man Standardoptimierungsverfahren ansetzen. Die Programmiersprache ist dabei zunächst erstmal egal, Matlab ist aber schonmal gut. Du könntest einfach BruteForce alle Kombinationen durchrechnen und dann die günstigste Kombination heraussuchen. Wenn Du es durch einen Computergestützes Optimierungsverfahren lösen willst ist eines unabdingbar wichtig :

Eine genau Spezifizierung des Problems in allen Einzelheiten. Hierzu gehört zum Beispiel wie lange die Zeitbereiche sind. Kann man Kraftwerke Tageweise ausschalten? Oder vereinfachen wir das Ganze auf Monate?

Wenn man die Problemspezifizierung hat findet sich vielleicht auch das ein oder andere Optimierungsverfahren was günstig ist. Vielleicht kann man die Lösung dann sogar analytisch angeben, was ich aber sehr bezweifle. Hast Du denn Erfahrung im Bereich Optimierung?
IreneAdler Auf diesen Beitrag antworten »

leider habe ich gar keine erfahrung. quäle mich gerade durch sehr einfache optimierungsaufgaben um erst mal besser porgrammieren zu können. benutze matlab erst seit paar tagen und ich stehe unter zeitdruck. freue mich also über jeden noch so kleinen hinweis.

im endeffekt geht es um stunden. das ganze jahr wird in stunden aufgeteilt und ich muss herausfinden (durch das optimierungsverfahren) in welcher stunde welches power plant (also kraftwerk) eingeschaltet ist. ich kenne die durchschnittswerte pro jahr von allen PCAs (power control areas) und die PCAs setzen sich zusammen aus mehreren power plants.


ist doch ne gute aufgabe für einsteiger!
Mazze Auf diesen Beitrag antworten »

Stundenweise Aufteilung und 5 verschiedene KW typen. Das ergibt



Möglichkeiten, allerdings sind nicht alle Zustände hier erlaubt da ja ein gewisser Grundbedarf erzeugt werden muss und bestimmte Kraftwerktypen nicht das ganze Jahr laufen können. Daher könnte man den Zustandsraum sicher reduzieren. Eine Möglichkeit wäre jetzt Optimierung durch Suche. Etwa Breitensuche (diese findet das Optimum bei endlichem Verzweigungsgrad auf jeden Fall, kann aber eine lange Laufzeit haben).

Zur Implementierung eine solchen braucht man aber den sicheren Umgang mit Warteschlangen usw. Hier bei würde man einen Suchbaum aufbauen. Ein Zustand wäre dann eine vollständige Zuordnung von Stunden zu Kraftwerken. Dazu bräuchte man aber noch einen Auslastungszähler. Ich hab das nur spontan überdacht , da müsste man noch weit mehr machen. Das Ganze läuft unter dem Begriff "uninformierte Suche".

Es gibt auch informierte Suche, dabei wird einem Zustand noch eine Bewertungsfunktion zugeordnet, oder man arbeitet mit sogenannten Heuristiken. Diese können schneller als die uninformierten Suchen sein. Vielleicht kannst Du das Problem aber auch durch eine differenzierbare Kostenfunktion beschreiben und Gradientenoptimierung o.ä. machen. Das wäre aber eine Funktion auf hochdimensionalen Räumen. Simulated Annealing wäre vielleicht auch noch zu erwähnen. Das ist aber alles recht viele und ich weiss nicht wie weit Du überhaupt in die Materie reinwillst.

Wenn Du viel Zeit hast machst Du einfach eine 5-Fache Zählschleife über 8670 iterationen, erstellst dir 5 Arrays der Länge 8670 und gehst so alle Kombinationen durch, speicherst die ab und suchst dir die beste raus. Allerdings kostet das extrem viel speicher. Wenn 1 Schleifendurchlauf 1 ms dauert müsstest Du etwa Minuten warten. D.h entweder gehen die Schleifendurchläufe massiv schneller oder Brute Force scheidet aus.
 
 
IreneAdler Auf diesen Beitrag antworten »

Wir haben 4841 verschiedene Kraftwerke (power plants). die wichtigsten bestehen aus den 5 genannten. die erzeugen ich glaub über 95% des stroms. die power plants werden gruppiert zu PCAs (power control areas).

edit:

ich hoffe, dass das die rechnung nicht all zu arg verändert. ich verstehe leider nicht, wie ich konkret vorgehen soll. ich habs nicht so mit dem programmieren ^^ vlt. könntest du ein wenig mehr zu den verfahren sagen und "deine" (sinnigste) vorgehensweise genauer erläutern.
Mazze Auf diesen Beitrag antworten »

Wieviel PCAs gibt es? Nur als Hinweis, bereits bei 5 PCAs wird das Ganze technisch schon schwierig. Ohne tieferes Wissen in dem Gebiet kann ich da schwerlich was zu sagen. Beispielweise würde ich die Wasserkraftwerke von Frühling bis Herbst laufen lassen um den Zustandsraum zu reduzieren. Aber ob das wirklich sinnvoll ist? Vielmehr bin ich auch der Meinung das Aufteilung in Stunden schon zu viel ist. Ich musste mal den Kontrolfluss eines einzigen Wasserkraftwerks optimieren und musste das Jahr in Monate einteilen, weil alles andere rechnerisch unmöglich war (es dauert einfach zu lange). Wenn Du nicht gerade über einen Superrechner verfügst solltest Du also entweder den Zustandsraum stark eingrenzen oder davon abkehren Stundenweise regulieren zu wollen.
IreneAdler Auf diesen Beitrag antworten »

das projekt ist eindeutig definiert. wie das genau aussehen soll ist momentan meine frage nicht die des professors. in 30 sek. durchgescrollt gibt es 44 power control areas. ich sag mal +- 5 für den fall, dass ich mich verzählt habe. es wäre doch aber möglich es für jedes PCA zu machen. ich habe den bedarf an strom und die kosten für den strom innerhalb jedes PCAs zu jeder stunde (zumindest momentan von den großen PCAs).

zur vollständigkeit:
es gibt doch die nerc subregions (mehrere PCAs) und die NERC (mehrere subregions). damit wäre die einteilung komplett.
Mazze Auf diesen Beitrag antworten »

44 PCAs ? Selbst wenn wir nur Monatsweise an und abschalten haben wir da



potentielle Zustände. Eine naive Suche in so einem Zustandsraum ist praktisch unmöglich, es sei denn Du kannst ein Paar Jahre warten, bis der Algorithmus fertig ist. Ohne Zusatzwissen mit dem man den Zustandsraum reduzieren kann gehts wohl nicht. Wichtig wäre etwa zu wissen ob bestimmte PCAs zu bestimmten Zeiten nicht angeschaltet werden können, bzw. ob sie zu bestimmten Zeitpunkten angeschalten sein müssen.
IreneAdler Auf diesen Beitrag antworten »

um nun noch genauer zu werden:

wir haben bereits den code für fast alles fertig. wir betrachten momentan nur ein großes PCA gebiet, wenn ich den code richtig verstehe.

ich soll um genauer zu sein den factor capacity mit einbringen. der code geht davon aus, dass man immer 100% der capacity benutzt aber das enspricht nicht der realität weil man mixt. ich muss das irgendwie in den code integrieren.
Mazze Auf diesen Beitrag antworten »

Ich weiss zuwenig von dem Problem. Diese Kapazität ist wohl die Auslastung des Kraftwerkes. Ohne den Code zu sehen kann ich da auch nicht zu sagen. Allerdings ist der Code auch nicht das Problem, sondern schlicht und ergreifend das ich zuwenig Informationen zum Problem habe. Der naive Ansatz skaliert einfach nicht.
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »