daily pastebin goal
7%
SHARE
TWEET

Core

a guest Nov 19th, 2017 45 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package sztucznainteligencja;
  2.  
  3. import java.util.Scanner;
  4.  
  5. public class Core {
  6.     public  double dlg=0D;//odległość pomiędzy miastami
  7.     private double sum; //liczba potrzebna do obliczenia dłg pierwiastka
  8.     private double minOdlg=10000;////zmienna potrzebna do wyliczenia minimalnej odległości
  9.     private int minOdlgIndx=-1;// zmienna służąca do namieżenia obiektu do którego jest najbliżej z punktu startowego
  10.  
  11.  
  12.  
  13.     Punkt  dana = new Punkt();
  14.     Scanner odczyt = new Scanner(System.in);
  15.     Punkt[] tablica = new Punkt [Main.MAX];
  16.  
  17.  
  18.  
  19.  
  20.     public double length(Punkt  A,  Punkt B)//odleglosc miedzy wspolrzędnymi
  21.     {
  22.         sum= ((B.x -A.x)^2) +((B.y-A.y)^2);
  23.  
  24.         dlg=Math.sqrt(sum);
  25.  
  26.         return dlg;
  27.     }
  28.  
  29.     public void wyliczenie(Punkt tab[])//fkcja przyjmująca tablice obiektów typu pkt oraz obiekt typu pkt
  30.     {
  31.  
  32.         for(int i=0; i<Main.MAX;i++)
  33.         {
  34.  
  35.  
  36.             if(i != Punkt.AKTIndex && tab[i].nrKolejnosci==0)
  37.             {
  38.                 length(tab[Punkt.AKTIndex], tab[i]);//obliczenie odległości pomiędzy aktualnym punktem
  39.  
  40.                 if(dlg<minOdlg)
  41.                 {
  42.                     minOdlg=dlg;
  43.                     minOdlgIndx=i;
  44.                 }
  45.                 tab[minOdlgIndx].nrKolejnosci=tab[Punkt.AKTIndex].nrKolejnosci+1;//pkt ktory jest najblizej zyskuje kolejny index
  46.                                                                                 //przez co będzie pomijany w kolejnych iteracjach
  47.  
  48.                 Punkt.AKTIndex=minOdlgIndx;//ustawienie numeru kolejnego indeksu
  49.  
  50.                 Punkt.suma+=minOdlg;//zswumowanie drogi
  51.  
  52.  
  53.  
  54.             }
  55.         }
  56.         length(tab[Punkt.AKTIndex], tab[Punkt.pierwszyIndex]);//obliczenie odległości od ostatniego do 1 punktu
  57.         Punkt.suma+=dlg;
  58.  
  59.  
  60.  
  61.  
  62.     }
  63.  
  64.     public void dataSetting(Punkt tab[])
  65.     {
  66.  
  67.         System.out.println("Podaj proszę współrzędne  "+ Main.MAX + " punktów, przez które ma przejść algorytm komiwojażera");
  68.         for( int i=0; i<Main.MAX;i++)//pętla przypisująca współrzędne do pktu
  69.         {
  70.                 System.out.println("Punkt "+(i+1)+": ");
  71.  
  72.                 System.out.print("X: ");
  73.                 tab[i].x= odczyt.nextInt();
  74.  
  75.                 System.out.print("\tY: ");
  76.                 tab[i].y= odczyt.nextInt();
  77.         }
  78.         System.out.println("Podaj numer punktu który ma być ustawiony jako początkowy: ");
  79.         dana.ktoryPKT = odczyt.nextInt();//uzytkownik wybiera od którego pkt zaczyna
  80.         Punkt.AKTIndex=dana.ktoryPKT-1;//wybranie indeksu od którego zaczynamy
  81.         Punkt.pierwszyIndex=Punkt.AKTIndex;//zapisanie na stałe 1go punktu
  82.         tab[Punkt.AKTIndex].nrKolejnosci=1;// identyfikacja  punktu aktualnie jest punktem początkowym w danej iteracji
  83.  
  84.  
  85.     }
  86. }
RAW Paste Data
Top