<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Hard-core-Prozess</id>
	<title>Hard-core-Prozess - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Hard-core-Prozess"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Hard-core-Prozess&amp;action=history"/>
	<updated>2026-06-03T21:29:37Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Hard-core-Prozess&amp;diff=2254553&amp;oldid=prev</id>
		<title>imported&gt;Sigma^2: /* Erster matérnscher Prozess */  + int. Link</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Hard-core-Prozess&amp;diff=2254553&amp;oldid=prev"/>
		<updated>2023-06-16T11:59:06Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Erster matérnscher Prozess: &lt;/span&gt;  + int. Link&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Datei:Poisson disk sampling.svg|mini|hochkant=1.3|Beispiel eines zweidimensionalen Hard-core-Punktfeldes. Der Mindestabstand zwischen den Punkten wird durch die einander nicht überlappenden Kreise veranschaulicht; der Durchmesser der Kreise entspricht dem Mindestabstand.]]&lt;br /&gt;
&lt;br /&gt;
Ein &amp;#039;&amp;#039;&amp;#039;Hard-core-Prozess&amp;#039;&amp;#039;&amp;#039; ist ein [[stochastischer Prozess|stochastischer]] [[Punktprozess]], bei dem aufeinanderfolgende Ereignisse einen festgelegten Mindestabstand zueinander einhalten. Aus Sicht der [[Stochastische Geometrie|stochastischen Geometrie]] bestehen &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;-dimensionale Punktfelder, die durch Hard-core-Prozesse erzeugt wurden, aus den Mittelpunkten &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;-dimensionaler, sich nicht gegenseitig durchdringender [[Kugel#Verallgemeinerung|Kugeln]] mit vorgegebenem Durchmesser. Siehe auch [[Modell harter Kugeln]].&lt;br /&gt;
&lt;br /&gt;
Je nach der Art und Weise, wie die Punkte erzeugt werden, lassen sich verschiedene Hard-core-Prozesse mit unterschiedlichen Eigenschaften beschreiben. Hard-core-Prozesse werden hauptsächlich in der [[Theoretische Biologie|theoretischen Ökologie]] und [[Kondensierte Materie|Physik der kondensierten Materie]] zur Modellierung verschiedener Phänomene angewandt. Weitere Anwendungen finden Hard-core-Prozesse in der [[Computergrafik]], wo sie auch als &amp;#039;&amp;#039;&amp;#039;Poisson-disk-&amp;#039;&amp;#039;&amp;#039; oder &amp;#039;&amp;#039;&amp;#039;Blue-noise-Abtastung&amp;#039;&amp;#039;&amp;#039; bezeichnet werden.&lt;br /&gt;
&lt;br /&gt;
== Beispiel: Einparkproblem ==&lt;br /&gt;
Ein einfaches Beispiel eines Hard-core-Prozesses ist das „Random car parking problem“ („Problem des zufälligen Einparkens“), das 1958 von [[Alfréd Rényi]] beschrieben wurde.&amp;lt;ref&amp;gt;Alfréd Rényi: &amp;#039;&amp;#039;On a one-dimensional problem concerning random space-filling.&amp;#039;&amp;#039; A Magyar Tudományos Akadémia Matematikai Kutató Intézetének Közleményei 3 (1958): 109–127, {{ISSN|0541-9514}}&amp;lt;/ref&amp;gt; Auf der Strecke &amp;lt;math&amp;gt;[0, 1]&amp;lt;/math&amp;gt; (der Straße) werden nacheinander zufällig Positionen gewählt. Um jede dieser Positionen wird ein Intervall der Länge &amp;lt;math&amp;gt;\delta&amp;lt;/math&amp;gt; (ein Auto) platziert, sofern es keines der bisher platzierten Intervalle überlappt. Dabei handelt es sich um einen eindimensionalen Hard-core-Prozess, da die Mittelpunkte der Intervalle einen Mindestabstand von &amp;lt;math&amp;gt;\delta&amp;lt;/math&amp;gt; einhalten.&lt;br /&gt;
&lt;br /&gt;
:[[Datei:Random car parking problem.svg|500px]]&lt;br /&gt;
&lt;br /&gt;
Die rein zufällige Wahl von Positionen, ohne Einhaltung eines Mindestabstands, wird durch den [[Poisson-Prozess]] modelliert. Ein Beispiel für einen Poisson-Prozess ist das Auftreffen von Regentropfen auf dem Boden. Der Poisson-Prozess kann demnach als Hard-core-Prozess mit &amp;lt;math&amp;gt;\delta=0&amp;lt;/math&amp;gt; aufgefasst werden.&lt;br /&gt;
&lt;br /&gt;
Meist sind nur &amp;#039;&amp;#039;vollständige&amp;#039;&amp;#039; Hard-core-Punktfelder von praktischem Interesse, also Punktfelder, bei denen der zur Generierung verwendete Hard-core-Prozess beendet ist und kein weiterer Punkt mehr in die vorgegebene Fläche hinzugefügt werden kann. Je nach Mindestabstand und je nachdem, wie eng ein Prozess die Punkte platziert, enthält ein vollständiges Hard-core-Punktfeld mehr oder weniger Punkte. Rényi interessierte sich für den [[Erwartungswert]] der Anzahl von Intervallen, die durch zufälliges Einparken platziert werden können.&lt;br /&gt;
&lt;br /&gt;
== Verschiedene Hard-core-Prozesse und ihre Simulation ==&lt;br /&gt;
=== Grundlegende Methoden ===&lt;br /&gt;
==== Simple sequential inhibition ====&lt;br /&gt;
Das im vorherigen Abschnitt beschriebene Prozess beim Einparkproblem lässt sich auf zwei und höhere Dimensionen verallgemeinern; er wird in der Statistik im Allgemeinen als &amp;#039;&amp;#039;Simple sequential inhibition&amp;#039;&amp;#039; (SSI), in der Physik und Chemie als &amp;#039;&amp;#039;Random sequential adsorption&amp;#039;&amp;#039; (RSA), in der [[Sequenzierung (Produktion)|Sequenzplanung]] als &amp;#039;&amp;#039;On-line packing&amp;#039;&amp;#039; und in der Computergrafik als &amp;#039;&amp;#039;Dart throwing&amp;#039;&amp;#039; bezeichnet. Hierbei werden nach und nach Punkte von einem Poisson-Prozess erzeugt, aber nur jene berücksichtigt, die den Mindestabstand zu allen bisher beibehaltenen Punkten einhalten.&lt;br /&gt;
&lt;br /&gt;
[[Algorithmus|Algorithmisch]] lässt sich die Erzeugung von SSI-Punktfeldern mit folgendem [[Pseudocode]] beschreiben. ξ steht hierbei für eine zufällig generierte reelle Zahl zwischen 0 und 1 (oder, bei mehrdimensionalen Punktfeldern, für [[Tupel]] solcher Zufallszahlen).&lt;br /&gt;
&lt;br /&gt;
 &amp;#039;&amp;#039;Punktfeld&amp;#039;&amp;#039; ← (leer)&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;Wiederhole&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;n&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;mal&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
   &amp;#039;&amp;#039;Kandidat&amp;#039;&amp;#039; ← ξ&lt;br /&gt;
   &amp;#039;&amp;#039;&amp;#039;Für jeden&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;Existierender_Punkt&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;in&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;Punktfeld&amp;#039;&amp;#039;&lt;br /&gt;
     &amp;#039;&amp;#039;&amp;#039;Wenn&amp;#039;&amp;#039;&amp;#039; ||&amp;#039;&amp;#039;Kandidat&amp;#039;&amp;#039; - &amp;#039;&amp;#039;Existierender_Punkt&amp;#039;&amp;#039;|| &amp;lt; δ&lt;br /&gt;
       &amp;#039;&amp;#039;&amp;#039;Nächstes&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;n&amp;#039;&amp;#039;&lt;br /&gt;
   Füge &amp;#039;&amp;#039;Kandidat&amp;#039;&amp;#039; zu &amp;#039;&amp;#039;Punktfeld&amp;#039;&amp;#039; hinzu&lt;br /&gt;
&lt;br /&gt;
==== Erster matérnscher Prozess ====&lt;br /&gt;
[[Bertil Matérn]] beschrieb drei Arten von Hard-core-Prozessen, die durch [[Ausdünnung]] eines Poisson-Prozesses entstehen, d.&amp;amp;nbsp;h. durch das nachträgliche Löschen bestimmter Punkte, die von einem Poisson-Prozesses erzeugt wurden.&amp;lt;ref&amp;gt;Bertil Matérn: &amp;#039;&amp;#039;Spatial variation.&amp;#039;&amp;#039; Meddelanden från Statens Skogsförsöksanstalt 49 (1960): 1–144, {{ISSN|0369-2167}}. Siehe auch Bertil Matérn: &amp;#039;&amp;#039;Spatial variation&amp;#039;&amp;#039; (=[[Lecture Notes in Statistics]] 36), S. 47 ff. Springer, Berlin 1986, ISBN 3-540-96365-0&amp;lt;/ref&amp;gt; Anders als beim im vorherigen Abschnitt beschriebenen SSI-Prozess werden Punkte erst gelöscht, nachdem das vollständige Poisson-Punktfeld erzeugt wurde. Beim ersten matérnschen Prozess werden alle Punkte gelöscht, deren nächstgelegener Nachbarpunkt näher liegt als der Mindestabstand.  Falls mehrere Punkte zu nahe beieinander liegen, so werden sie &amp;#039;&amp;#039;alle&amp;#039;&amp;#039; gelöscht.&lt;br /&gt;
&lt;br /&gt;
Der Algorithmus zur Erzeugung von Punktfeldern nach dem ersten matérnschen Prozess ist wie folgt:&lt;br /&gt;
&lt;br /&gt;
 &amp;#039;&amp;#039;Punktfeld&amp;#039;&amp;#039; ← (leer)&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;Wiederhole&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;n&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;mal&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
   &amp;#039;&amp;#039;Punkt&amp;#039;&amp;#039; ← ξ&lt;br /&gt;
   Füge &amp;#039;&amp;#039;Punkt&amp;#039;&amp;#039; zu &amp;#039;&amp;#039;Punktfeld&amp;#039;&amp;#039; hinzu&lt;br /&gt;
 &amp;amp;nbsp;&lt;br /&gt;
 &amp;#039;&amp;#039;Zu_löschende_Punkte&amp;#039;&amp;#039; ← (leer)&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;Für jeden&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;Punkt&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;in&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;Punktfeld&amp;#039;&amp;#039;&lt;br /&gt;
   &amp;#039;&amp;#039;&amp;#039;Für jeden&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;Nachbarpunkt&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;in&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;Punktfeld&amp;#039;&amp;#039;&lt;br /&gt;
     &amp;#039;&amp;#039;&amp;#039;Wenn&amp;#039;&amp;#039;&amp;#039; ||&amp;#039;&amp;#039;Punkt&amp;#039;&amp;#039; - &amp;#039;&amp;#039;Nachbarpunkt&amp;#039;&amp;#039;|| &amp;lt; δ&lt;br /&gt;
       &amp;#039;&amp;#039;&amp;#039;Wenn&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;Punkt&amp;#039;&amp;#039; nicht in &amp;#039;&amp;#039;Zu_löschende_Punkte&amp;#039;&amp;#039; vorhanden&lt;br /&gt;
         Füge &amp;#039;&amp;#039;Punkt&amp;#039;&amp;#039; zu &amp;#039;&amp;#039;Zu_löschende_Punkte&amp;#039;&amp;#039; hinzu&lt;br /&gt;
       &amp;#039;&amp;#039;&amp;#039;Nächster&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;Punkt&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;amp;nbsp;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;Für jeden&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;Punkt&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;in&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;Zu_löschende_Punkte&amp;#039;&amp;#039;&lt;br /&gt;
   Lösche &amp;#039;&amp;#039;Punkt&amp;#039;&amp;#039; aus &amp;#039;&amp;#039;Punktfeld&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
==== Zweiter matérnscher Prozess ====&lt;br /&gt;
Beim zweiten matérnschen Prozess werden die vom Poisson-Prozess erzeugten Punkte mit einer aufsteigenden „Markierung“ versehen. Anschließend werden alle Punkte beibehalten, die innerhalb des Mindestabstands keine vorher erzeugten Nachbarpunkte (mit einer niedrigeren Markierung) haben.&lt;br /&gt;
&lt;br /&gt;
Der Algorithmus für den zweiten matérnschen Prozess lautet folgendermaßen:&lt;br /&gt;
&lt;br /&gt;
 &amp;#039;&amp;#039;Punktfeld&amp;#039;&amp;#039; ← (leer)&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;Für jedes&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;k&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;von&amp;#039;&amp;#039;&amp;#039; 1 &amp;#039;&amp;#039;&amp;#039;bis&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;n&amp;#039;&amp;#039;&lt;br /&gt;
   &amp;#039;&amp;#039;Punkt&amp;#039;&amp;#039; ← ξ&lt;br /&gt;
   &amp;#039;&amp;#039;Punkt&amp;#039;&amp;#039;.Markierung ← k&lt;br /&gt;
   Füge &amp;#039;&amp;#039;Punkt&amp;#039;&amp;#039; zu &amp;#039;&amp;#039;Punktfeld&amp;#039;&amp;#039; hinzu&lt;br /&gt;
 &amp;amp;nbsp;&lt;br /&gt;
 &amp;#039;&amp;#039;Zu_löschende_Punkte&amp;#039;&amp;#039; ← (leer)&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;Für jeden&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;Punkt&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;in&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;Punktfeld&amp;#039;&amp;#039;&lt;br /&gt;
   &amp;#039;&amp;#039;&amp;#039;Für jeden&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;Nachbarpunkt&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;in&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;Punktfeld&amp;#039;&amp;#039;&lt;br /&gt;
     &amp;#039;&amp;#039;&amp;#039;Wenn&amp;#039;&amp;#039;&amp;#039; ||&amp;#039;&amp;#039;Punkt&amp;#039;&amp;#039; - &amp;#039;&amp;#039;Nachbarpunkt&amp;#039;&amp;#039;|| &amp;lt; δ und &amp;#039;&amp;#039;Nachbarpunkt&amp;#039;&amp;#039;.Markierung &amp;lt; &amp;#039;&amp;#039;Punkt&amp;#039;&amp;#039;.Markierung&lt;br /&gt;
       &amp;#039;&amp;#039;&amp;#039;Wenn&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;Punkt&amp;#039;&amp;#039; nicht in Zu_löschende_Punkte vorhanden&lt;br /&gt;
         Füge &amp;#039;&amp;#039;Punkt&amp;#039;&amp;#039; zu &amp;#039;&amp;#039;Zu_löschende_Punkte&amp;#039;&amp;#039; hinzu&lt;br /&gt;
       &amp;#039;&amp;#039;&amp;#039;Nächster&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;Punkt&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;amp;nbsp;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;Für jeden&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;Punkt&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;in&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;Zu_löschende_Punkte&amp;#039;&amp;#039;&lt;br /&gt;
   Lösche &amp;#039;&amp;#039;Punkt&amp;#039;&amp;#039; aus &amp;#039;&amp;#039;Punktfeld&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
==== Dritter matérnscher Prozess ====&lt;br /&gt;
Matérn erwähnte kurz einen dritten Prozess, der wie der zweite beginnt. Anschließend wird der gleiche Prozess mit den Punkten des Poisson-Prozesses, die keine Nachbarpunkte der bisher ausgewählten Punkte sind, so lange wiederholt, bis keine neuen Punkte mehr ausgewählt werden können. Der Algorithmus lautet wie folgt:&lt;br /&gt;
&lt;br /&gt;
 &amp;#039;&amp;#039;Punktfeld&amp;#039;&amp;#039; ← (leer)&lt;br /&gt;
 &amp;#039;&amp;#039;Kandidaten&amp;#039;&amp;#039; ← (leer)&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;Für jedes&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;k&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;von&amp;#039;&amp;#039;&amp;#039; 1 &amp;#039;&amp;#039;&amp;#039;bis&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;n&amp;#039;&amp;#039;&lt;br /&gt;
   &amp;#039;&amp;#039;Punkt&amp;#039;&amp;#039; ← ξ&lt;br /&gt;
   &amp;#039;&amp;#039;Punkt&amp;#039;&amp;#039;.Markierung ← k&lt;br /&gt;
   Füge &amp;#039;&amp;#039;Punkt&amp;#039;&amp;#039; zu &amp;#039;&amp;#039;Kandidaten&amp;#039;&amp;#039; hinzu&lt;br /&gt;
 &amp;amp;nbsp;&lt;br /&gt;
 &amp;#039;&amp;#039;NeuePunkte&amp;#039;&amp;#039; ← Wahr&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;Wiederhole solange&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;NeuePunkte&amp;#039;&amp;#039;&lt;br /&gt;
   &amp;#039;&amp;#039;NeuePunkte&amp;#039;&amp;#039; ← Falsch&lt;br /&gt;
   &amp;#039;&amp;#039;&amp;#039;Für jeden&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;Punkt&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;in&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;Kandidaten&amp;#039;&amp;#039;&lt;br /&gt;
     &amp;#039;&amp;#039;&amp;#039;Für jeden&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;Nachbarpunkt&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;in&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;Kandidaten&amp;#039;&amp;#039;&lt;br /&gt;
       &amp;#039;&amp;#039;&amp;#039;Wenn&amp;#039;&amp;#039;&amp;#039; ||&amp;#039;&amp;#039;Punkt&amp;#039;&amp;#039; - &amp;#039;&amp;#039;Nachbarpunkt&amp;#039;&amp;#039;|| &amp;lt; δ und &amp;#039;&amp;#039;Nachbarpunkt&amp;#039;&amp;#039;.Markierung &amp;lt; &amp;#039;&amp;#039;Punkt&amp;#039;&amp;#039;.Markierung&lt;br /&gt;
         &amp;#039;&amp;#039;&amp;#039;Nächster&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;Punkt&amp;#039;&amp;#039;&lt;br /&gt;
     Füge &amp;#039;&amp;#039;Punkt&amp;#039;&amp;#039; zu &amp;#039;&amp;#039;Punktfeld&amp;#039;&amp;#039; hinzu&lt;br /&gt;
     &amp;#039;&amp;#039;NeuePunkte&amp;#039;&amp;#039; ← Wahr&lt;br /&gt;
 &amp;amp;nbsp;&lt;br /&gt;
   &amp;#039;&amp;#039;Zu_löschende_Punkte&amp;#039;&amp;#039; ← (leer)&lt;br /&gt;
   &amp;#039;&amp;#039;&amp;#039;Für jeden&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;Kandidat&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;in&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;Kandidaten&amp;#039;&amp;#039;&lt;br /&gt;
     &amp;#039;&amp;#039;&amp;#039;Für jeden&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;Punkt&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;in&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;Punktfeld&amp;#039;&amp;#039;&lt;br /&gt;
       &amp;#039;&amp;#039;&amp;#039;Wenn&amp;#039;&amp;#039;&amp;#039; ||&amp;#039;&amp;#039;Punkt&amp;#039;&amp;#039; - &amp;#039;&amp;#039;Kandidat&amp;#039;&amp;#039;|| &amp;lt; δ&lt;br /&gt;
         &amp;#039;&amp;#039;&amp;#039;Wenn&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;Punkt&amp;#039;&amp;#039; nicht in Zu_löschende_Punkte vorhanden&lt;br /&gt;
           Füge &amp;#039;&amp;#039;Punkt&amp;#039;&amp;#039; zu &amp;#039;&amp;#039;Zu_löschende_Punkte&amp;#039;&amp;#039; hinzu&lt;br /&gt;
         &amp;#039;&amp;#039;&amp;#039;Nächster&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;Punkt&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;amp;nbsp;&lt;br /&gt;
   &amp;#039;&amp;#039;&amp;#039;Für jeden&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;Punkt&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;in&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;Zu_löschende_Punkte&amp;#039;&amp;#039;&lt;br /&gt;
     Lösche &amp;#039;&amp;#039;Punkt&amp;#039;&amp;#039; aus &amp;#039;&amp;#039;Kandidaten&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Es wurde ein effizienterer Algorithmus zur Simulation von Matérn-III-Punktfeldern beschrieben.&amp;lt;ref&amp;gt;Jesper Møller, Mark L. Huber, Robert L. Wolpert: &amp;#039;&amp;#039;Perfect simulation and moment properties for the Matérn type III process.&amp;#039;&amp;#039; Stochastic Processes and their Applications 120, 11 (Nov. 2010): 2142–2158, {{ISSN|0304-4149}} ([http://vbn.aau.dk/ws/files/17741225/R-2009-12.pdf PDF, 320 kB])&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Dead leaves model ====&lt;br /&gt;
Ein weiterer Hard-core-Prozess ist das Dead leaves model („Modell der abgestorbenen Blätter“), auch Non-overlapping germ-grain model („Modell der nicht-überdeckenden Samenkörner“) genannt.&amp;lt;ref&amp;gt;Georges Matheron: &amp;#039;&amp;#039;Schéma booléen séquentiel de partition aléatoire.&amp;#039;&amp;#039; Note géostatistique N° 89, Centre de Morphologie Mathématique, École des Mines de Paris, Fontainebleau 1968 ([http://cg.ensmp.fr/bibliotheque/public/MATHERON_Rapport_00121.pdf PDF, 550 kB])&amp;lt;/ref&amp;gt; Bei diesem Prozess werden Kreise mit Durchmesser δ zufällig in der Ebene platziert, wobei sie vorhandene Kreise überdecken können. Das Hard-core-Punktfeld besteht aus den Mittelpunkten der nicht überdeckten Kreise (der oberen Schicht), nachdem unendlich viele Kreise hinzugefügt wurden. In endlicher Zeit simulieren lässt sich der Prozess, indem neue Kreise nicht über, sondern unter die vorhandenen Kreise platziert werden und der Vorgang abgebrochen wird, sobald die gesamte Fläche abgedeckt ist.&amp;lt;ref&amp;gt;Wilfrid S. Kendall, Elke Thönnes: &amp;#039;&amp;#039;Perfect simulation in stochastic geometry.&amp;#039;&amp;#039; Pattern Recognition 32 (1999): 1569–1586, {{ISSN|0031-3203}} ([http://www2.warwick.ac.uk/fac/sci/statistics/staff/academic-research/kendall/personal/ppt/323.ps.gz ps.gz, 420 kB])&amp;lt;/ref&amp;gt; Der Prozess lässt sich auf andere Dimensionen übertragen.&lt;br /&gt;
&lt;br /&gt;
=== Simulation von Kugelpackungen ===&lt;br /&gt;
In der [[Kondensierte Materie|Festkörperphysik]] wurden besondere Hard-core-Prozesse entwickelt, um [[Dichteste Kugelpackung|dichte zufällige Kugelpackungen]] zu simulieren und zu untersuchen. Üblicherweise werden zur Simulation dieser Punktprozesse horizontal periodische Randbedingungen gewählt.&lt;br /&gt;
&lt;br /&gt;
==== Sedimentationsalgorithmus ====&lt;br /&gt;
Jodrey und Torys Sedimentationsalgorithmus simuliert Kugelpackungen durch das sukzessive Fallenlassen von Kugeln in einen Container.&amp;lt;ref&amp;gt;W. Steven Jodrey, Elmer M. Tory: &amp;#039;&amp;#039;Simulation of random packing of spheres.&amp;#039;&amp;#039; Simulation 32, 1 (Jan. 1979): 1–12, {{ISSN|0037-5497}}&amp;lt;/ref&amp;gt; Ausgangspunkt ist eine initiale Kugelschicht („Startkombination“) am Boden des Containers. Es werden dann nach und nach Kugeln hinzugefügt, die aufgrund der Gravitation nach unten fallen und dann, ohne abzuprallen, an den existierenden Kugeln entlangrollen, bis sie an einer stabilen Position zum Liegen kommen. Als stabil gilt eine Position, wenn die Kugel mindestens drei Nachbarn (oder den Boden und zwei Nachbarn) berührt. Falls nach einer festgelegten Zeit keine stabile Position für eine Kugel gefunden werden kann, wird der Versuch mit einer neuen Kugel wiederholt. Der Prozess wiederholt sich so lange, bis der Container gefüllt ist.&lt;br /&gt;
&lt;br /&gt;
Die mit dem Sedimentationsalgorithmus erreichbare Dichte ist geringer als bei natürlichen Kugelpackungen; die maximale [[Packungsdichte (Kristallographie)|Packungsdichte]] des Algorithmus beträgt ungefähr 0,58.&amp;lt;ref&amp;gt;William M. Visscher, M. Bolsterli: &amp;#039;&amp;#039;Random Packing of Equal and Unequal Spheres in Two and Three Dimensions.&amp;#039;&amp;#039; Nature 239 (27. Okt. 1972): 504–507, {{ISSN|0028-0836}}. Zitiert in Antje Elsner: &amp;#039;&amp;#039;Computergestützte Simulation und Analyse zufälliger dichter Kugelpackungen,&amp;#039;&amp;#039; S. 21. Dissertation, Technische Universität Bergakademie Freiberg 2009 ([http://d-nb.info/1009868004/34 PDF, 6,6 MB])&amp;lt;/ref&amp;gt; Das liegt daran, dass nicht die optimale Position für die Kugeln bestimmt wird, sondern jeweils die erste akzeptiert wird. Es ist außerdem eine Unregelmäßigkeit in der Dichteverteilung entlang der vertikalen Achse feststellbar. Wegen dieser unerwünschten Eigenschaften wird der Sedimentationsalgorithmus meist nicht mehr zur Simulation dichter Kugelpackungen verwendet.&lt;br /&gt;
&lt;br /&gt;
==== Collective-rearrangement-Algorithmen ====&lt;br /&gt;
Bei der Gruppe der Collective-rearrangement-Algorithmen bleibt die vorgegebene Anzahl der Kugeln konstant. Im Laufe der Simulation werden viele der Kugeln verschoben. Ein bekannter Algorithmus aus dieser Gruppe ist der Force-biased-Algorithmus, der auf einer Idee von Jodrey und Torey basiert.&amp;lt;ref&amp;gt;W. S. Jodrey, E. M. Tory: &amp;#039;&amp;#039;Computer simulation of close random packing of equal spheres.&amp;#039;&amp;#039; Physical Review A 32 (1985): 2347–2351, {{ISSN|1050-2947}}&amp;lt;/ref&amp;gt; Als Ausgangspunkt wird eine Menge von zufällig verteilten, eventuell überlappenden Kugeln im Container gewählt. Nur diese Ausgangskonfiguration ist zufällig, der restliche Algorithmus arbeitet deterministisch. Die Kugeln werden voneinander weg verschoben, so als ob ein abstoßendes Kraftfeld zwischen ihnen wirken würde. Gleichzeitig wird der Radius der Kugeln mit einem Faktor kleiner als 1 multipliziert. Dieser Vorgang wiederholt sich so lange, bis die Kugeln einander nicht mehr überlappen.&lt;br /&gt;
&lt;br /&gt;
Ein weiteres Beispiel für einen Collective-rearrangement-Algorithmus ist der Stillinger-Lubachevsky-Algorithmus, bei dem die Kugeln vergrößert werden und häufiger bewegt werden als beim Force-biased-Algorithmus.&amp;lt;ref&amp;gt;Boris D. Lubachevsky, Frank H. Stillinger: &amp;#039;&amp;#039;Geometric properties of random disk packings.&amp;#039;&amp;#039; Journal of Statistical Physics 60, 5/6 (1990): 561–583, {{ISSN|0022-4715}} ([http://www.princeton.edu/~fhs/geodisk/geodisk.pdf PDF, 1,5 MB])&amp;lt;/ref&amp;gt; Weiterhin gibt es sogenannte Molecular-dynamics-Methoden, bei denen sich die Größe der Kugeln nicht verändert. Stattdessen bewegen sie sich gemäß Newtons [[Bewegungsgesetze]]n, wobei sie elastisch von anderen Kugeln abprallen. Ein Beispiel für einen solchen Algorithmus ist der SPACE-Algorithmus.&amp;lt;ref&amp;gt;Piet Stroeven, Martijn Stroeven: &amp;#039;&amp;#039;Reconstructions by SPACE of the interfacial transition zone.&amp;#039;&amp;#039; Cement and Concrete Composites 23, 8 (2001): 189–200, {{ISSN|0958-9465}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Collective-rearrangement-Algorithmen sind in der Lage, sehr dichte Kugelpackungen zu erzeugen.&lt;br /&gt;
&lt;br /&gt;
=== Effiziente Methoden ===&lt;br /&gt;
Für die Computergrafik wurden eigene Methoden zur Erzeugung von Hard-core-Punktfeldern entwickelt, da hier die Ausführungsgeschwindigkeit eine große Rolle spielt.&lt;br /&gt;
&lt;br /&gt;
==== Methode von Bridson ====&lt;br /&gt;
Bridson beschrieb einen Algorithmus mit linearer [[Komplexität (Informatik)|Zeitkomplexität]] in Abhängigkeit von der Anzahl der Punkte.&amp;lt;ref&amp;gt;Robert Bridson: &amp;#039;&amp;#039;Fast Poisson disk sampling in arbitrary dimensions.&amp;#039;&amp;#039; In &amp;#039;&amp;#039;ACM SIGGRAPH 2007 Sketches,&amp;#039;&amp;#039; Article 22. ACM, New York, 2007 ([http://www.cs.ubc.ca/~rbridson/docs/bridson-siggraph07-poissondisk.pdf PDF, 110 kB])&amp;lt;/ref&amp;gt; Im Gegensatz zu vielen anderen in der Computergrafik üblichen Algorithmen eignet sich Bridsons Algorithmus für Hard-core-Punktfelder in beliebigen Dimensionen.&lt;br /&gt;
&lt;br /&gt;
Der Algorithmus beginnt mit einem zufällig gewählten Ausgangspunkt, der zu einer Liste „aktiver“ Punkte hinzugefügt wird. Es wird dann ein zufälliger Referenzpunkt aus der aktiven Liste gewählt. Anschließend werden eine maximale Anzahl von Kandidatenpunkten (typischerweise bis zu &amp;lt;math&amp;gt;k=30&amp;lt;/math&amp;gt;) innerhalb des [[Kreisring]]es zwischen δ und 2δ zufällig platziert. Falls ein Kandidatenpunkt den Mindestabstand zu allen bisher beibehaltenen Punkten einhält, wird er zum Punktfeld hinzugefügt und zur aktiven Liste hinzugefügt. Falls nach &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; Versuchen kein Kandidatenpunkt den Mindestabstand einhält, wird der Referenzpunkt aus der aktiven Liste entfernt. Dieser Vorgang wiederholt sich, bis die aktive Liste leer ist.&lt;br /&gt;
&lt;br /&gt;
Die lineare Zeitkomplexität wird erreicht, indem die Fläche oder der Raum in ein regelmäßiges Gitter eingeteilt wird. Die Seitenlänge der Zellen wird hierbei nicht größer als &amp;lt;math&amp;gt;\delta/\sqrt{n}&amp;lt;/math&amp;gt; gewählt, wobei &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; die Anzahl der Dimensionen ist. Dadurch enthält jede Zelle maximal einen Punkt, sodass bei der Prüfung auf Einhaltung des Mindestabstands nur Nachbarzellen durchsucht werden müssen. Durch ein solches Aufteilungsschema lassen sich auch viele der vorher beschriebenen Algorithmen beschleunigen.&lt;br /&gt;
&lt;br /&gt;
Der Pseudocode des Algorithmus (hier ohne Aufteilungsschema) lautet wie folgt:&lt;br /&gt;
&lt;br /&gt;
 &amp;#039;&amp;#039;Punktfeld&amp;#039;&amp;#039; ← (leer)&lt;br /&gt;
 &amp;#039;&amp;#039;AktiveListe&amp;#039;&amp;#039; ← (leer)&lt;br /&gt;
 &amp;#039;&amp;#039;Ausgangspunkt&amp;#039;&amp;#039; ← ξ&lt;br /&gt;
 Füge &amp;#039;&amp;#039;Ausgangspunkt&amp;#039;&amp;#039; zu &amp;#039;&amp;#039;Punktfeld&amp;#039;&amp;#039; hinzu&lt;br /&gt;
 Füge &amp;#039;&amp;#039;Ausgangspunkt&amp;#039;&amp;#039; zu &amp;#039;&amp;#039;AktiveListe&amp;#039;&amp;#039; hinzu&lt;br /&gt;
 &amp;amp;nbsp;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;Wiederhole solange&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;AktiveListe&amp;#039;&amp;#039; ≠ (leer)&lt;br /&gt;
   &amp;#039;&amp;#039;Referenzpunkt&amp;#039;&amp;#039; ← [zufälliger Punkt aus &amp;#039;&amp;#039;AktiveListe&amp;#039;&amp;#039;]&lt;br /&gt;
   &amp;#039;&amp;#039;PunktGefunden&amp;#039;&amp;#039; ← Falsch&lt;br /&gt;
   &amp;#039;&amp;#039;&amp;#039;Wiederhole&amp;#039;&amp;#039;&amp;#039; k &amp;#039;&amp;#039;&amp;#039;mal&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
     &amp;#039;&amp;#039;Kandidat&amp;#039;&amp;#039; ← ZufälligerPunktInKreisring(&amp;#039;&amp;#039;Referenzpunkt&amp;#039;&amp;#039;)&lt;br /&gt;
     &amp;#039;&amp;#039;&amp;#039;Für jeden&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;Punkt&amp;#039;&amp;#039; in &amp;#039;&amp;#039;Punktfeld&amp;#039;&amp;#039;&lt;br /&gt;
        &amp;#039;&amp;#039;&amp;#039;Wenn&amp;#039;&amp;#039;&amp;#039; ||&amp;#039;&amp;#039;Punkt&amp;#039;&amp;#039; - &amp;#039;&amp;#039;Kandidat&amp;#039;&amp;#039;|| &amp;lt; δ&lt;br /&gt;
          &amp;#039;&amp;#039;&amp;#039;Nächster&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;Kandidat&amp;#039;&amp;#039;&lt;br /&gt;
     Füge &amp;#039;&amp;#039;Kandidat&amp;#039;&amp;#039; zu &amp;#039;&amp;#039;Punktfeld&amp;#039;&amp;#039; hinzu&lt;br /&gt;
     Füge &amp;#039;&amp;#039;Kandidat&amp;#039;&amp;#039; zu &amp;#039;&amp;#039;AktiveListe&amp;#039;&amp;#039; hinzu&lt;br /&gt;
     &amp;#039;&amp;#039;PunktGefunden&amp;#039;&amp;#039; ← Wahr&lt;br /&gt;
   &amp;#039;&amp;#039;&amp;#039;Wenn&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;PunktGefunden&amp;#039;&amp;#039; = Falsch&lt;br /&gt;
     Lösche &amp;#039;&amp;#039;Referenzpunkt&amp;#039;&amp;#039; aus &amp;#039;&amp;#039;AktiveListe&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
==== Methode von Dunbar und Humphreys ====&lt;br /&gt;
Dunbars und Humphreys’ Algorithmus weist ebenfalls eine lineare Zeitkomplexität auf.&amp;lt;ref&amp;gt;Daniel Dunbar, Greg Humphreys: &amp;#039;&amp;#039;A spatial data structure for fast Poisson-disk sample generation.&amp;#039;&amp;#039; In &amp;#039;&amp;#039;Proceedings of ACM SIGGRAPH 2006,&amp;#039;&amp;#039; S. 503–508. ACM, New York 2006, ISBN 1-59593-364-6 ([http://www.cs.virginia.edu/~gfx/pubs/antimony/ Online])&amp;lt;/ref&amp;gt; Wie auch bei Bridsons Methode werden neue Punkte in der Umgebung der bestehenden Punkte hinzugefügt. Der für neue Punkte verfügbare Bereich wird jedoch präziser mittels einer speziellen Datenstruktur, dem „ausgekehlten Kreissektor“, repräsentiert. Dadurch kann das Hard-core-Punktfeld sehr effizient erzeugt werden.&lt;br /&gt;
&lt;br /&gt;
==== Parkettierung ====&lt;br /&gt;
Anstatt ein Hard-core-Punktfeld für die gesamte Fläche zu generieren, können mehrere kleine Kacheln mit individuellen Punktfeldern erzeugt und anschließend zusammengesetzt werden. Es wurden mehrere solcher Methoden entwickelt, die entweder quadratische Kacheln oder [[Wang-Parkettierung|Wang-Kacheln]] verwenden.&amp;lt;ref&amp;gt;Siehe Lagae/Dutré für einen Vergleich&amp;lt;/ref&amp;gt; Um den Mindestabstand auch an den Rändern der Kacheln so gut wie möglich einzuhalten, können die Kacheln periodische Randbedingungen aufweisen oder bestimmte Punkte je nach Zusammensetzung der Kacheln verschoben werden.&lt;br /&gt;
&lt;br /&gt;
=== Lloyd-Algorithmus ===&lt;br /&gt;
Der [[k-Means-Algorithmus#Lloyd-Algorithmus|Lloyd-Algorithmus]]&amp;lt;ref&amp;gt;Stuart P. Lloyd: &amp;#039;&amp;#039;Least squares quantization in PCM.&amp;#039;&amp;#039; IEEE Transactions on Information Theory 28, 2 (März 1982): 129–137, {{ISSN|0018-9448}} ([http://www.cs.toronto.edu/~roweis/csc2515-2006/readings/lloyd57.pdf PDF, 1,2 MB])&amp;lt;/ref&amp;gt; kann dazu verwendet werden, um den Mindestabstand eines bestehenden (Hard-core-)Punktfeldes zu erhöhen. Der Lloyd-Algorithmus geht vom [[Voronoi-Diagramm]] des Punktfeldes aus und verschiebt die Punkte in Richtung des Flächenschwerpunktes ihrer Voronoi-Zelle. Dieser Prozess wird schrittweise wiederholt. Für zweidimensionale Punktfelder konvergiert der Lloyd-Algorithmus zu 75 bis 85 % der maximalen Packungsdichte.&amp;lt;ref&amp;gt;Lagae/Dutré, S. 6&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die untenstehenden Bilder zeigen ein Punktfeld nach 1, 2, 3 und 15 Schritten des Lloyd-Algorithmus. Die Kreuze markieren die Schwerpunkte der Voronoi-Zellen.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
| [[Datei:LloydsMethodIteration1.png|150px]]&lt;br /&gt;
| [[Datei:LloydsMethodIteration2.png|150px]]&lt;br /&gt;
| [[Datei:LloydsMethodIteration3.png|150px]]&lt;br /&gt;
| [[Datei:LloydsMethodIteration15.png|150px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
* A. D. Cliff, J. K. Ord: &amp;#039;&amp;#039;Spatial processes: models &amp;amp; applications,&amp;#039;&amp;#039; S. 103 f. Pion, London 1981, ISBN 0-85086-081-4&lt;br /&gt;
* Peter J. Diggle: &amp;#039;&amp;#039;Statistical analysis of spatial point patterns,&amp;#039;&amp;#039; S. 60 ff. Academic Press, London 1983, ISBN 0-12-215850-4&lt;br /&gt;
* Janine Illian: &amp;#039;&amp;#039;Statistical analysis and modelling of spatial point patterns,&amp;#039;&amp;#039; S. 387–397. Wiley, Chichester 2008, ISBN 978-0-470-01491-2&lt;br /&gt;
* Ares Lagae, Philip Dutré: &amp;#039;&amp;#039;A comparison of methods for generating Poisson disk distributions.&amp;#039;&amp;#039; Computer Graphics Forum, 27, 1 (März 2008): 114–129, {{ISSN|0167-7055}} ([http://graphics.cs.kuleuven.be/publications/LD08CMGPD/LD08CMGPD.pdf PDF, 910 kB])&lt;br /&gt;
* Dietrich Stoyan: &amp;#039;&amp;#039;Simulation and characterization of random systems of hard particles.&amp;#039;&amp;#039; Image Analysis and Stereology 21 (Dez. 2002): 41–48, {{ISSN|1580-3139}} ([http://www.ias-iss.org/ojs/IAS/article/viewFile/721/624 PDF, 3,7 MB])&lt;br /&gt;
* Dietrich Stoyan, Joseph Mecke: &amp;#039;&amp;#039;Stochastische Geometrie: eine Einführung,&amp;#039;&amp;#039; S. 87–90. Akademie-Verlag, Berlin 1983, {{ISSN|0084-098X}}&lt;br /&gt;
* Dietrich Stoyan, Wilfried S. Kendall, Joseph Mecke: &amp;#039;&amp;#039;Stochastic geometry and its applications,&amp;#039;&amp;#039; S. 162–166. Wiley, Chichester 1995, ISBN 0-471-95099-8&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Stochastischer Prozess]]&lt;br /&gt;
[[Kategorie:Algorithmus (Computergrafik)]]&lt;br /&gt;
[[Kategorie:Algorithmische Geometrie]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Sigma^2</name></author>
	</entry>
</feed>