Dans cet article, je présente une nouvelle séquence quasi aléatoire à faible divergence qui offre une amélioration significative par rapport aux séquences modernes, telles que Sable, Niederreiter, etc.Figure 1. Comparaison de diverses séquences quasi aléatoires avec une faible divergence. Notez que le proposé par moi R -séquence crée des points plus uniformément répartis que toutes les autres méthodes. De plus, toutes les autres méthodes nécessitent une sélection minutieuse des paramÚtres de base et, en cas de sélection incorrecte, conduisent à la dégénérescence (par exemple, en haut à droite)Sujets traités dans cet article- Séquences à faible divergence en une dimension
- Méthodes de faible divergence en deux dimensions
- Distance d'emballage
- Ensembles multiclasses à faible écart
- Séquences quasi aléatoires à la surface d'une sphÚre
- Carrelage plan quasi-périodique
- Masques de tramage en infographie
Il y a quelque temps, ce message a été publié sur la page d'accueil de Hacker News. Vous pouvez y lire sa
discussion .
Introduction: aléatoire versus quasi aléatoire
Dans la figure 1, vous pouvez remarquer qu'avec un simple échantillonnage aléatoire uniforme d'un point à l'intérieur d'un carré unitaire, une accumulation de points est observée, ainsi que des zones sans points («bruit blanc»). Une
sĂ©quence quasi alĂ©atoire Ă
faible divergence est une méthode de construction (infinie) de points consécutifs de maniÚre déterministe, qui réduit la probabilité d'accumulation (divergence), tout en assurant une couverture uniforme de tout l'espace («bruit bleu»).
Séquences quasi-aléatoires en une dimension
Les méthodes pour créer des séquences quasi aléatoires complÚtement déterminées avec une faible divergence dans une dimension sont trÚs bien étudiées et résolues en termes généraux. Dans cet article, je vais principalement considérer les séquences ouvertes (infinies), d'abord dans une dimension, puis passer à des dimensions plus élevées. L'avantage fondamental des séquences ouvertes (c'est-à -dire extensibles en
n ) rĂ©side dans le fait que si les erreurs totales basĂ©es sur un nombre fini de membres sont trop grandes, alors la sĂ©quence peut ĂȘtre Ă©tendue sans ignorer tous les points calculĂ©s prĂ©cĂ©dents. Il existe de nombreuses façons de crĂ©er des sĂ©quences ouvertes. Vous pouvez diviser diffĂ©rents types en catĂ©gories par la mĂ©thode de construction de leurs paramĂštres (hyper) de base:
- fractions irrationnelles: Kronecker, Richtmayer, Ramshaw
- (mutuellement) nombres premiers: Van der Corpute, Holton, Foret
- PolynÎmes irréductibles: Niederreiter
- PolynĂŽmes primitifs: sable
Par souci de concision, dans cet article, je comparerai principalement le nouvel additif
récursif R - une séquence qui appartient à la premiÚre catégorie, c'est-à -dire aux méthodes récursives basées sur des nombres irrationnels (souvent appelés séquences de Kronecker,
Weil ou Richtmeier), qui sont des réseaux de rang 1, et une séquence de Holton, qui est basée sur la séquence canonique unidimensionnelle de van der Corpute. La séquence récursive canonique de Kronecker est définie comme suit:
R_1 (\ alpha): \; \; t_n = \ {s_0 + n \ alpha \}, \ quad n = 1,2,3, ...
oĂč
alpha - tout numéro irrationnel. Notez que l'entrée
\ {x \} désigne la partie fractionnaire
x . Dans les calculs, cette fonction est souvent exprimée comme
R1( alpha):tn=s0+n alpha( textrmmod1); quadn=1,2,3,...
Ă
s0=0 premiers membres de la séquence
R( phi) égal à :
tn=0,618,0,236,0,854,0,472,0,090,0,708,0,327,0,944,0,562,0,180,798,416,0,034,0,652,0,271,0,888,...
Il est important de noter que le sens
s0 n'affecte pas les caractéristiques générales de la séquence, et dans presque tous les cas est égal à zéro. Cependant, dans le calcul de l'option
s neq0 offre un degré de liberté supplémentaire, ce qui est souvent utile. Si
s neq0 , alors la séquence est souvent appelée «séquence de réseau décalé». Malgré le fait que par défaut
s=0 Je crois qu'il y a des considĂ©rations thĂ©oriques et pratiques pour lesquelles la valeur devrait ĂȘtre standard
s=1/2 . Valeur
alpha donnant le plus petit écart possible si
alpha=1/ phi oĂč
phi - C'est le nombre d'or. Câest
phi equiv frac sqrt5+12 simeq1.61803398875...;
Il est intéressant de noter qu'il existe un nombre infini d'autres valeurs.
alpha , qui nous permettent également d'obtenir l'écart optimal, et ils sont tous liés les uns aux autres par la transformation Mobius
alphaâČ= fracp alpha+qr alpha+s quad textrmpourtouslesentiersp,q,r,s quad textrmtelque|psâqr|=1
Nous comparons maintenant cette méthode récursive avec les séquences bien connues de van der Korput avec ordre inverse des décharges [
van der Korput, 1935 ]. Les séquences de Van der Corpute sont en fait une famille de séquences, chacune étant définie par un hyperparamÚtre unique
b . Les premiers membres de la séquence avec b = 2 sont égaux:
t[2]n= frac12, frac14, frac34, frac18, frac58, frac38, frac78, frac116, frac916, frac516, frac1316, frac316, frac1116, frac716, frac1516,...
Dans la section suivante, nous comparons les caractéristiques générales et l'efficacité de chacune de ces séquences. Considérez le problÚme du calcul d'une certaine intégrale
A= int10f(x) textrmdx
Nous pouvons l'approcher comme:
A simeqAn= frac1n sumni=1f(xi), quadxi in[0,1]
- Si \ {x_i \} sont égaux i/n , c'est la formule des rectangles ;
- Si \ {x_i \} sélectionné au hasard, alors c'est la méthode de Monte Carlo ; mais
- Si \ {x_i \} sont des éléments d'une séquence avec une faible divergence, alors c'est la méthode quasi-Monte Carlo .
Le graphique ci-dessous montre les courbes d'erreur typiques.
sn=|AâAn| pour approximer une certaine intĂ©grale associĂ©e Ă cette fonction,
f(x)= textrmexp( fracâx22),x dans[0,1] pour: (i) des points quasi-alĂ©atoires de rĂ©cursion additive, oĂč
alpha=1/ phi , (bleu); (ii) des points quasi aléatoires de la séquence de van der Corput, (orange); (iii) des points choisis au hasard, (vert); (iv) Séquences de sable (rouge).
Cela montre que pour
n=106 une solution de points avec échantillonnage aléatoire conduit à une erreur
simeq10â4 , la sĂ©quence de van der Corput mĂšne Ă une erreur
simeq10â6 , alors que
R( phi) - la séquence conduit à une erreur
simeq10â7 que dans
sim 10 fois mieux que l'erreur de van der Corput et
sim 1000 fois mieux qu'un échantillonnage aléatoire (uniforme).
Figure 2. Comparaison de l'intĂ©gration numĂ©rique unidimensionnelle Ă l'aide de diverses mĂ©thodes Monte Carlo quasi alĂ©atoires. Plus la valeur est basse, mieux c'est. Nouveau R2 - la sĂ©quence (bleue) et la sĂ©quence de sable (rouge) sont Ă©videmment les meilleures.Les Ă©lĂ©ments suivants mĂ©ritent d'ĂȘtre mentionnĂ©s ici:
- cela correspond Ă la connaissance que les erreurs d'Ă©chantillonnage alĂ©atoire uniforme diminuent asymptotiquement 1/ sqrtn , et l'erreur pour les deux sĂ©quences quasi-alĂ©atoires a tendance Ă
. - Résultats pour R1( phi) -les séquences (bleues) et les séquences de sable (rouge) sont les meilleures.
- Le graphique montre que la séquence van der Corpute fournit de bons résultats, mais incroyablement cohérents pour les tùches d'intégration!
- On peut voir ici que pour toutes les valeurs n séquence R1( phi) donne de meilleurs résultats que la séquence de van der Corput.
Nouvelle séquence R1 , qui est la séquence de Kronecker utilisant le nombre d'or, est l'une des meilleures options pour les méthodes d'intégration Monte Carlo quasi-aléatoires unidimensionnelles (Quasirandom Monte Carlo, QMC).
Il convient également de noter que, bien que
alpha= phi fournit théoriquement une option prouvée optimale,
sqrt2 trĂšs proche de l'optimal, et presque toute autre valeur irrationnelle
alpha fournit des courbes d'erreur supérieures pour une intégration unidimensionnelle. C'est pourquoi il est trÚs souvent utilisé
alpha= sqrtp pour tout nombre premier. De plus, du point de vue des calculs, la valeur aléatoire choisie dans l'intervalle
alpha in[0,1] ce sera presque certainement (dans les limites de la précision de la machine) un nombre irrationnel, et est donc un bon choix pour une séquence avec une faible divergence. Pour la lisibilité visuelle, la figure ci-dessus ne montre pas les résultats de la séquence Niederreiter, car ils sont pratiquement indiscernables des résultats des séquences Sobol et
R . Les séquences Niederreiter et Sable (ainsi que leur sélection optimisée de paramÚtres) qui ont été utilisées dans cet article ont été calculées dans Mathematica en utilisant ce que l'on appelle des "générateurs propriétaires fermés et entiÚrement optimisés de la bibliothÚque Intel MKL" dans la documentation.
Séquences quasi-aléatoires en deux dimensions
La plupart des méthodes modernes pour construire une faible variance dans des dimensions plus élevées se combinent simplement (composant par composant)
d séquences unidimensionnelles. Par souci de concision, dans ce post, nous considérerons principalement la séquence de
Holton [
Holton, 1960 ], la séquence de Sable et
d -Séquence de Kronecker dimensionnelle.
La séquence de Holton est construite à l'aide de simples
d diverses séquences van der Corpute unidimensionnelles, dont la base est mutuellement simple pour toutes les autres. Autrement dit, ce sont des nombres premiers par paire. Sans aucun doute, l'option la plus courante en raison de sa simplicité et de sa logique évidentes est le choix du premier
d nombres premiers. La distribution des 625 premiers points définis par la séquence Holton (2,3) est illustrée à la figure 1. Bien que de nombreuses séquences Holton bidimensionnelles soient d'excellentes sources de séquences à faible divergence, il est bien connu que bon nombre d'entre elles sont trÚs problématiques et ne présentent pas de faible divergence. Par exemple, la figure 3 montre que la séquence de Holton (11,13) génÚre des lignes trÚs visibles. De grands efforts ont été déployés pour développer des méthodes de sélection des modÚles et des paires problématiques.
(p1,p2) . Dans des dimensions supérieures, le problÚme devient encore plus compliqué.
Lors de la généralisation à des dimensions supérieures, les méthodes récursives de Kronecker rencontrent des difficultés encore plus grandes. Bien qu'en utilisant
alpha= sqrtp d'excellentes sĂ©quences unidimensionnelles sont créées, il est extrĂȘmement difficile de trouver mĂȘme des paires de nombres premiers pouvant servir de base Ă un cas bidimensionnel
qui ne pose
pas de problÚme! Il a été suggéré d'utiliser d'autres nombres irrationnels bien connus comme solution de contournement, par exemple
phi, pi,e,... . Ils fournissent des résultats modérément acceptables, mais ne sont généralement pas utilisés, car ils ne sont généralement pas aussi bons qu'une séquence Holton correctement sélectionnée. De gros efforts sont faits pour résoudre ces problÚmes de dégénérescence.
Les solutions proposĂ©es utilisent le saut / gravure, le saut / amincissement. Et pour le codage (brouillage) des sĂ©quences finales, une autre technique est utilisĂ©e, souvent utilisĂ©e pour surmonter ce problĂšme. Le brouillage ne peut pas ĂȘtre utilisĂ© pour crĂ©er une sĂ©quence ouverte (infinie) avec une faible divergence.
Figure 3. La sĂ©quence (11,13) -Holton n'est Ă©videmment pas une sĂ©quence Ă faible divergence (Ă gauche). Ce n'est pas non plus une sĂ©quence additive rĂ©cursive (11,13) (au milieu). Certaines sĂ©quences rĂ©cursives additives bidimensionnelles qui utilisent des nombres irrationnels bien connus sont plutĂŽt bonnes (Ă droite).De mĂȘme, malgrĂ© les rĂ©sultats gĂ©nĂ©ralement meilleurs de la sĂ©quence de Sable, sa complexitĂ© et, plus important encore, la nĂ©cessitĂ© d'une sĂ©lection trĂšs attentive des hyperparamĂštres la rend moins conviviale.
Encore une fois, dans
d mesures:
- les séquences Kronecker typiques nécessitent un choix d nombres irrationnels linéairement indépendants;
- La séquence Holton nécessite d entiers mutuellement premiers par paire; mais
- La séquence de sable nécessite un choix d nombres guides.
Nouvelle séquence Rd - le seul d -séquence quasi aléatoire dimensionnelle avec une faible divergence, ne nécessitant pas un choix de paramÚtres de base.
Généralisation du nombre d'or
tl; dr Dans cette partie, je vais parler de la façon de construire une nouvelle classe
d - séquence ouverte (infinie) dimensionnelle à faible divergence, ne nécessitant pas un choix de paramÚtres de base, ayant d'excellentes propriétés de faible divergence.
Il existe de nombreuses façons de généraliser la séquence de Fibonacci et / ou le nombre d'or. La méthode proposée ci-dessous pour généraliser le nombre d'or
n'est pas nouvelle [
Krchadinac, 2005 ]. De plus, le polynÎme caractéristique est associé à de nombreuses zones d'algÚbre, y compris les
nombres de Perron et les
nombres de Piso-Vijayaraghavan . Cependant, le lien explicite entre cette forme généralisée et la construction de séquences de grande dimension avec une faible divergence est nouveau en elle. Nous définissons une vision généralisée du nombre d'or
phid comme une racine positive unique
xd+1=x+1 . Autrement dit,
Pour
d=1 ,
phi1=1.61803398874989484820458683436563... , qui est le nombre d'or canonique.
Pour
d=2 ,
phi2=1,32471795724474602596090885447809... . Cette valeur est souvent appelée constante plastique et possÚde de
belles propriétés (voir également
ici ). On suppose que cette valeur est trĂšs probablement optimale pour le problĂšme bidimensionnel correspondant [
Hensley, 2002 ].
Pour
d=3 ,
phi3=1,220744084605759475361685349108831...Pour
d>3 , bien que les racines de cette équation n'aient pas de forme algébrique fermée, nous pouvons facilement obtenir une approximation numérique soit par des méthodes standard, par exemple, la méthode de Newton, soit en notant que pour la séquence suivante
Rd( phid) :
t0=t1=...=td=1;
tn+d+1=tn+1+tn, quad textrmforn=1,2,3,..
Cette séquence particuliÚre de constantes
phid a été nommé en 1928 par l'architecte et moine Hans van de Laan comme "
nombres harmoniques ". Ces significations spĂ©ciales peuvent ĂȘtre exprimĂ©es trĂšs Ă©lĂ©gamment comme suit:
phi1= sqrt1+ sqrt1+ sqrt1+ sqrt1+ sqrt1+...
\ phi_2 = \ sqrt [3] {1+ \ sqrt [3] {1+ \ sqrt [3] {1+ \ sqrt [3] {1+ \ sqrt [3] {1 + ...}}}}}}
\ phi_3 = \ sqrt [4] {1+ \ sqrt [4] {1+ \ sqrt [4] {1+ \ sqrt [4] {1+ \ sqrt [4] {1 + ...}}}}}}
Nous avons également la propriété trÚs élégante suivante:
phid= limn to infty fractn+1tn
Cette séquence, parfois appelée séquence de Fibonacci généralisée ou différée, a été étudiée en profondeur [
As, 2004 ,
Wilson, 1993 ], et la séquence de
d=2 souvent appelée séquence Padovan [
Stuart, 1996 ,
OEIS A000931 ], et la séquence
d=3 répertorié dans [
OEIS A079398 ]. Comme indiqué ci-dessus, la tùche principale de cet article est de décrire le lien explicite entre cette séquence généralisée et la construction
d -séquences dimensionnelles à faible divergence.
Résultat principal: le non paramétrique suivant d -dimensionnelle séquence ouverte (infinie) Rd( phid) présente d'excellentes caractéristiques de faible écart par rapport aux autres méthodes existantes.
\ mathbf {t} _n = \ {n \ pmb {\ alpha} \}, \ quad n = 1,2,3, ...
textrmwhere quad pmb alpha=( frac1 phid, frac1 phi2d, frac1 phi3d,... frac1 phidd)
textrmet phid textrmestuneracinepositiveuniquexd+1=x+1
Pour deux dimensions, cette séquence généralisée pour
n=150 comme le montre la figure 1. Les points sont évidemment répartis de façon beaucoup plus
R2 -séquences que dans les séquences (2, 3) -Holton, séquences de Kronecker basées sur
( sqrt3, sqrt7) , Niederreiter et Sable. (En raison de la complexité des séquences Niederreiter et Sable, elles ont été calculées dans Mathematica à l'aide d'un code propriétaire fourni par Intel.) Ce type de séquence dans lequel le vecteur de base
pmb alpha est fonction d'une seule valeur matérielle, souvent appelée séquence de Korobov [Korobov, 1959]
Regardez de nouveau la figure 1 pour comparer diverses séquences quasi aléatoires bidimensionnelles à faible divergence.Code et démos
Dans une dimension, pseudo-code pour
n membre (
n = 1,2,3, ....) est défini comme
g = 1.6180339887498948482 a1 = 1.0/g x[n] = (0.5+a1*n) %1
En deux dimensions, le pseudo-code des coordonnées
x et
yn membre (
n = 1,2,3, ....) Sont définis comme
g = 1.32471795724474602596 a1 = 1.0/g a2 = 1.0/(g*g) x[n] = (0.5+a1*n) %1 y[n] = (0.5+a2*n) %1
Pseudocode en trois dimensions pour les coordonnées
x ,
y et
zn membre (
n = 1,2,3, ....) est défini comme
g = 1.22074408460575947536 a1 = 1.0/g a2 = 1.0/(g*g) a3 = 1.0/(g*g*g) x[n] = (0.5+a1*n) %1 y[n] = (0.5+a2*n) %1 z[n] = (0.5+a3*n) %1
ModÚle de code Python. (notez que les tableaux et les boucles Python partent de zéro!)
import numpy as np
J'ai Ă©crit le code de maniĂšre Ă ce qu'il corresponde Ă la notation mathĂ©matique utilisĂ©e dans ce post. Cependant, pour des raisons de conventions de programmation et / ou d'efficacitĂ©, certaines modifications mĂ©ritent d'ĂȘtre mentionnĂ©es. PremiĂšrement, depuis
R2 est une séquence
récursive additive, formulation alternative
z qui ne nécessite pas de multiplication en virgule flottante et maintient une grande précision pour les trÚs grandes
n a la forme
z[i+1] = (z[i]+alpha) %1
DeuxiĂšmement, dans les langages vectorisables, le code d'une fonction fractionnaire peut ĂȘtre vectorisĂ© comme suit:
for i in range(n): z[i] = seed + alpha*(i+1) z = z %1
Enfin, nous pouvons remplacer ces ajouts de nombres Ă virgule flottante et entiers en multipliant toutes les constantes par
232 , puis en modifiant la fonction frac (.) en conséquence. Voici les démos de code source créées par d'autres personnes sur la base de cette séquence:
Distance minimale d'emballage
Nouveau R2 -séquence est la seule séquence quasi aléatoire bidimensionnelle avec une faible divergence dans laquelle la distance de compactage minimale est réduite uniquement à 1/ sqrtn .
Bien que l'analyse technique standard du calcul de l'écart consiste à évaluer
dâ - divergences, nous mentionnerons d'abord quelques autres mĂ©thodes gĂ©omĂ©triques (et, peut-ĂȘtre, beaucoup plus intuitives!) pour montrer Ă quel point la nouvelle sĂ©quence est prĂ©fĂ©rable Ă d'autres mĂ©thodes standard. Si nous dĂ©notons la distance entre les points
i et
j pour
dij et
d0= textrminfdij le tableau ci-dessous montre comment il varie
d0(n) pour
R -sĂ©quences, (2,3) - SĂ©quences Holton, Sable, Niederreiter et sĂ©quences alĂ©atoires. Cela peut ĂȘtre vu dans la figure 6.
Comme dans la figure précédente, la valeur de distance minimale est normalisée par le coefficient
1/ sqrtn . Vous remarquerez peut-ĂȘtre qu'aprĂšs
n=300 des points dans une sĂ©quence alĂ©atoire (vert) apparaissent presque certainement deux points qui sont extrĂȘmement proches l'un de l'autre. On voit Ă©galement que, bien que la sĂ©quence de Holton (2,3) soit bien meilleure que l'Ă©chantillonnage alĂ©atoire, elle diminue malheureusement Ă©galement de façon asymptotique jusqu'Ă zĂ©ro. Pour la sĂ©quence de sable, la raison de la normalisation diminue Ă zĂ©ro
d0 réside dans le fait que
Sable lui-mĂȘme a montrĂ© que
la séquence de
Sable tombe Ă une vitesse
/n - ce qui est bien, mais évidemment bien pire que
R2 qui ne diminue que de
1/ sqrtn .
Pour séquence
R( phi2) (bleu) la distance minimale entre deux points tombe constamment dans l'intervalle de

avant

. A noter que le diamĂštre optimal de 0,868 correspond Ă un facteur de remplissage de 59,2%. Comparez cela avec d'autres
emballages de cercles .
Notez également que l'
échantillonnage du disque de Bridson Poisson , qui n'est
pas extensible Ă
n et est généralement recommandé par défaut, il crée toujours un facteur d'emballage de 49,4%. Il convient de considérer que le concept
d0 lie étroitement les séquences
phid faible divergence avec des nombres / vecteurs peu
d mesures [
Hensley, 2001 ]. Bien que nous en sachions peu sur les nombres mal approchés en deux dimensions, la construction
phid peut nous fournir un nouveau regard sur des nombres mal approchés dans des dimensions plus élevées.
Figure 4. Distance par paire minimale pour diverses séquences à faible divergence. Notez que R2 - la séquence (bleue) est toujours la meilleure option; de plus, c'est la seule séquence dans laquelle la distance normalisée n'a pas tendance à zéro à n rightarrow infty . La séquence de Holton (orange) prend la deuxiÚme place, et les séquences de sable (vert) et de Niederreiter (rouge) ne sont pas si bonnes, mais toujours bien mieux que aléatoires (violet). Plus c'est grand, mieux c'est, car cela correspond à une distance d'emballage plus longue.Diagrammes de Voronoi
Une autre façon de visualiser la distribution uniforme des points est de créer un diagramme de Voronoi à partir du premier
n points d'une séquence bidimensionnelle avec coloration ultérieure de chaque zone en fonction de sa
zone . La figure ci-dessous montre les nuanciers Voronoi pour (i)
R2 -sĂ©quences; (ii) (2,3) sĂ©quences de Holton, (iii) rĂ©cursion principale; et (iv) un Ă©chantillonnage alĂ©atoire simple. Pour toutes les figures, utilisez la mĂȘme Ă©chelle de couleurs. LĂ encore, il est Ă©vident que
R2 La sĂ©quence fournit une distribution beaucoup plus uniforme que la sĂ©quence de Holton ou un simple Ă©chantillonnage alĂ©atoire. L'image est la mĂȘme que ci-dessus, colorĂ©e uniquement en fonction du nombre de sommets dans chaque cellule de Voronoi. Il n'est pas seulement Ă©vident ici que
R - la séquence fournit une distribution plus uniforme que Holton ou un échantillonnage aléatoire simple, mais le fait que les valeurs clés sont plus visibles
n se composent uniquement d'hexagones! Si nous considérons la séquence de Fibonacci généralisée, alors
A1=A2=A3=1; quadAn+3=An+1+An . Câest
An :
$$ afficher $$ \ begin {array} {r} 1 & 1 & 1 & 2 & 2 & 3 & 4 & 5 & 7 \\ 9 & \ textbf {12} & 16 & 21 & 28 & 37 & \ textbf {49} & 65 & 86 \\ 114 & \ textbf {151 } & 200 & 265 & 351 & 465 & \ textbf {616} & 816 & 1081 \\ 1432 & \ textbf {1897} & 2513 & 3329 & 4410 & 5842 & \ textbf {7739} & 10252 & 13581 \\ 17991 & \ textbf {23833} & 31572 & 41824 & 55405 & 7 {97229} & 128801 & 170625 \\ 226030 & \ textbf {299426} & 396655 & 525456 & 696081 & 922111 & \ textbf {1221537} & 1618192 & 2143648 \\ \ end {array} $$ display $$
Toutes les valeurs dans lesquelles
n=A9kâ2 ou
n=A9k+2 se composent uniquement d'hexagones.
Figure 4. Visualisation de la forme des diagrammes de Voronoi en fonction de l'aire de chaque polygone de Voronoi pour (i) R2 -séquences; (ii) (2,3) - séquences basées sur des nombres premiers; (iii) la séquence (2,3) de Holton, (iv) Niederraiter; (v) Sable; et (iv) un échantillonnage aléatoire simple. Les couleurs indiquent le nombre de cÎtés de chaque polygone Voronoi. Je le répÚte: il est évident que R( phi) -séquence fournit une distribution beaucoup plus uniforme que toute autre séquence avec une faible divergence.à certaines valeurs n Grille Voronoi pour R2 -séquence se compose uniquement d'hexagones.
Figure 5. Visualisation de la forme des diagrammes de Voronoi en fonction du nombre de cÎtés de chaque polygone de Voronoi pour (i) R2 -séquences; (ii) (2,3) - séquences basées sur des nombres premiers; (iii) la séquence (2,3) de Holton, (iv) Niederraiter; (v) Sable; et (iv) un échantillonnage aléatoire simple. Les couleurs indiquent le nombre de cÎtés de chaque polygone Voronoi. Je le répÚte: il est évident que R( phi) -séquence fournit une distribution beaucoup plus uniforme que toute autre séquence avec une faible divergence.Mosaïque quasi-aléatoire de Delaunay pour un avion
R -sĂ©quence est la seule sĂ©quence quasi alĂ©atoire Ă faible divergence qui peut ĂȘtre utilisĂ©e pour crĂ©er d pavages quasipĂ©riodiques tridimensionnels utilisant son maillage Delaunay.
La triangulation de Delaunay, qui est similaire au comte Voronoi, offre une opportunité de regarder ces distributions différemment. Cependant, plus important encore, la triangulation de Delaunay fournit une nouvelle méthode pour créer un pavage quasi-périodique (mosaïque) d'un plan. Triangulation de Delaunay
R2 -sĂ©quences fournit un modĂšle beaucoup plus uniforme qu'une sĂ©quence de Holton ou un Ă©chantillonnage alĂ©atoire. En particulier, si la triangulation de Delaunay des distributions ponctuelles est effectuĂ©e, oĂč
n égal à l'une des séquences de Fibonacci généralisées:
AN=$1,1,1,2,3,4,5,7,9,12,16,21,28,37,... , alors la triangulation de Delaunay se compose de seulement trois triangles identiques, c'est-à -dire de parallélogrammes (rhomboïdes)! (Sauf pour les triangles qui ont un sommet commun avec une coque convexe.) De plus,
Aux valeurs n=Ak Triangulation de Delaunay R2 -séquences forme des pavages quasipériodiques, chacun composé de seulement trois triangles de base (rouge, jaune, bleu), qui sont toujours connectés par paires et forment un pavage quasipériodique bien défini (pavage) du plan avec trois parallélogrammes (rhomboïdes).
Figure 6. Visualisation de la triangulation de Delaunay pour (i) R( phi2) -sĂ©quences; (ii) (2,3) sĂ©quences de Holton, (iii) rĂ©cursion principale; et (iv) un Ă©chantillonnage alĂ©atoire simple. Les couleurs indiquent l'aire de chaque triangle. Les quatre graphiques utilisent la mĂȘme Ă©chelle. Et lĂ encore, il est Ă©vident que R( phi2) -sĂ©quence fournit une distribution beaucoup plus uniforme que toute autre sĂ©quence avec une faible divergence.Notez que
R2 basé sur
phi2=1,32471795724474602596 étant le plus petit nombre de piso, (un
phi=1,61803... Est le plus grand nombre de pisos). La connexion du carrelage quasi-périodique avec des nombres quadratiques et cubiques de Piso n'est pas nouvelle [
Elkharrat et Masakova], mais je crois que pour la premiÚre fois, le carrelage quasi-périodique a été créé sur la base de
phi2=1,324719... .
L'animation ci-dessous montre comment le maillage Delaunay pour la séquence
R2 changements avec l'ajout progressif de points. Notez que lorsque le nombre de points est égal à un membre de la séquence de Fibonacci généralisée, alors la grille de Delaunay entiÚre n'est constituée que de parallélogrammes (rhomboïdes) rouges, bleus et jaunes, disposés sous une double forme quasi-périodique.
Figure 7Bien que la disposition des parallĂ©logrammes rouges dĂ©montre une rĂ©gularitĂ© considĂ©rable, on peut clairement voir que les parallĂ©logrammes bleu et jaune sont placĂ©s sous une forme quasi-pĂ©riodique. Le spectre de Fourier de ce rĂ©seau peut ĂȘtre vu sur la figure 11, il reprĂ©sente les spectres ponctuels classiques. (Notez qu'une sĂ©quence rĂ©cursive basĂ©e sur des nombres premiers semble Ă©galement quasi-pĂ©riodique dans le sens oĂč il s'agit d'un motif ordonnĂ© non rĂ©pĂ©titif. Cependant, son motif dans l'intervalle
n pas si constant, et dĂ©pend Ă©galement de maniĂšre critique du choix des paramĂštres de base. Par consĂ©quent, nous ne concentrerons notre intĂ©rĂȘt pour les pavages quasipĂ©riodiques que par la sĂ©quence
R2 .) Il se compose de seulement trois triangles: rouge, jaune, bleu. Notez que dans cette séquence
R( phi2) tous les parallĂ©logrammes de chaque couleur ont la mĂȘme taille et la mĂȘme forme. Le rapport d'aspect de ces triangles individuels est incroyablement Ă©lĂ©gant. Ă savoir
textrmZone(rouge):Zone(jaune):Zone(bleu)=1: phi2: phi22
Il en va de mĂȘme pour la frĂ©quence relative des triangles:
f( textrmred):f( textrmyellow):f( textrmblue)=1: phi2:1
Il en résulte que l'aire relative totale couverte par ces trois triangles dans l'espace est:
f( textrmred):f( textrmyellow):f( textrmblue)=1: phi22: phi22
On peut également supposer que nous pouvons créer ce pavage quasi-périodique par substitution basée sur la séquence A.
A rightarrowB; quadB rightarrowC; quadC rightarrowBA
Pour trois dimensions, si nous considérons la séquence de Fibonacci généralisée, alors
B1=B2=B3=B4=1; quadBn+4=Bn+1+Bn . Câest
B_n = \ {1,1,1,1,2,2,2,3,4,4,5,7,8,9,12,15,17,21,27,32,38,48,59 , 70,86,107,129, ...
à certaines valeurs n=Bk Maillage 3D Delaunay associé à une séquence R3 , définit un réseau cristallin quasi-périodique.
Emballage discrétisé, partie 2
La figure ci-dessous montre le premier
n=2500 points pour chaque séquence bidimensionnelle à faible divergence. De plus, chacune des cellules 50 à 50 = 2500 n'est colorée en vert que si elle contient
exactement 1 point. Autrement dit, plus les carrés sont verts, plus la distribution de 2500 points dans 2500 cellules est uniforme. Le pourcentage de cellules vertes pour chacun des chiffres est le suivant:
R2 (75%), Holton (54%), Kronecker (48%), Niederreiter (54%), Sable (49%) et aléatoire (38%).
Ondes sonores
Juste pour le plaisir, Ă la demande d'
un lecteur de News Hacker, j'ai modélisé comment toutes ces distributions de points quasi-aléatoires peuvent
sonner ! J'ai utilisé la fonction Listplay de Mathematica: "
ListPlay [{a1, a2, ...}] crĂ©e un objet qui se reproduit sous forme de son, dont l'amplitude est donnĂ©e comme une sĂ©quence de niveaux." Par consĂ©quent, sans aucun commentaire, je vous laisse dĂ©cider par vous-mĂȘme lesquelles vous prĂ©fĂ©rez parmi les distributions quasi-alĂ©atoires unidimensionnelles (mono) et les distributions quasi-alĂ©atoires bidimensionnelles (stĂ©rĂ©o).
| Mono | Stéréo |
---|
Aléatoire | | |
Sable | | |
Niederreiter | | |
Holton | | |
Kronecker | | |
R | | |
Ensembles multiclasses à faible écart
Certaines séquences à faible divergence démontrent ce qu'on appelle une «faible divergence multi-classe». Jusqu'à ce moment, nous avons supposé que lorsque nous devons distribuer le plus uniformément possible
n points, alors tous les points sont les mĂȘmes et ne se distinguent pas les uns des autres. Cependant, dans de nombreuses situations, il existe diffĂ©rents types de points. Nous considĂ©rons le problĂšme de la distribution uniforme
n de sorte que non seulement tous les points sont rĂ©partis uniformĂ©ment, mais aussi les points de la mĂȘme classe. En particulier, supposons qu'il existe
nk taper des points
k , (oĂč
n1+n2+n3+...+nk=n ), alors la distribution du multiset avec une distribution faible est une distribution dans laquelle chaque
nk points uniformément répartis. Dans notre cas, nous avons constaté que
R -La séquence et la séquence Holton sont faciles à adapter aux séquences de multisets à faible divergence, simplement en plaçant alternativement des points de chaque type.
La figure ci-dessous montre comment ils sont distribués
n=150 les points, tandis que 75 sont bleus, 40 sont poivrés, 25 sont verts et 10 sont rouges. Pour une séquence récursive additive, cela est résolu trivialement: les 75 premiers membres correspondent simplement au bleu, les 40 suivants à l'orange, les 25 suivants au vert et les 10 derniers aux points rouges. Cette technique fonctionne presque pour les séquences Holton et Kronecker, mais fonctionne trÚs mal dans les séquences Niederreiter et Sable. De plus, il n'existe aucune technique connue pour la génération continue de distributions ponctuelles multi-échelles dans les séquences de Niederreiter et de Sable. Cela montre que les
distributions de points multiclasses , par exemple, comme les
yeux des poulets , peuvent maintenant ĂȘtre dĂ©crites et construites directement Ă l'aide de sĂ©quences Ă faible divergence.
Séquence R2 Est une séquence quasi aléatoire à faible divergence qui permet de construire facilement une faible divergence à plusieurs classes.
Figure 9. Séquences multi-échelles avec faible divergence. En séquence R non seulement tous les points sont répartis uniformément, mais aussi les points de chaque couleur individuelle.Points quasi aléatoires sur une sphÚre
Dans les domaines de l'infographie et de la physique, il est souvent nécessaire de répartir aussi uniformément que possible les points à la surface d'une sphÚre tridimensionnelle. Lorsque vous utilisez des séquences quasi-aléatoires ouvertes (infinies), ce problÚme se réduit uniquement à placer des points quasi-aléatoires uniformément répartis dans un carré unitaire à la surface de la sphÚre en utilisant la projection égale de Lambert. Transformation de projection standard de Lambert en plaçant un point
(u,v) inU[0,1] to(x,y,z) inS2 a la forme:
(x,y,z)=( cos lambda cos phi, cos lambda sin phi, sin lambda)
textrmoĂč quad cos( lambdaâ pi/2)=(2uâ1); quad phi=2 piv
Depuis
phi2 -la séquence est complÚtement ouverte, elle vous permet d'aligner une séquence infinie de points à la surface de la sphÚre, un point à la fois. Cela contraste avec d'autres méthodes, comme le
réseau de la spirale de Fibonacci , qui nécessitent de connaßtre à l'avance le nombre de points. En ce qui concerne l'inspection visuelle, nous pouvons à nouveau clairement voir que
n=1200 nouveau
R( phi2) - La séquence est beaucoup mieux répartie que l'échantillonnage par superposition Holton ou l'échantillonnage Kronecker, qui, à son tour, est beaucoup plus uniforme que l'échantillonnage aléatoire.
Figure 10Infiltration d'infographie
La plupart des techniques de tramage modernes (par exemple, le tramage Floyd-Steinberg) sont basées sur la distribution des erreurs, ce qui n'est pas trÚs approprié pour le traitement parallÚle et / ou l'optimisation directe dans le GPU. Dans de tels cas, le tramage ponctuel avec des masques de tramage statiques (c'est-à -dire complÚtement dépendants de l'image cible) présente d'excellentes caractéristiques de performance. Les masques de tramage les plus célÚbres et les plus utilisés sont probablement basés sur des matrices
Bayer , mais les plus récents tentent de simuler de plus prÚs les caractéristiques du bruit bleu. La difficulté non triviale de créer des masques de tramage basés sur des séquences à faible divergence et / ou bruit bleu est que ces séquences à faible divergence projettent un entier
Z Ă un point Ă deux dimensions dans l'intervalle
[0,1)2 .
Mais pour un masque de tramage, une fonction est requise qui projette les coordonnées entiÚres bidimensionnelles du masque tramé en valeur de luminosité / seuil réelle dans l'intervalle [0,1) .
Je suggĂšre l'approche suivante basĂ©e sur R-sĂ©quences. Pour chaque pixel (x, y) du masque, nous attribuons sa valeur de luminositĂ©I(x,y) oĂč:I(x,y)=α1x+α2y(mod1);
αα=(α1,α2)=(1Ï2,1Ï22)
Ï2 - x3=x+1
Câest x=1.32471795724474602596⊠, ce qui signifieα1=0.75487766624669276;α2=0.569840290998
De plus, si une fonction d'onde triangulaire est ajoutĂ©e pour Ă©liminer la discontinuitĂ© causĂ©e par la fonction frac (.) Sur chaque frontiĂšre entiĂšre:T(z)={2z,if 0â€z<1/22â2z,if1/2â€z<1
I(x,y)=T[α1x+α2y(mod1)];
puis le masque et son diagramme de Fourier / frĂ©quence sont encore amĂ©liorĂ©s. Nous notons Ă©galement que depuislimnââAnAn+1=0.754878;limnââAnAn+2=0.56984
alors la forme de l'expression ci-dessus est liée à l'équation congruente suivanteAnx+An+1y(modAn+2) for integers x,y
Les masques R tramĂ©s crĂ©ent des rĂ©sultats qui rivalisent avec les mĂ©thodes modernes basĂ©es sur les masques de bruit bleu. Mais contrairement aux masques de bruit bleu, ils n'ont pas besoin d'ĂȘtre calculĂ©s Ă l'avance, car ils peuvent ĂȘtre calculĂ©s en temps rĂ©el.
Il convient de noter que cette structure a Ă©galement Ă©tĂ© proposĂ©e par Mittring , mais il trouve les coefficients empiriquement (et ne reproduit pas les valeurs finales). De plus, cela aide Ă comprendre pourquoi la formule empirique de Jorge Jimenez utilisĂ©e pour crĂ©er «Call of Duty» (souvent appelĂ© «Interleaved Gradient Noise») fonctionne si bien .I(x,y)=(FractionalPart[52.9829189âFractionalPart[0.06711056âx+0.00583715ây]]
Cependant, il nĂ©cessite 3 multiplications Ă virgule flottante et deux opĂ©rateurs% 1, et la formule prĂ©cĂ©dente montre que nous pouvons le faire avec seulement deux multiplications Ă virgule flottante et une opĂ©ration% 1. Mais plus important encore, cet article fournit une comprĂ©hension mathĂ©matique plus claire de la raison pour laquelle un masque de tramage sous cette forme est si efficace, sinon optimal. Les rĂ©sultats de cette matrice de tramage sont prĂ©sentĂ©s ci-dessous en utilisant l'image de test classique Lena 256 Ă 256 ainsi qu'un modĂšle de test d'Ă©checs. Il montre Ă©galement les rĂ©sultats de l'utilisation de masques de tramage Bayer standard, ainsi qu'un exemple avec du bruit bleu. Les deux mĂ©thodes de bruit bleu les plus courantes sont l'Ă©chantillonnage Ă disque vide et Ă grappes et Poisson. Par souci de concision, je n'ai montrĂ© que les rĂ©sultats de la mĂ©thode Void et cluster. [ Peters]. Le bruit de gradient entrelacĂ© fonctionne mieux que le bruit de Bayer et bleu, mais pas aussi bon queRtramage. Vous pouvez voir que le tramage Bayer montre une dissonance notable de blanc dans les zones gris clair. DitheringR- la sĂ©quence et le bruit bleu sont gĂ©nĂ©ralement comparables, bien que des diffĂ©rences mineures puissent ĂȘtre constatĂ©es. Il convient de noter certains aspects du tramage R:- Il n'est pas isotrope! Les spectres de Fourier ne montrent que des points individuels et discrets. Il s'agit d'une caractĂ©ristique classique des pavages quasipĂ©riodiques et des spectres de diffraction des quasi-cristaux. En particulier, les spectres de Fourier pourR Les masques correspondent au fait que la triangulation de Delaunay pour la sĂ©quence R canonique consiste en un pavage quasi-pĂ©riodique de trois parallĂ©logrammes.
- Le tramage R lorsqu'il est combiné avec une onde triangulaire fournit un masque incroyablement uniforme!
- R- , .
- , , R- , .
- (I(x,y) , .

Figure 11. De gauche à droite: (i) Image originale (ii) Séquence R combinée avec une fonction d'onde triangulaire; (iii) la séquence R est distincte; (iv) un masque de tramage à bruit bleu et (v) un Bayer standard. Les masques de tramage de séquence R sont assez compétitifs par rapport aux autres masques modernes. Notez que R2 montre la meilleure qualité sur le visage et les épaules de Lena. De plus, contrairement aux masques de bruit bleu, le masque R tramé est si simple qu'il ne nécessite pas de calculs préliminaires.Dimensions supérieures
Semblable Ă la section prĂ©cĂ©dente, mais pour cinq (5) mesures, le graphique ci-dessous montre la distance minimale (globale) entre deux points R(Ï5)-sĂ©quences, (2,3,5,7,11) -sĂ©quences de Holton et sĂ©quences alĂ©atoires. Cette fois, la valeur normalisĂ©e de la distance minimale est normalisĂ©e par un facteur1/5ân .
Vous pouvez voir qu'en raison de la «malédiction des dimensions», la distribution aléatoire est meilleure que toutes les séquences à faible divergence - à l'exception de R5 -séquences. Dans
R(Ï5) -sĂ©quences mĂȘme avec nâ106 points, la distance minimale entre deux points est toujours constamment proche 0.8/ân et toujours plus haut 0.631/ân .
SĂ©quence R2 - le seul d -sĂ©quence dimensionnelle Ă faible divergence, dans laquelle la distance d'emballage commence Ă diminuer uniquement avec la vitesse nâ1/d .
Figure 12. Cela montre que la séquence R (bleue) est toujours meilleure que Holton (orange); Sable (vert); Niederreiter (rouge); et aléatoire (violet). Gardez à l'esprit que plus c'est grand, mieux c'est, car cela correspond à une distance d'emballage plus longue.Intégration numérique
Le graphique suivant montre les courbes d'erreur typiques. sn=|AâAn| pour approcher une certaine intĂ©grale associĂ©e Ă une fonction gaussienne demi-largeur Ï=âd ,
f(x)=exp(âx22d),xâ[0,1] , tandis que: (i) RÏ(bleu); (ii) sĂ©quence Holton (orange); (iii) alĂ©atoire (vert); (iv) Sable (rouge). Le graphique montre que pourn=106il y a maintenant moins de diffĂ©rences entre l'Ă©chantillonnage alĂ©atoire et la sĂ©quence de Holton. Cependant, comme cela a Ă©tĂ© montrĂ© dans le cas unidimensionnel,R- SĂ©quence et Sable sont toujours meilleurs que la sĂ©quence de Holton. Cela nous permet Ă©galement de savoir que la sĂ©quence de Sable est lĂ©gĂšrement meilleure.R -sĂ©quences.Figure 13. MĂ©thodes quasi alĂ©atoires de Monte Carlo pour l'intĂ©gration Ă 8 dimensions. Plus la valeur est basse, mieux c'est. La nouvelle sĂ©quence R et la nouvelle sĂ©quence Sable se montrent beaucoup mieux que la sĂ©quence Holton.