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

erweiterte Permutation

 

protagonist
Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 22.01.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.01.2016, 01:11     Titel: erweiterte Permutation
  Antworten mit Zitat      
Hi zusammen,
ich bin gerade auf der Suche nach dem richtigen Befehl. Es geht um Permutation mit Wiederholung. Es sollen n Kisten auf m Plätze verteilt werden. Dabei können die Kisten auch übereinander gestapelt werden (deswegen mit Wiederholung). Mit dem Befehl perms bekomme ich nur die Plätze getauscht. Kann mir jemand helfen wie ich alle möglichen Kombinationen bekomme?

Danke schon mal!!
Private Nachricht senden Benutzer-Profile anzeigen


Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 22.01.2016, 09:08     Titel:
  Antworten mit Zitat      
kannst du das genauer beschreiben. ist es wichtig welche kiste wo? ist? ist es wichtig welche kiste oben oder unten ist? beim stapeln. gibt es eine maximale stapelgröße? wie viele kisten und plätze hast du? solche permutationsaufgaben nehmen schnell größen an die den speicher sprengen.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
protagonist
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 22.01.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.01.2016, 09:32     Titel:
  Antworten mit Zitat      
Es geht nur um die Anzahl. ein Beispiel: es sind 3 Plätze verfügbar und 4 Kisten dann soll mindestens eine solche Matrix berechnet werden:
4 0 0
3 1 0
2 1 1

Von dieser würde ich über perms dann auch auf alle Möglichkeiten kommen:

4 0 0
0 4 0
0 0 4
3 1 0
0 3 1
1 0 3
...
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 22.01.2016, 09:52     Titel:
  Antworten mit Zitat      
http://www.mathworks.com/matlabcent.....exchange/26242-vchoosekro
damit sollte sich dein problem mösen lassen.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
protagonist
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 22.01.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.01.2016, 09:59     Titel:
  Antworten mit Zitat      
ich würde gern das Skript dazu schreiben und hier müsste ich im Nachhinein die Permutationen aussortieren, die zu wenig Kisten aufweisen. Vielleicht kann ich aber aus VChooseKRO was benutzen. Danke
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 22.01.2016, 10:04     Titel:
  Antworten mit Zitat      
Zitat:
und hier müsste ich im Nachhinein die Permutationen aussortieren

welche permutationen musst du aussortieren? bei VchooseKRO muss nix aussortiert werden. wie bei allen permutationsaufgaben muss man aber daran denken das das schnell sehr groß wird. bei 10 kistena auf 10 plätzen brauch man schon 800 gb speicher ^^
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
protagonist
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 22.01.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.01.2016, 10:18     Titel:
  Antworten mit Zitat      
für 4 Kisten und 3 Plätze würde auch zb. 1 0 0 vorgeschlagen

hab gerade das gefunden:
Code:
nodes = 3;
jobs = 3;
ch = nchoosek(1:(nodes+jobs-1),nodes-1);
rows = size(ch,1);
mch_tmp = [zeros(rows,1), ch, (nodes+jobs)*ones(rows,1)];
mch = diff(mch_tmp,1,2) - 1


jobs als Kisten und nodes als Plätze wäre das richtige denke ich.. ich werde den code mal testen
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 22.01.2016, 10:44     Titel:
  Antworten mit Zitat      
du hast recht. ich hatte vergessen das die kisten sich ja nicht unterscheiden. vchoosekr wäre also richtig.
nicht vchoosekro bei den drei komm ich manchmal durcheinander.
vchoosekr ist schneller als deine variante.
http://www.mathworks.com/matlabcent.....eexchange/26277-vchoosekr
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
protagonist
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 22.01.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.01.2016, 13:50     Titel:
  Antworten mit Zitat      
Ich erkenn den Unterschied zwischen KRO und KR garnicht.
Es wird doch immer aus einem Vektor gewählt. Wichtig ist aber dass die Summe der Zeile des Ergebnisses die Anzahl der Kisten sind. Das bekomm ich auch mit VChooseKR nicht hin oder übersehe ich da was offensichtliches?
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 22.01.2016, 13:55     Titel:
  Antworten mit Zitat      
Zitat:
Ich erkenn den Unterschied zwischen KRO und KR garnicht.

das eine ist mit "order" das andere ohne. beides ist mit zurücklegen.
Code:
a=VChooseKR(1:plaetze,kisten);
b=nan(size(a,1),plaetze);
for k=1:plaetze
    b(:,k)=sum(a==k,2);
end

die mexfile ist um ein vielfaches schneller. grade wenn es mal mehr als 10 kisten werden. bei 15 kisten und 10 plätzen ist der geschwindikeitsunterschied schon faktor 30
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
protagonist
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 22.01.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.03.2016, 15:20     Titel: VChooseKR
  Antworten mit Zitat      
Hi. Ich habe gerade VChooseKR von Matlab Central runtergeladen aber egal welche Datei ich in meinen Ordner schiebe, die Funktion wird nicht ausgeführt. die .m besteht nur aus Kommentar. Was mache ich falsch?
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 04.03.2016, 15:31     Titel:
  Antworten mit Zitat      
Zitat:
Was mache ich falsch?

das sind sehr wenig informationen.
gab es denn beim compilieren fehler ? welche fehlermeldungen treten denn auf ?
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 05.03.2016, 11:01     Titel: Re: VChooseKR
  Antworten mit Zitat      
Hallo protagonist,

Hast Du das C-File schon compiliert?
Zitat:
mex -O VChooseKR.c

Wenn es dabei Probleme gibt, einfach mal den Autor kontaktieren Smile
Ich habe vor-compilierte Binaries für Win32 und Win64 da und könnte sie Dir schicken.

Gruß, Jan

Zuletzt bearbeitet von Jan S am 13.04.2016, 15:53, insgesamt einmal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen
 
protagonist
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 22.01.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.04.2016, 11:04     Titel:
  Antworten mit Zitat      
Ich bin gerade wieder auf die selbe Fragestellung zurück gekommen. VChooseKR macht laut Beispiel nicht das was ich möchte:
EXAMPLES:
Choose 2 elements from [1,2,3,4]:
Code:
VChooseKR(1:4, 2)
    ==> [1,1; 1,2; 1,3; 1,4; 2,2; 2,3; 2,4; 3,3; 3,4; 4,4]


das sind nicht vier Kisten auf zwei Plätze verteilt. In Summe sind hier zwischen 2 und 8 verteilt.
Die Lösung wäre
Code:
[0,4;1,3;2,2;3,1;4,0]

bekomme ich das überhaupt mit VChooseKR hin?

und evtl. kurz noch zu meinem Problem der Anwendung des FileExchange: Kann ich wo nachlesen wie das funktionieren sollte?
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 13.04.2016, 12:35     Titel:
  Antworten mit Zitat      
ich habe oben bereits die lösung geschrieben. die weiteren code zeilen die ich benutzt habe sind nicht vollkommen zweckfrei.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite 1, 2  Weiter

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.