package Sezgisel;
public class SezgiselAlgoritma1 {
public static void main(String[] args) {
double a[]={40.78,40.75,40.71,40.72,40.69,40.93,40.51,40.80,40.64, 41.07,41.03,41.05,40.51,40.69,40.88,40.40};
double b[]={30.40,30.40,30.36,30.38,30.62,30.48,30.29,30.75,30.54, 30.78,30.31,30.85,30.17,30.27,30.45,30.49};
//Rastgele değerler x=50 ve y=50 olarak verildi.
int x=50;
int y=50;
int literasyon=0;
double m,l;
double J=0;//Amaç fonksiyonu J fonksiyonudur.
do {
double Toplam=0;
for ( int i=0; i<16; i++){
m(i)=1/sqrt(((x-a[i]))^2+((y-b[i]))^2);
Toplam=Toplam+ m(i);
}// 1. for end
for (int i=0; i<16; i++){
l(i)=m(i)/Toplam ;
}//2. for end
x=0; y=0;//Formüldeki ilk x ve y değerleri sıfırdır.
for (int i=0; i<16; i++){
x= x+ (l(i)*a[i]);
y= y+ (l(i)*b[i]);
}//3. for end
for (int i=0; i<16; i++){
J=J+ sqrt(((x-a[i]))^2+((y-b[i]))^2);
literasyon=literasyon+1;
}while (literasyon!=50);
System.out.println("Tesisin enlem değeri X=" + x + "ve boylam değeri Y=" + y + "'dir." );
}
System.out.println("Amaç fonksiyonumuzun değeri Z=" + J);
}
}