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

Ganzzahligkeit des Wertebereichs festlegen

 

miKOscha
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 19.10.11
Wohnort: Dortmund
Version: ---
     Beitrag Verfasst am: 19.10.2011, 19:25     Titel: Ganzzahligkeit des Wertebereichs festlegen
  Antworten mit Zitat      
Hallo,

habe im Forum etwas gestöbert, aber nichts passendes zu meinem Problem gefunden!

Es geht um Folgendes: ich etwerfe ein Modell für Personaleinsatzplanung. Die Zielfunktion und die dazu nötigen Variablen habe ich bereits hinterlegt und mit SA im Optimazation Tool gelöst. Allerdings bekomme ich keine positiven gazzahligen Werte und ich kann ja nicht in einer Schicht 2,39 Leute einsetzen!

Kann mir jemand helfen den Wertebereich für meine Entscheidungsvariable vornvorne rein als positiv ganzzahlig festzulegen?!

Wie es z.B. im VBA mit Dim x As Interger geht!

Vielen Dank,
Michael
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.502
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 20.10.2011, 09:05     Titel:
  Antworten mit Zitat      
Hallo,

für solche Probleme würde ich genetische Algorithmen (doc ga) verwenden.

In MATLAB 2011b ist neu hinzugekommen, dass ga auch Integer-Constraints verarbeiten kann. Davor musste man das manuell machen (und insbesondere Creation Function, Mutation Function und Crossover Function selbst definieren), was das ganze recht mühsam machte.

Abhängig von dem Problem bieten sich teilweise auch Brute Force-Ansätze an: wemn das Minimum bei 2,39 Leuten ist, dann schaue ich halt, ob 2 oder 3 besser sind, und nehme das. Das ist aber eher eine Notlösung.

Grüße,
Harald

P.S.: es gibt in MATLAB auch Integer-Datentypen, z.B. uint8. Integer haben und mit ihnen rechnen sind allerdings zwei vollkommen unterschiedliche Dinge.
Private Nachricht senden Benutzer-Profile anzeigen
 
miKOscha
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 19.10.11
Wohnort: Dortmund
Version: ---
     Beitrag Verfasst am: 20.10.2011, 09:52     Titel:
  Antworten mit Zitat      
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.502
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 20.10.2011, 09:57     Titel:
  Antworten mit Zitat      
Hallo,

dein Kommentar ist leer. Ich vermute, du wolltest etwas mehr schreiben?

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
miKOscha
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 19.10.11
Wohnort: Dortmund
Version: ---
     Beitrag Verfasst am: 20.10.2011, 09:58     Titel:
  Antworten mit Zitat      
Danke,

aber leider ist es mir in Rahmen meiner Bachelor-Arbeit vorgeschrieben mit Simmulated Annealing in MATLAB zu arbeiten!

Deshalb suche ich fieberhaft nach der Lösung, dass SA mir nur ganzzahlige positive Werte liefert!

Gibt es in MATLAB wirklich keine Möglichkeit den Wertebereich festzusetzen??!

Gruß,
Michael
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.502
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 20.10.2011, 10:08     Titel:
  Antworten mit Zitat      
Hallo,

nur zur Sicherheit: wir sprechen schon beide von Simulated Annealing (simulannealbnd)?

Was du ansprichst, ginge über 'DataType', 'Custom' und eine custom annealing function, siehe
Code:
http://www.mathworks.com/help/releases/R2011b/toolbox/gads/bq26j8s-1.html
unter "Algorithm Setting".

Ich würde das jedoch nochmal mit dem Betreuer abklären, da mir genetische Algorithmen hier geeigneter erscheinen. Vielleicht kann man ja sogar beides probieren und die Ergebnisse vergleichen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
miKOscha
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 19.10.11
Wohnort: Dortmund
Version: ---
     Beitrag Verfasst am: 20.10.2011, 10:20     Titel:
  Antworten mit Zitat      
Ja, ich meine schon das Simulated Annealing (simulannealbnd)!

Und es funktioniert soweit - bis halt auf die Tatsache, dass ich negative und Dezimalwerte bekomme!

Ja, ich spreche meinen Betreuer darauf an! Vielleicht schlägt er mir was vor!


Du hast ja GA vorgeschlagen, das merke ich mir!
Was würdest du davon halten, wenn ich es mit "fmincon Solver" versuchen würde?! Dort kann man ja auch nichlineare Nebenbedingungen hinterlegen!

Gruß,
Michael
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.502
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 20.10.2011, 21:41     Titel:
  Antworten mit Zitat      
Hallo,

negative Werte kannst du doch durch lb = zeros(N, 1) verhindern.

Heißt funktionieren, dass der Code fehlerfrei durchläuft, oder dass du *gute* Ergebnisse bekommst? Oft weiß man bei einer Minimierung ja nicht, wie gut die Ergebnisse sind - ein Vergleich mit einem anderen Algorithmus wird also wohl nicht schaden?

fmincon ist für Integer-Optimierung ungeeignet, außer du willst den anfangs geschilderten Brute-Force - Ansatz verfolgen.

Wenn du dein Problem genauer beschreiben kannst/darfst, könnte man auch besseren Rat geben...

Grüße,
Harald
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 - 2025 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.