Rasgele Sayı Üretme
Rasgele Sayıların Özellikleri İki önemli istaiksel özelliği var : Düzgünlük (Uniformity) Bağımsızlık R i, rasgele sayısı olasılık yoğunluk fonksiyonu aşağıdaki gibi olan uniform bir dağılımdan bağımsız olarak seçilmelidir: f ( x) =, 0, 0 x diğer durumlarda E( R) = 0 xdx = 2 x 2 0 = 2 Şekil: rasgele sayılar için pdf
Pseudo-Rasgele Sayıların Üretilmesi Pseudo (yalancı) olmasının nedeni: bilinen bir yöntem kullanılarak sayıların üretilmesi gerçek rasgelelik potansiyelini ortadan kaldıryor. Amaç: rasgele sayıların (RN) ideal özelliklerini taklit eden, [0,] aralığında bir sayı dizisi üretmek. RN rutinlerinde dikkat edilecek önemli hususlar: Hızlı Farklı bilgisayarlara taşınabilir Yeterince uzun çevrime sahip Yinelenebilir (aynı başlangıç koşulları verildiğinde) Düzgünlük ve bağımsızlık için gerekli ideal istatiksel özellikleri sağlama
Rasgele Sayı Üretme Teknikleri Lineer Eşleşiklsel Yöntem - Linear Congruential Method (LCM). Birleştirilmiş Lineer Eşleşiklsel Üreteçler - Combined Linear Congruential Generators (CLCG). Rasgele-Sayı Dizileri - Random-Number Streams.
Linear Congruential Metodu 0 ve m- arasında, X, X 2, gibi bir tamsayı dizisi üretmek için kullanılacak rekürsif ilişki : X = ( ax i + c) mod m, = i+ i 0,,2,... Çarpan Artım Modül c, m, ve X 0 değerlerinin seçimi istatiksel özellikleri ve çevrim uzunluğunu önemli derecede etkiler. [0,m-] aralığında rasgele tamsayılar üretildikten sonra bunları rasgele sayılara dönüştürmek için: R i X i =, i =,2,... m
Örnek [LCM] X 0 = 27, a = 7, c = 43, ve m = 00 değerlerini kullanacak olursak, X i ve R i değerleri: X = (7*27+43) mod 00 = 502 mod 00 = 2, R = 0.02; X 2 = (7*2+43) mod 00 = 77, R 2 = 0.77; X 3 = (7*77+43) mod 00 = 52, R 3 = 0.52;
İyi Bir Üreteçin Karakteristik Özellikleri [LCM] Maksimum Yoğunluk R i, i =,2, ile kabul edilen değerler [0,] aralığında büyük boşluklar bırakmamalı. Problem: Herbir R i değeri sürekli değil, ayrıktır. Çözüm: m için büyük bir tamsayı kullanılması Yuvarlama çok az etki ediyor Maksimum Periyod Maksimum yoğunluğa ulaşmak ve uzun çevrim için gerekli. a, c, m, ve X 0 değerlerinin uygun seçilmesi ile mümkün Bilgisayarlar sayıların binary karşılığını kullanır m, modül değerinin 2 nin kuvveti olması hız ve etkinlik için önemlidir.
Maksimum Periyod m=2 b ve c 0 iken mümkün olan en uzun periyod: P=m=2 b dir. En uzun periyoda m ile c birbirine göre asal iken erişilebilir (ebob(m,c) =) m=2 b ve c=0 iken mümkün olan en uzun periyod: P=m/4 = 2 b-2 dir. En uzun periyoda X 0 (seed) tek olmak üzere a= 3+8k veya a=5+8k (k=0,,..) şeklinde seçildiğinde erişilebilir. m asal bir sayı ve c=0 iken mümkün olan en uzun periyod: P=m- dir. En uzun periyoda a k - değerinin m ile bölünebildiği en küçük k değeri k=m- iken erişilebilir.
Maksimum Periyod a=3, m=64=26, c=0 iken X 0 (seed) =,2,3,4 seçilirse maksimum periyod P=m/4=6 olacaktır ve ancak X 0 (seed)= veya 3 iken yani tek iken elde edilebilir.
Birleştirilmiş Lineer Congruential Üreteçler Neden: Simülasyon sistemlerinin karmaşıklığı arttıkça daha uzun periyodlara ihtiyaç duyulmuş, tek üreteç yetersiz kalmıştır. Yaklaşım: İki veya daha fazla çarpımsal eşleşiklsel (congruential) üreteçin birleştirilmesi. X i,, X i,2,, X i,k, k adet farklı eşleşiklsel (congruential) üreteçlerin i. çıktıları olsun. j. üreteç: m j asal modülüne, a j çarpanına sahip ve periyodu m j - ise üreteceği X i,j tamsayıları [, m j -] aralığında yakalşık üniformdur. W i,j = X i,j - ise [0, m j -2] aralığındaki tamsayılar için yakalşık üniformdur.
Birleştirilmiş Lineer Congruential Üreteçler L Ecuyer tarafından buna dayanarak k adet birleştirilmiş üreteç için önerilen form: k j X i X ( ) i = X i, j mod m, X i f 0 j= m Ri = m, X i = 0 m ( X Bu katsayı W i, =X i, - çıkarma işlemini sağlar k=2 için k = 2 0 j i, ) + ( X i,2 ) = ( ) ( X i, ) + ( ) ( X i,2 ) = ( ) j= Mümkün olan maksimum periyod: X i, j P ( m )( m )...( 2 2 = k m k )
Birleştirilmiş Lineer Congruential Üreteçler] 32-bit bilgisayarlar için, L Ecuyer [988] k = 2 adet üretecin m = 2,47,483,563, a = 40,04 ve m 2 = 2,47,483,399 a 2 = 20,692 olmak üzere birleştirilmesini önerir. Algoritma şu şekildedir: Adım : Kökler seçilir:. üreteç için X,0 [, 2,47,483,562] kademesinde 2. üreteç için X 2,0 [, 2,47,483,398] kademesinde. Adım 2: Herbir üreteç için, X,j+ = 40,04 X,j mod 2,47,483,563 X 2,j+ = 40,692 X,j mod 2,47,483,399. Adım 3: X j+ = (X,j+ - X 2,j+ ) mod 2,47,483,562 (m -). Adım 4: X j+, X j+ > 0 R + = 2,47,483,563 j 2,47,483,562, X j+ = 0 2,47,483,563 Adım 5: j = j+, 2. adıma geri dön. Bu birleştirilmiş üretecin periyou: (m )(m 2 )/2 ~ 2 x 0 8
Rasgele-Sayı Dizileri Lineer eşleşiklsel bir üreteç için kök (seed) değer: Rasgele sayı dizisini başlatan bir tamsayıdır. Bu dizideki herhangi bir değer üreteç için seed olarak kullanılabilir. Rasgele sayı dizisi: X 0, X,, X P. diziisinden alınmış bir başlangıç değerine (seed) işaret eder. Başlangıç değerleri dizinin bütünü içinde birbirinden uzakta seçilir. Eğer diziler b değer uzaklıkta ise i. dizi başlangıç değeri ile tanımlanır: S i = X b ( i ) Eski üreteçlerde: b = 0 5 civarında iken, yenilerde: b = 0 37 gibi büyük değerler kullanılıyor. k alt diziden oluşan tek bir rasgele sayı üreteci k farklı sanal rasgele sayı üreteci gibi kullanılabilir.
Rasgele-SayıTestleri İki kategoride topanır: Uniformluk Testi: H 0 : R i ~ U[0,] H : R i ~ U[0,] / H 0 hipotezi sayıların [0,] aralığında rasgele dağıldığını söyler, hipotezin aksinin gösterilememesi uniformluğun olmadığının tesbit edilemediğini söyler. Bağımsızlık Testi: H 0 : R i ~ bağımsız H : R i ~ bağımsız H 0 hipotezi sayıların bağımsız olduğunu söyler, hipotezin aksinin gösterilememesi bağımlılık tesbit edilemediğini söyler. Önem derecesi α, H 0 doğru iken reddetme olasılığıdır: α = P(red H 0 H 0 doğru) /
Rasgele-SayıTestleri Ne zaman kullanılmalı: Bilinen simülasyon dilleri veya rasgele sayı üreteçleri kullanılıyorsa test etmek gerekli olmayabilir, Eğer üreteç özellikle bilinmiyo veya dökümante edilmemiş ise (tablolama programları, nümerik-sembolik hesaplayıcılar gibi) pek çok örnek sayı için testler uygulanmalıdır. Test Tipleri: Teorik testler: Gerçek sayları üretmeden m, a, ve c gibi parametre seçimlerini inceler. Ampirik (deneysel) testler: Üretilen gerçek sayı dizilerine uygulanır.
Rasgele-SayıTestleri Frekans Testleri Uniforlmluk ile ilgili Kolmogorov-Smirnov testi Chi-square testi Otokorolasyon Testleri Bağımsızlık ile ilgili