|
|
> Fakultät : 10 bis 15 Permut. -> Fehlermeldg: Out of |
|
stoxxii |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 17.12.2010, 10:17
Titel: > Fakultät : 10 bis 15 Permut. -> Fehlermeldg: Out of
|
|
|
|
|
Hi User Gemeinde,
(zuerst sorry, daß ich die Excel Datei anhängen mußte, weil in meiner Matlab-Datei Fremd-Functionens enthalten sind )
habe nun mal gemerkt, wo mein Rechner oder Matlab anfängt zu
verrecken ... bei Using Function "perms(D)" mit D = (1:10, 1:10)
Ich habe quasi nur eine Distanz-Matrix D und ich suche alle Möglichkeiten , um die Orte / City abzufahren ,
often called : Travelling Salesman Problem - Rundreisen Thematik !!!
Mein Matlab bzw. mein Intel Centrino 1.4 GHz mit 1 GB RAM bringt
Fehlermeldung : "out of Memory" --- oder soo ähnlich
also an der Stelle wo ich Function perms nutze , da gibt Matlab auf ...
Hätte einer von euch Mathematikern oder Informatikern eine Idee, wie ich wenigstens bis ca. 14 oder 16 Permutationen komme ???
Bzw. einer den Mathe-Plan , wie ich die Anzahl der Permutationen um die Hälfte kürze, weil mir eine Fahrtrichtung ausreicht ???
Also alle Ort nur in einer Richtung abfahren nicht nochmal anders herum ...
Vielen Dank vorab für Zeit & Müh.
beste Grüße
stoxxii
Beschreibung: |
|
Download |
Dateiname: |
_Rundreise - Problem__.xls |
Dateigröße: |
15 KB |
Heruntergeladen: |
838 mal |
|
|
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 17.12.2010, 15:03
Titel: Re: > Fakultät : 10 bis 15 Permut. -> Fehlermeldg: Ou
|
|
|
|
|
Hallo stoxxii,
Zitat: |
habe nun mal gemerkt, wo mein Rechner oder Matlab anfängt zu verrecken ... bei Using Function "perms(D)" mit D = (1:10, 1:10) |
Wenn Du "help perms" eingibst, wird erklärt, dass PERMS nur ein Argument entgegen nimmt (zuminest in Matlab 2009a). Ausserdem steht dort, dass PERMS nur für Zahlen kleiner 10 sinnvoll ist. Zwar nimmt PERMS(1:10) nur 290 MB Ram in Anspruch, aber während der Erstellung wird temporär mehr Speicher verwendet.
Du könntest ein C-Mex-File statt PERMS verwenden:
http://www.mathworks.com/matlabcentral/fileexchange/26397
Das braucht auf meinem 1.5GHz Pentium-M nur 1.0 sec, statt der 18.6 für PERMS.
Zitat: |
Hätte einer von euch Mathematikern oder Informatikern eine Idee, wie ich wenigstens bis ca. 14 oder 16 Permutationen komme ??? |
16 Fakultät Möglichkeiten? Das geht auch mit VChooseKO, wenn Du ein 64-bit-Matlab hast, und natürlich 20 Terabyte freies RAM.
Und wenn Du dann noch eine tausendstel Sekunde brauchst, um die Kosten für eine bestimmte Strecke zu finden, bist Du in etwa 663.46 Jahren fertig mit dem Rechnen.
Kann es sein, dass Dich jemand mit dem Problem auf den Arm nehmen möchte?
Gruß, Jan
|
|
|
stoxxii |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 17.12.2010, 16:00
Titel: > VChooseKO(uint8(1:10), 10)
|
|
Danke Jan für die Erläuterungen ...
Habe leider alte Matlab Vers. 6.5 R13.... weiß nicht ,
ob ich dort deinen Befehl VchooseKo finden kann ...
bis dann
uwe
|
|
|
denny |
Supporter
|
|
Beiträge: 3.853
|
|
|
|
Anmeldedatum: 14.02.08
|
|
|
|
Wohnort: Ulm
|
|
|
|
Version: R2012b
|
|
|
|
|
|
Verfasst am: 17.12.2010, 17:12
Titel:
|
|
Hallo
an dieser Stelle PERMS ist schlichtweg falsch.Du kannst dir einfach nicht alle Kombinationen berechen, wie Jan es schon verdeutlicht hat. Du sollst mal dich in die Thematik einlesen. Es gibt Algorithmen für die kürszeste Weg-Suche wie z.b Dijkstra-Algo.
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 17.12.2010, 18:01
Titel: Re: > VChooseKO(uint8(1:10), 10)
|
|
Hallo stoxxii,
Zitat: |
Habe leider alte Matlab Vers. 6.5 R13.... weiß nicht ,
ob ich dort deinen Befehl VchooseKo finden kann ... |
Ich hatte einen Link angegeben, bei dem man VChooseKO downloaden kannst. Bitte schau dort doch mal nach. Es ist auch zu Matlab 6.5 kompatibel.
Die 600 Jahre Rechenzeit beeindrucken Dich gar nicht?!
Gruß, Jan
|
|
|
stoxxii |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 18.12.2010, 12:42
Titel: halloo Jan, PC - Einstellung 32 bit zu Matlab 64 bit
|
|
Halloo Jan,
danke für die Tips soweit und die ausführlichen Erklärungen ...
oben hattest du geschrieben folgendes :
" Das braucht auf meinem 1.5GHz Pentium-M nur 1.0 sec, statt der 18.6 für PERMS. "
Ich habe 2009 altes IBM gekauft mit Intel DuoCore T2500 CPU, 2 GHz,
2 GB Ram, Windows XP Profess.
Habe heute Gehirn "versucht" einzuschalten und weiter recherchiert ...
Matlab arbeitet mit 64 Bit - Architektur und mein IBM DuoCore
nur mit 32 Bit-Architektur ???
Könnte ich meinen Rechner etwas schneller machen, damit sogar mein alter ACER mit Centrino 1,4 GHz auch noch diese Aufgabe schafft,
so wie deiner mit 1,5 GHz ???
Danke für hilfreiche Tips...
schönes weekend
gruß uwe
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 18.12.2010, 16:26
Titel: Re: halloo Jan, PC - Einstellung 32 bit zu Matlab 64 bit
|
|
|
|
|
Hallo stoxxii,
Zitat: |
Matlab arbeitet mit 64 Bit - Architektur und mein IBM DuoCore
nur mit 32 Bit-Architektur ??? |
Es gibt folgende Möglichkeiten:
32bit CPU, 32bit OS, 32bit Matlab (z.B. mein Pentium-M)
32/64bit CPU, 32bit OS, 32bit Matlab (So weit ich weiß >= CoreDuo)
32/64bit CPU, 64bit OS, 32bit Matlab
32/64bit CPU, 64bit OS, 64bit Matlab
Andere Kombinationen sind nicht möglich.
Solange die Probleme klein bleiben, also 2GB Ram reichen, ist meistens(!) 32/64bit CPU, 32bit OS, 32bit Matlab am schnellsten.
Zitat: |
Könnte ich meinen Rechner etwas schneller machen, damit sogar mein alter ACER mit Centrino 1,4 GHz auch noch diese Aufgabe schafft, so wie deiner mit 1,5 GHz ??? |
Rechner "schneller machen" geht nicht. Aber wenn ich es mit 1.5GHz und 512MB Ram schaffe, läuft es auch auf 1.4GHz und 1024MB im Sekundenbereich --- falls nicht andere Variablen das Ram zugekleistert haben. VChooseKO ist dabei sehr genügsam mit dem Speicher, weil es keine temporären Arrays erstellt und direkt mit UINT8 Arrays arbeitet (1 Byte pro Zahl, statt 8 bei DOUBLES in PERMS).
Aber: Ich spreche von den Permutationen von 1:10, vielleicht auch von 1:11. 1:16 ist nur mit einem Cluster aus 1024 64-bit Rechnern machbar, und legt den bei einem naiven Ansatz für ein halbes Jahr lahm.
Für Travelling-Salesman braucht man also verflixt ausgebuffte Ansätze.
Gruß, Jan
|
|
|
|
|
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.
|
|