Stochastic Universal Sampling dengan Java (sederhana)

malem para penonton…:D langsung aje…ga ada narasi panjang…cuma pengen share aja hasil ketikan ane…hehehe
ngebahas tentang Komputasi Evolusioner dengan Algoritma Stohastic Universal Sampling atau disingkat SUS #kaya nama roti…jadi laper deh…:D

ini baru ketikan sederhana…kalo ada para master yang ahli ane harap kritik sarannye…hehe

import java.util.*;
import java.text.DecimalFormat;

public class StochasticUniversalSampling {
    public static void main (String args[]) {
        Scanner scan = new Scanner(System.in);
        int input;
        double lamda;
        
        System.out.print("\nJumlah individu dalam populasi : ");
        input = scan.nextInt();
        double[] dist = new double[input];        
        double jmlProb = 0;
        
        for (int i = 0; i < dist.length; i++) {
            System.out.print("p"+(i+1)+" : ");
            dist[i] = scan.nextDouble();
            
            jmlProb += dist[i];
        }
        System.out.println("\nJumlah Probabilitas : "+jmlProb);
        System.out.print("\nLamda : ");
        lamda = scan.nextInt();    
        double[] nrand = new double[input];
        
        System.out.print("\nBilangan acak yang dibangkitkan : ");
        for (int i = 0; i < dist.length; i++) {
            DecimalFormat two = new DecimalFormat("#.##");
            double rand=Double.valueOf(two.format(Math.random()*(jmlProb/lamda)));            
            nrand[i] = rand;            
            System.out.print("\n"+(i+1)+" : "+nrand[i]);            
        }
                
        int r = (int)(Math.random()*dist.length);
        System.out.println("\nBilangan random terpilih "+(r+1)+" : "+nrand[r]);        
        
        double sum = 0.0;
        for (int i = 1; i < dist.length; i++) {
            int indek = 0;
            sum += dist[i];            
            while (sum > nrand[r]) {
                indek = i;
                nrand[r] += (jmlProb/lamda);
                
                System.out.println("\nHasil Seleksi=" + indek);
                System.out.println("Terpilih Individu dengan probabilitas=" + dist[indek-1]);
                System.out.println("============");
            }            
        }        
    }
}

Hasilnya kurang lebih seperti ini penonton…
hasil

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s