WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Optimierung Konditionszahl mittels Tabu Suche

 

bmtil
Forum-Anfänger

Forum-Anfänger


Beiträge: 49
Anmeldedatum: 01.05.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.05.2012, 10:52     Titel: Optimierung Konditionszahl mittels Tabu Suche
  Antworten mit Zitat      
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)
Code:

k(A)=||A||*||A^-1||=min
 
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.
Private Nachricht senden Benutzer-Profile anzeigen


MaFam
Forum-Meister

Forum-Meister


Beiträge: 799
Anmeldedatum: 02.05.12
Wohnort: ---
Version: R2009b
     Beitrag Verfasst am: 02.05.2012, 12:19     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
 
bmtil
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 49
Anmeldedatum: 01.05.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.05.2012, 12:24     Titel:
  Antworten mit Zitat      
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.
Private Nachricht senden Benutzer-Profile anzeigen
 
MaFam
Forum-Meister

Forum-Meister


Beiträge: 799
Anmeldedatum: 02.05.12
Wohnort: ---
Version: R2009b
     Beitrag Verfasst am: 02.05.2012, 13:06     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
 
bmtil
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 49
Anmeldedatum: 01.05.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.05.2012, 13:25     Titel:
  Antworten mit Zitat      
Ah, ok, danke fuer den Ansatz, ich werde es mal ausprobieren.
Meld mich dann mit einem Ergebniss.
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.