|
|
|
Programmieren von Brute Force |
|
| Troll |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 05.06.2012, 11:17
Titel: Programmieren von Brute Force
|
 |
Hallo,
ich hab ein Problem. Ich bin Matlab Anfänger und will eine Brute Force Methode programmieren. Dabei hab ich eine feste Anzahl an Prinzipien die ich vergleichen will und eine variable Anzahl an Aufgaben.
Dementsprechend würde ich bei 5 Pinzipien und 3 Aufgaben 125 Möglichkeiten durchprobieren müssen.
1 1 1
1 1 2
1 1 3
...
1 3 1
1 3 2
...
5 5 1
5 5 2
5 5 3
5 5 4
5 5 5
Kann mir einer sagen, wie ich das programmieren kann? Am besten gleich mit einer variablen Aufgabenzahl.
Vielen Dank
|
|
|
|
|
|
| Bluesmaster |

Forum-Century
|
 |
Beiträge: 203
|
 |
|
 |
Anmeldedatum: 13.11.11
|
 |
|
 |
Wohnort: Gera
|
 |
|
 |
Version: 2012a
|
 |
|
|
 |
|
Verfasst am: 05.06.2012, 11:35
Titel:
|
 |
Das ist sehr abstrakt beschrieben (imo).
Unter Brute-Force verstehe ich Algorithmen, ("Prinzipien"?) die für eine
vorgegebene "Aufgabe" alle oder viele mögliche Verlaufe durchexerzieren
Falls die feste an Anzahl von "Prinzipien" Algorithmen sein sollen dann würde
ich die als matlab-"function" kapseln so, dass die "Aufgabe" als funktionsparameter übergeben wird und dann alle Aufgaben durchlaufen.
Aber ich werde das Gefühl nicht los, dass wir uns hier gründlich falsch verstehen. Naja irgendwie muss man sich ja herantasten
Gruß
Blues
|
|
|
|
| Troll |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 05.06.2012, 12:15
Titel:
|
 |
Erstmal danke für deine Antwort, aber wie du schon vermutet hast, hab ich das anders gemeint. Ich versuche mich mal anders auszudrücken.
Für mich hieß Brute Force bis jetzt immer das es ein Algorithmus ist der alle möglichen Kombinationen ausprobiert. Hier habe ich Kombinationen bzgl. der Prinzipien.
Generell habe ich 5 feste Prinzipien und eine unterschiedliche Anzahl von Aufgaben. Es sollen die Prinzipien bzgl. jeder Aufgaben verglichen werden. Deshalb auch meine Darstellung der Zahlenkombinationen im ersten Beitrag.
Kannst du meinen Ausführungen jetzt besser folgen?
Gruß
Troll
|
|
|
|
| Bluesmaster |

Forum-Century
|
 |
Beiträge: 203
|
 |
|
 |
Anmeldedatum: 13.11.11
|
 |
|
 |
Wohnort: Gera
|
 |
|
 |
Version: 2012a
|
 |
|
|
 |
|
Verfasst am: 05.06.2012, 14:11
Titel:
|
 |
Der Begriff "Prinzip" irritiert. Was ist damit gemeint?
Ist dein "Prinzip" ein konkreter Brute-Force-Algorithmus der eine "Aufgabe" auf eine bestimmte Art und Weise löst und du möchtest diese
"Art-und-Weisen" auf Performence vergleichen?
Ich habe dein Zahlenbeispiel gesehen mathematisch ist das
"Ziehen mit zurücklegen, mit Beachtung der Reihenfolge"
also 5^3 Möglichkeiten
Falls es dir nur darum geht alle diese Möglichkeiten zu erzeugen....
tja...eine Lücke in Matlab für "K-Permutationen" mit Wiederholung gibt
es nix aber es gibt das hier:
http://www.mathworks.com/matlabcent.....inations-and-permutations
|
|
|
|
| Troll |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 05.06.2012, 15:31
Titel:
|
 |
Der Begriff Prinzip kann auch synonym mit dem Begriff Methode verwendet werden.
Den Link werde ich mir mal angucken.
|
|
|
|
| eey |

Forum-Fortgeschrittener
|
 |
Beiträge: 86
|
 |
|
 |
Anmeldedatum: 31.03.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 06.06.2012, 13:00
Titel:
|
 |
| |
 |
|
Also für mich klingt das so als wäre mit "Prinzip" einfach eine Variable gemeint, also eine Zahl aus einem bestimmten Wertebereich. Bei dir wären das dann 3 Variablen die jeweils die Werte 1,2,3,4 und 5 annehmen können.
Wenn das gemeint ist, kann man das eigentlich sehr einfach mit ineinander geschachtelten For-Schleifen lösen. Beispiel:
Gegeben sei folgende 2-Dimensionale Funktion:
Gesucht sei das Minimum dieser Funktion. Da die Funktion nicht stetig ist (nur für Natürliche Zahlen definiert), muss man hier wohl Brute-Force anwenden um das Minimum zu finden.
Mit ein bisschen überlegen sieht man natürlich dass die Funktion genau dann ihr Minimum erreicht wenn n1 + n2 = 5 oder n1 + n2 = 4 gilt, denn dann hat die Fakultät ihr Minimum in den Natürlichen Zahlen, nämlich 1.
Da es mehrere Möglichkeiten gibt 4 oder 5 zu bilden (1+3 oder 2+2 oder 3+2 usw.) hat die Funktion mehrere Minima. Den Wertebereich kann man ja jetzt ganz einfach Brute-Forcen:
Diese Funktion Bruteforced jetzt die Werte n1 und n2 jeweils von 1 bis 10 und ermittlet daraus das Minimum (momentan nur ein einziges von vielen, aber hier gehts ja nur ums Prinzip).
Das müsstest du so auch für dein Problem anwenden können, wenn ich dich richtig verstanden habe.
Schöne Grüße,
eey
|
|
|
|
|
|
|
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 - 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.
|
|