|
|
Auflistung aller Kombinationsmöglichkeiten |
|
KP1988 |
Forum-Newbie
|
|
Beiträge: 5
|
|
|
|
Anmeldedatum: 01.05.17
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 01.05.2017, 19:02
Titel: Auflistung aller Kombinationsmöglichkeiten
|
|
Moin zusammen,
ich stehe als blutiger Matlab-Anfänger für einem für mich unlösbar erscheinenden Problem. Evtl. hat hier ja jemand eine Idee.
Ich möchte aus einer bestimmten Menge an Ziffern (in diesem Fall 10) alle Kombinationsmöglichkeiten auflisten. Insgesamt sind das ja 2^n, also 2^10 = 1024 Möglichkeiten.
In diesen Möglichkeiten sind dementsprechend unterschiedliche Kombinationen mit 1,2,3,4,...10 Ziffern enthalten. Für jede Gruppe habe ich jetzt schon eine Funktion gefunden: combnk. Damit kann ich dann ja alle Kombinationen unter Festlegung der Anzahl erzeugen.
Die Schwierigkeit für mich besteht jetzt darin, dass ich nicht weiß, wie (und ob) ich diese Gruppen jetzt miteinander verbinden kann. Ich habe mir überlegt, dass das evtl. mit einer Schleife lösbar wäre. Allerdings habe ich keine Ahnung, wie das funktionieren soll.
Hoffe, hier ist jemand, der mir helfen kann!
VG
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.448
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 02.05.2017, 10:20
Titel:
|
|
Hallo,
was meinst du mit den "Kombinationsmöglichkeiten"?
Ich würde das so interpretieren, dass man alle zweistelligen Zahlen (inkl. 0) erhält - und das wären 100, nicht 1024.
Grüße,
Harald
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 02.05.2017, 16:03
Titel: Re: Auflistung aller Kombinationsmöglichkeiten
|
|
Hallo KP1988,
Zitat: |
Die Schwierigkeit für mich besteht jetzt darin, dass ich nicht weiß, wie (und ob) ich diese Gruppen jetzt miteinander verbinden kann. |
Was bedeutet das genau? In welcher Form liegen die "Gruppen" vor? Was bedeutet "verbinden"?
Wie soll also genau das "aufgelistete" Ergebnis aussehen?
Gruß, Jan
|
|
|
KP1988 |
Themenstarter
Forum-Newbie
|
|
Beiträge: 5
|
|
|
|
Anmeldedatum: 01.05.17
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 02.05.2017, 19:48
Titel:
|
|
Ich versuche das mal etwas verständlicher zu beschreiben:
Die "Gruppen" sind quasi die 1-,2-,3-,...,10-stelligen Kombinationen.
Also:
1-stellige: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
2-stellige: (1,2), (1,3),...(2,3), (2,4),...bis (9,10)
3-stellige: (1,2,3), (1,2,4),...bis (8,9,10)
4-stellige: (1,2,3,4)....(7,8,9,10)
usw.
ich hoffe das Prinzip wird klar. Im Endeffekt könnte man das ganze wahrscheinlich auch als "Zustände" beschreiben. Also entweder ist eine Zahl dabei oder nicht. Und davon dann alle möglichen Kombinationen.
VG
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.448
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 02.05.2017, 22:41
Titel:
|
|
Hallo,
jetzt ja. Der Begriff Kombinationen war irreführend.
1 steht für verwendet, 0 für nicht verwendet.
Grüße,
Harald
|
|
|
KP1988 |
Themenstarter
Forum-Newbie
|
|
Beiträge: 5
|
|
|
|
Anmeldedatum: 01.05.17
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 02.05.2017, 22:48
Titel:
|
|
Vielen Dank schon mal!
Magst du das vllt noch etwas erläutern? Ich kann mir darunter gerade nicht viel vorstellen...
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.448
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 02.05.2017, 22:52
Titel:
|
|
Hallo,
die Zahlen werden in Binärzahlen umgewandelt. Jede Stelle entspricht einer Zahl und besagt, ob diese Zahl gewählt werden soll (1) oder nicht (0).
Da dec2bin das ganze als Char Array zurückgibt, wird es noch in Zahlen umgewandelt.
Grüße,
Harald
|
|
|
KP1988 |
Themenstarter
Forum-Newbie
|
|
Beiträge: 5
|
|
|
|
Anmeldedatum: 01.05.17
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 02.05.2017, 23:07
Titel:
|
|
Puhhh...
Also kann ich die Zahlen, die ich verwenden möchte, dann in einen Vektor schreiben?
Oder ist das das "Char Array"?
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.448
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 02.05.2017, 23:14
Titel:
|
|
Hallo,
du kannst z.B. zeilenweise arbeiten und find verwenden.
Alternativ kannst du über verschiedene zweite Eingabeargumente von combnk iterieren und das "irgendwie" untereinanderhängen. "Irgendwie", weil die verschiedenen Rückgaben naturgemäß eine unterschiedliche Spaltenzahl haben.
Hilfreich kann auch sein, wenn du mal beschreibst, was du mit diesen Kombinationen eigentlich machen möchtest.
Grüße,
Harald
|
|
|
KP1988 |
Themenstarter
Forum-Newbie
|
|
Beiträge: 5
|
|
|
|
Anmeldedatum: 01.05.17
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 03.05.2017, 12:28
Titel:
|
|
|
|
|
Hallo Harald,
alles klar, ich versuche das mal zu beschreiben
Also die ganzen Kombinationen dienen dazu, aus einer Anzahl von (aktuell) 10 Anlagen diejenigen auszuwählen, die die Anforderungen am besten erfüllen.
Als Eingangsgrößen hat jedes Angebot Werte für Menge, Preis und eine Wahrscheinlichkeit.
Die Anforderungen sind so definiert, dass eine gewisse Gesamtmenge vorhanden sein muss. Alle Kombinationen mit kleineren Mengen würden dementsprechend nicht mehr als mögliche Lösung zur Verfügung stehen.
Innerhalb jeder Kombination muss dann wiederum eine Kombination erfolgen, also bspw. bei 1-2-4-6 gibt es dann die Fälle:
- keine funktioniert
- Nr. 1 (bzw. Nr. 2 oder 4 oder 6) funktioniert
- Nr. 1 & 2 (bzw. 1 & 4,...) funktionieren
- etc.
Für jede dieser Fälle wird dann wieder geschaut ob die erforderliche Menge erreicht wird. Alle Wahrscheinlichkeiten der Fälle, die die erforderliche Menge erreichen, werden addiert und stellen dann die Wahrscheinlichkeit der jeweiligen Kombination dar.
Im letzten Schritt soll unter den Kombinationen, die die erforderliche Wahrscheinlichkeit erreichen, die kostengünstigste ausgewählt werden (Menge*Preis).
Ich hoffe, das war jetzt einigermaßen verständlich bzw. hat gezeigt in welchem Zusammenhang das ganze steht.
Viele Grüße
KP1988
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.448
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 03.05.2017, 14:39
Titel:
|
|
Hallo,
also ein Optimierungsproblem. Je nachdem, was genau optimiert werden soll, kann es deutlich leichter sein, einen fertigen Löser zu verwenden. Zunächst würde ich da an ga oder intlinprog denken.
Für weitere Unterstützung müsstest du die Anforderungen noch konkretisieren.
Grüße,
Harald
|
|
|
|
|
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.
|
|