Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.BufferedReader;
- import java.io.File;
- import java.io.FileNotFoundException;
- import java.io.FileReader;
- import java.io.IOException;
- import java.util.Arrays;
- import java.util.List;
- public class Main {
- public static void main(String[] args) {
- Integer vel_pop = 0, broj_iteracija = 0;
- Double Pc = 0.0, Pm = 0.0;
- Integer najboljaJedinka = 0;
- try {
- File dat = new File("GA.txt");
- BufferedReader datoteka = new BufferedReader(new FileReader(dat));
- String linija;
- int i = 0;
- while ((linija = datoteka.readLine()) != null) {
- if (i == 0) {
- vel_pop = Integer.parseInt(linija.split("=")[1].trim());
- }
- if (i == 1) {
- Pc = Double.parseDouble((linija.split("=")[1]).trim());
- }
- if (i == 2) {
- Pm = Double.parseDouble((linija.split("=")[1]).trim());
- }
- if (i == 3) {
- broj_iteracija = Integer.parseInt(linija.split("=")[1].trim());
- }
- i++;
- }
- datoteka.close();
- }
- catch (FileNotFoundException e) {
- e.printStackTrace();
- }
- catch (IOException e) {
- e.printStackTrace();
- };
- List<Integer> populacija = Funkcije.stvoriPopulaciju(vel_pop);
- najboljaJedinka = Funkcije.najboljaJedinkaPopulacije(populacija);
- Double max = Funkcije.maksimalnaDobrotaPopulacije(populacija);
- System.out.println("Maksimalna vrijednost dobrote u populaciji: " + max);
- Double prosjecnaVrijednostDobrote = Funkcije.prosjecnaVrijednostDobrotePopulacije(populacija);
- System.out.println("Prosječna vrijednost dobrote cijele populacije: " + prosjecnaVrijednostDobrote);
- System.out.println("Normirane vrijednosti dobrote svake jedinke: ");
- for (int j = 0; j < populacija.size(); j++) {
- System.out.println(" Normirana vrijednost dobrote jedinke " + populacija.get(j) + " -> "
- + Funkcije.dobrota(populacija.get(j)) / prosjecnaVrijednostDobrote);
- }
- for (int i = 0; i < broj_iteracija; i++) {
- System.out.println("ITERACIJA BROJ: " + (i + 1));
- List<Integer> populacijaNakonSelekcije = Funkcije.jednostavnaSelekcija(populacija);
- populacija = Funkcije.populacijaNakonKrizanjaImutacije(populacijaNakonSelekcije, Pc, Pm);
- max = Funkcije.maksimalnaDobrotaPopulacije(populacija);
- System.out.println("Maksimalna vrijednost dobrote u populaciji: " + max);
- prosjecnaVrijednostDobrote = Funkcije.prosjecnaVrijednostDobrotePopulacije(populacija);
- System.out.println("Prosječna vrijednost dobrote cijele populacije: " + prosjecnaVrijednostDobrote);
- System.out.println("Normirane vrijednosti dobrote svake jedinke: ");
- for (int j = 0; j < populacija.size(); j++) {
- System.out.println(" Normirana vrijednost dobrote jedinke " + populacija.get(j) + " -> "
- + Funkcije.dobrota(populacija.get(j)) / prosjecnaVrijednostDobrote);
- }
- Integer najboljaJedinkaIteracije = Funkcije.najboljaJedinkaPopulacije(populacija);
- if (Funkcije.dobrota(najboljaJedinka) < Funkcije.dobrota(najboljaJedinkaIteracije)) {
- najboljaJedinka = najboljaJedinkaIteracije;
- }
- if (Funkcije.dobrota(najboljaJedinka) == 270.0) {
- break;
- }
- }
- System.out.println("Globalno rješenje: " + najboljaJedinka + " -> Dobrota: " + Funkcije.dobrota(najboljaJedinka)
- + " Binarno: " + Arrays.toString(Funkcije.pretvoriIntegerUbinarniBroj(najboljaJedinka)));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement