|
|
Optimierung Konditionszahl mittels Tabu Suche |
|
bmtil |
Forum-Anfänger
|
|
Beiträge: 49
|
|
|
|
Anmeldedatum: 01.05.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 01.05.2012, 10:52
Titel: Optimierung Konditionszahl mittels Tabu Suche
|
|
|
|
|
Guten Tag, ich bin sehr neu im Gebiet Matlab Programmierung und brauche leider Gottes jede Menge Tipps.
Ich habe ein folgendes zu loesendes Problem, bzw. das waere der Pseudocode:
Ich erzeuge eine randomisierte Matrix (die initalisierte Lösung, nennen wir sie Matrix A).
Aus dieser randomisierten Matrix A wird eine weitere randomisierte Matrix B erzeugt, indem eine zufaellige Anzahl an Spalten und Zeilen ausgewaehlt werden. (Das waere quasi die Nachbarschaftsfunktion der Tabu Suche)
Von der neuen Matrix wird die Konditionszahl berechnet.
Es wird überprüft, ob die Konditionszahl den Optimierungsbedienungen genügt.
Wenn, ja, dann wurde eine optimale neue Matrix gefunden.
Wenn nicht, dann wird die Matrix B, aus der die Konditionszahl bestimmt wurde zu der initialisierten Lösung.
Der Algorhitmus wird auf die Matrix B wiederholt.
Der Algorhitmus terminiert wenn die optimale (möglichst geringe) Konditionszahl gefunden wurde.
Zu meinen speziellen Fragen:
Wie kann ich hier die Zielfunktion definieren, also die Zielfunktion ist, dass
(k=konditionszahl)
wird.
Die Defintion der Nachbarschaftsfunktion ist mir unklar, also wie kann ich sagen, dass aus der Matrix A, eine zufaellige Anzahl von Spalten und Zeilen genommen wird, um eine neue Matrix zu bilden.
Vielen Dank und mit freundlichen Grüßen, bmtil.
|
|
|
|
|
MaFam |
Forum-Meister
|
|
Beiträge: 799
|
|
|
|
Anmeldedatum: 02.05.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2009b
|
|
|
|
|
|
Verfasst am: 02.05.2012, 12:19
Titel:
|
|
Hallo,
die Kondition eine Matrix A lässt sich mit cond(A) berechnen. Zu der Aufgabenstellung: Das erscheint mir alles ein wenig verwirrend zu sein. Es wäre gut, wenn du den Originalwortlaut der Aufgabe einmal angeben könntest.
Grüße, MaFam
|
|
|
bmtil |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 49
|
|
|
|
Anmeldedatum: 01.05.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 02.05.2012, 12:24
Titel:
|
|
Hier die Formulierung der Aufgabe:
"Somit wählt man für
eine Sensoroptimierung die Zeilen einer Matrix aus, welche die kleinste
Konditionszahl liefern (=beste Kondition, geringste Abhängigkeit der
Messwerten)"
und:
"1. mehrfache, zufällige Auswahl von Zeilen
der Gesamtmatrix bilden neue Teilmatrizen 2. Bestimmung Kondition für
Teilmatrizen 3. Wähle die Teilmatrix mit bester Kondition 4. tausche
zwischen bester Teilmatrix und Gesamtmatrix weitere Zeilen (Sensoren)
aus und erzeuge damit neue Teilmatrizen 5. weiter bei 2 bis
Abbruchkriterium erfüllt"
Es ist deutlich besser ausgedrueckt, als ich es jemals konnte.
Grueße.
|
|
|
MaFam |
Forum-Meister
|
|
Beiträge: 799
|
|
|
|
Anmeldedatum: 02.05.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2009b
|
|
|
|
|
|
Verfasst am: 02.05.2012, 13:06
Titel:
|
|
OK, damit ist das Problem mehr oder weniger klar. Dieses Problem ist NP schwer (der Lösungsraum ist so mächtig wie die Potenzmenge) und muss daher mit einer Heuristik näherungsweise gelöst werden.
Wenn du aus A ein zufällige Anzahl k von Zeilen (wie kommst du eigentlich auf Spalten?) entnehmen willst, dann musst du eine Zufallszahl würfeln, die kleiner gleich der Anzahl der Zeilen der Matrix ist. Nun kannst du beispielsweise die ersten k Zeilen entnehmen. Oder du würfelst k-mal und entnimmst die entsprechende Zeile an dieser zufällige Stelle.
Ganzzahlige Zufallszahlen siehe hier: http://www.mathworks.de/help/techdoc/ref/randi.html
|
|
|
bmtil |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 49
|
|
|
|
Anmeldedatum: 01.05.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 02.05.2012, 13:25
Titel:
|
|
Ah, ok, danke fuer den Ansatz, ich werde es mal ausprobieren.
Meld mich dann mit einem Ergebniss.
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2024
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|