AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein MonteCarlo....Optimierung des Grundgedankens?
Thema durchsuchen
Ansicht
Themen-Optionen

MonteCarlo....Optimierung des Grundgedankens?

Ein Thema von glkgereon · begonnen am 28. Feb 2006 · letzter Beitrag vom 1. Mär 2006
Antwort Antwort
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#1

MonteCarlo....Optimierung des Grundgedankens?

  Alt 28. Feb 2006, 20:53
Hi,

der Grundgedanke der Monte-Carlo-Simulation zur Berechnung ist ja folgender:

ganz viele zufällige punkte suchen und die zählen die im kreis sind...dann ist pi:=4*PunkteImKreis/PunkteGesamt

wäre nicht folgender Ansatz viel Performanter zu realisieren? (da kein zufallsgenerator...)
man nimmt keine zufälligen punkte sondern erstellt ein Raster (zB 256*256) und prüft jeden punkt.
Vorteile:
- kein zufall => weniger rechenaufwand (?)
- keine Abweichung (Die zufällige Abweichung die zwangsweise aus den zufälligen Punkten entsteht fällt weg)
- zwangsläufig nur Integer-Rechnung...

Die Genauigkeit könnte man durch ein einfaches vergrößern des Rasters erreichen...


Würde das funktionieren?
Wäre das theoretisch schneller?
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Benutzerbild von stoxx
stoxx

Registriert seit: 13. Aug 2003
1.111 Beiträge
 
#2

Re: MonteCarlo....Optimierung des Grundgedankens?

  Alt 28. Feb 2006, 21:08
also es geht ja gerade um die Zufälligkeit bei der Sache

Zitat:
der Grundgedanke der Monte-Carlo-Simulation zur Berechnung ist ja folgender:
das ist nicht der Grundgedanke, sondern eine einzige kleine praktische Anwendung von Monte Carlo
Phantasie ist etwas, was sich manche Leute gar nicht vorstellen können.
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#3

Re: MonteCarlo....Optimierung des Grundgedankens?

  Alt 28. Feb 2006, 21:10
Zitat von stoxx:
also es geht ja gerade um die Zufälligkeit bei der Sache
Aber wenn man es oft genug macht nähert man sich der absolut gleichmäßigen verteilung unendlich nahe an (theoretisch^^)
und dann kann man doch gleich die komplett gleichmäßige verteilung nehmen, oder nicht?
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#4

Re: MonteCarlo....Optimierung des Grundgedankens?

  Alt 28. Feb 2006, 21:15
Zitat von glkgereon:
Aber wenn man es oft genug macht nähert man sich der absolut gleichmäßigen verteilung unendlich nahe an (theoretisch^^)
und dann kann man doch gleich die komplett gleichmäßige verteilung nehmen, oder nicht?
Du sagst es doch selbst: Theoretisch naehert sich das Ding der absolut gleichmaessigen Verteilung an, wird aber erst in der Unendlichkeit genau gleich sein. Das heisst aber nicht, dass ich deshalb gleich schon die gleichmaessige Verteilung nehmen kann, schliesslich wird immer ein Unterschied da sein, auch wenn er noch so verschwindend gering ist

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#5

Re: MonteCarlo....Optimierung des Grundgedankens?

  Alt 28. Feb 2006, 21:15
Da hast Du im Prinzip Recht, nur ist dein Gedankengang hier nicht wirklich begründet, aus mehreren Gründen:
Die Pi-Bestimmung über die Monte Carlo Methode ist nur ein simples Anwendungsbeispiel, das immer wieder gern herangezogen wird, um die Methode verständlich rüber zu bringen. Und weiter probier ich mal, die die Statistik etwas näher zu bringen. Du gibtst Dir ein 100x100 Raster, und nach deiner Methode kriegst Du ja 10.000 Testfälle. Über Zufall kann ich beliebig viele Testfälle generieren lassen, und krieg daduch natürlich auch irgendwann die gleiche Genauigkeit raus.

Es geht also nicht drum, zu zeigen dass die MCM performant, genau und schnell ist. Sie ist einfach nur eine Methode, über Zufälle gewisse Aussagen treffen zu können. In deinem Pi-Beispiel gibt es viele andere Methoden, die viel genauer sind und vor allem viel schneller sind, diese 3,1415... zu bestimmen. Das ist aber leider nicht bei allen physikalischen, biologischen, mathematischen... Vorgängen möglich, einen geeigneten, schnellen Algo zu finden, da zu oft viel zu viel Randwertprobleme einfliessen, die eine genau Bestimmung einfach unmöglich machen. Und genau da greift die MCM, da sie unabhängig von der Komplexität halbwegs vernünftige Aussagen machen kann. Voraussetzung ist aber immer wieder irgendein grundlegendes Modell, denn sonst nützt auch die MCM nichts. Beispiel aus meiner Diplomarbeit: Geht ein Lichtstrahl durch ein nicht transparentes Medium, so wird die Intensität geschwächt, und zwar exponentiell mit der Tiefe. Diese Kenntnis muss man haben, um über die MCM einen Lichtstrahl zu simulieren.
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#6

Re: MonteCarlo....Optimierung des Grundgedankens?

  Alt 1. Mär 2006, 18:59
hmm....prinzipiell hat Jelly ja recht

Aber ich konnte es natürlich nicht lassen

Delphi-Quellcode:
function CalculatePi(Raster: Int64): Extended;
var i: Integer;
    Upper, Lower, T, RQuad: Int64;
    E: Currency; //Currency...selbe genauigkeit, 2 Byte weniger...die Nachkommastellen interessieren hier eh nicht
begin
  Upper:=0; Lower:=0;
  RQuad:=Raster*Raster; //Einmal Quadrieren reicht
  for i:=0 to Raster-1 do
    begin
    T:=i+1; // Wenns Integer bleibt gibts nen Overflow
    E:=Sqrt(RQuad - T*T);
    Inc(Upper,Ceil(E)); //Max und Min zählen
    Inc(Lower,Floor(E));
    end;
  Result:=2*(Upper+Lower)/RQuad; //Aus Durchschnitt PI berechnen
end;
relevante rechenzeiten...
die gibts erst ab eine Rastergröße von ca. 1.000.000 (Athlon 2600+)

Übersicht:
Delphi-Quellcode:
Raster Millisek Genauigkeit(Stellen)
1000 0 2
10000 2 4
100000 21 5
1000000 214 6
10000000 2225 7
100000000 22681 8
gemessen mit QueryPerformanceCounter....

Sinnlos...aber es geht...
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz