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

> Fakultät : 10 bis 15 Permut. -> Fehlermeldg: Out of

 

stoxxii

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.12.2010, 10:17     Titel: > Fakultät : 10 bis 15 Permut. -> Fehlermeldg: Out of
  Antworten mit Zitat      
Hi User Gemeinde,

(zuerst sorry, daß ich die Excel Datei anhängen mußte, weil in meiner Matlab-Datei Fremd-Functionens enthalten sind ) Crying or Very sad

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 ??? Rolling Eyes
Also alle Ort nur in einer Richtung abfahren nicht nochmal anders herum ...
Vielen Dank vorab für Zeit & Müh.

beste Grüße
stoxxii

_Rundreise - Problem__.xls
 Beschreibung:

Download
 Dateiname:  _Rundreise - Problem__.xls
 Dateigröße:  15 KB
 Heruntergeladen:  838 mal


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 17.12.2010, 15:03     Titel: Re: > Fakultät : 10 bis 15 Permut. -> Fehlermeldg: Ou
  Antworten mit Zitat      
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
Code:
P = VChooseKO(uint8(1:10), 10)

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
Private Nachricht senden Benutzer-Profile anzeigen
 
stoxxii

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.12.2010, 16:00     Titel: > VChooseKO(uint8(1:10), 10)
  Antworten mit Zitat      
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

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 17.12.2010, 17:12     Titel:
  Antworten mit Zitat      
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.
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: 17.12.2010, 18:01     Titel: Re: > VChooseKO(uint8(1:10), 10)
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
 
stoxxii

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.12.2010, 12:42     Titel: halloo Jan, PC - Einstellung 32 bit zu Matlab 64 bit
  Antworten mit Zitat      
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

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 18.12.2010, 16:26     Titel: Re: halloo Jan, PC - Einstellung 32 bit zu Matlab 64 bit
  Antworten mit Zitat      
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
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 - 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.