top of page

Genetik Algoritma Uygulamasi

Yazarın fotoğrafı: Sevdanur GENC
Sevdanur GENC
26 Ara 2012
9 dakikada okunur

Bu makale iceriginde Suleyman Demirel Universitesi – Bilgisayar Muhendisligi bolumu’nun Yapay Zeka dersi icin gelistirilen Genetik Algoritma uygulamasinin .Net ortaminda Windows Forms Application ozelligi ile yapilmis bir ornegini paylasiyor olacagim. Visual studio ortaminda windows forms application kullanarak yapacagimiz bu uygulamada ekran goruntusunu asagidaki gibi tasarlayabilirsiniz. Hemen ardindan islemlerin bir iterasyonluk adimini sizinle paylastiktan sonra, Button icerisine kodlarimizi yaziyor olacagiz.

  Ornek olarak bu fonksiyonu inceleyelim. Ilk iterasyon icin islemleri adim adim yaziyor olacagim. Bu iterasyonu gerceklestirebilmemiz icin islemleri <0,31> arasinda yapiyor olacagiz.

Genetik Algoritma Uygulamasi

Bu sekilde iterasyonun ikinci adimina gecerken cozulmus olan ornekte sizin hazirlayacaginiz bir algoritma ile programinizi yazabilirsiniz. Simdi ise, kendi yazmis oldugumuz uygulamayi sizinle paylasalim. using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace GenetikAlgoritma { public partial class Form1 : Form { public Form1() { InitializeComponent(); } public int<,>

BireyListesi = new int<4, 3>

; public int Birey1_X1, Birey1_X2, Birey2_X1, Birey2_X2, Birey3_X1, Birey3_X2, Birey4_X1, Birey4_X2; public double[] Dizi = new double<4>

; public double kucuksayi; public double buyuksayi; public int kal = 0; public int bal = 0; public int Iterasyon = 0; public double<,>

YeniDizi = new double<4, 4>

; public string GeniAl2, GeniAl1; public string Bit1Birlestir, Bit2Birlestir, Bit3Birlestir, Bit4Birlestir; public double<,>

Bireyler1 = new double<4, 4>

; private void button1_Click(object sender, EventArgs e) { Random BitlereDegerUret = new Random(); for (int i = 0; i < BireyListesi.GetLength(0); i++) { for (int j = 0; j < BireyListesi.GetLength(1); j++) { int sayi = BitlereDegerUret.Next(0, 31); BireyListesi

= sayi ; } } listBox1.Items.Clear(); listBox1.Items.Add("Birey 1 icin X1 : " + BireyListesi<0, 0>

+ " , X2 : " + BireyListesi<0, 1>

+ " dir."); listBox1.Items.Add("Birey 2 icin X1 : " + BireyListesi<1, 0>

+ " , X2 : " + BireyListesi<1, 1>

+ " dir."); listBox1.Items.Add("Birey 3 icin X1 : " + BireyListesi<2, 0>

+ " , X2 : " + BireyListesi<2, 1>

+ " dir."); listBox1.Items.Add("Birey 4 icin X1 : " + BireyListesi<3, 0>

+ " , X2 : " + BireyListesi<3, 1>

+ " dir."); listBox1.Items.Add("------------------------------------------------"); listBox1.Items.Add("Birey 1 icin X1 : " + UretilenRastgeleBitiIkilikSayiyaCevir(BireyListesi<0, 0>

) + " , X2 : " + UretilenRastgeleBitiIkilikSayiyaCevir(BireyListesi<0, 1>

) + " dir."); listBox1.Items.Add("Birey 2 icin X1 : " + UretilenRastgeleBitiIkilikSayiyaCevir(BireyListesi<1, 0>

) + " , X2 : " + UretilenRastgeleBitiIkilikSayiyaCevir(BireyListesi<1, 1>

) + " dir."); listBox1.Items.Add("Birey 3 icin X1 : " + UretilenRastgeleBitiIkilikSayiyaCevir(BireyListesi<2, 0>

) + " , X2 : " + UretilenRastgeleBitiIkilikSayiyaCevir(BireyListesi<2, 1>

) + " dir."); listBox1.Items.Add("Birey 4 icin X1 : " + UretilenRastgeleBitiIkilikSayiyaCevir(BireyListesi<3, 0>

) + " , X2 : " + UretilenRastgeleBitiIkilikSayiyaCevir(BireyListesi<3, 1>

) + " dir."); listBox1.Items.Add("------------------------------------------------"); Birey1_X1 = BireyListesi<0, 0>

; Birey1_X2 = BireyListesi<0, 1>

; BireyListesi<0, 2>

= FonksiyondaYerineKoy(Birey1_X1, Birey1_X2); Birey2_X1 = BireyListesi<1, 0>

; Birey2_X2 = BireyListesi<1, 1>

; BireyListesi<1, 2>

= FonksiyondaYerineKoy(Birey2_X1, Birey2_X2); Birey3_X1 = BireyListesi<2, 0>

; Birey3_X2 = BireyListesi<2, 1>

; BireyListesi<2, 2>

= FonksiyondaYerineKoy(Birey3_X1, Birey3_X2); Birey4_X1 = BireyListesi<3, 0>

; Birey4_X2 = BireyListesi<3, 1>

; BireyListesi<3, 2>

= FonksiyondaYerineKoy(Birey4_X1, Birey4_X2); listBox1.Items.Add("Birey 1 icin F(X) = " + Convert.ToString(FonksiyondaYerineKoy(Birey1_X1, Birey1_X2))); listBox1.Items.Add("Birey 2 icin F(X) = " + Convert.ToString(FonksiyondaYerineKoy(Birey2_X1, Birey2_X2))); listBox1.Items.Add("Birey 3 icin F(X) = " + Convert.ToString(FonksiyondaYerineKoy(Birey3_X1, Birey3_X2))); listBox1.Items.Add("Birey 4 icin F(X) = " + Convert.ToString(FonksiyondaYerineKoy(Birey4_X1, Birey4_X2))); listBox1.Items.Add("------------------------------------------------"); BireylerinUygunlukDegerleri(FonksiyondaYerineKoy(Birey1_X1, Birey1_X2), FonksiyondaYerineKoy(Birey2_X1, Birey2_X2), FonksiyondaYerineKoy(Birey3_X1, Birey3_X2), FonksiyondaYerineKoy(Birey4_X1, Birey4_X2)); listBox1.Items.Add("Birey 1  X1 = " + Birey1_X1 + " X2 = " + Birey1_X2 + " F(X) = " + FonksiyondaYerineKoy(Birey1_X1, Birey1_X2) + " % " + Dizi<0>

); listBox1.Items.Add("Birey 2  X1 = " + Birey2_X1 + " X2 = " + Birey2_X2 + " F(X) = " + FonksiyondaYerineKoy(Birey2_X1, Birey2_X2) + " % " + Dizi<1>

); listBox1.Items.Add("Birey 3  X1 = " + Birey3_X1 + " X2 = " + Birey3_X2 + " F(X) = " + FonksiyondaYerineKoy(Birey3_X1, Birey3_X2) + " % " + Dizi<2>

); listBox1.Items.Add("Birey 4  X1 = " + Birey4_X1 + " X2 = " + Birey4_X2 + " F(X) = " + FonksiyondaYerineKoy(Birey4_X1, Birey4_X2) + " % " + Dizi<3>

); listBox1.Items.Add("------------------------------------------------"); DortBoyutluDiziyeCevir(); DortBoyutluDiziIcinDonusumBaslasin(); listBox1.Items.Add("------------------------------------------------"); BitleriCIftlestirmeyeBasla(); for (int i = 0; i < BireyListesi.GetLength(0); i++) { for (int j = 0; j < BireyListesi.GetLength(1)-1; j++) { BireyListesi

= Convert.ToInt32(UretilenRastgeleBitiIkilikSayiyaCevir(BireyListesi

)); } } } public string UretilenRastgeleBitiIkilikSayiyaCevir(int SayiAl ) { int kalan; String sayi=""; while (SayiAl>1 || SayiAl<-1) { kalan=Math.Abs(SayiAl%2); SayiAl=SayiAl/2; sayi=kalan+sayi; } sayi = SayiAl + sayi; if (sayi.Length == 1) { sayi = "0000" + sayi; } else if (sayi.Length ==2) { sayi = "000" + sayi;  } else if (sayi.Length == 3) { sayi = "00" + sayi;   } else if (sayi.Length == 4) { sayi = "0" + sayi;    } string sonuc =  sayi; return sonuc; } public void BireylerinUygunlukDegerleri(int Birey1, int Birey2, int Birey3, int Birey4) { int ToplamFonksiyon = Birey1 + Birey2 + Birey3 + Birey4; double Birey1_Yeni = - (Convert.ToDouble(Birey1) / Convert.ToDouble(ToplamFonksiyon)); double Birey2_Yeni = - (Convert.ToDouble(Birey2) / Convert.ToDouble(ToplamFonksiyon)); double Birey3_Yeni = - (Convert.ToDouble(Birey3) / Convert.ToDouble(ToplamFonksiyon)); double Birey4_Yeni = - (Convert.ToDouble(Birey4) / Convert.ToDouble(ToplamFonksiyon)); yenibireytum<0,3>

=Dizi<0>

= Math.Round(Birey1_Yeni, 2); yenibireytum<1,3>

=Dizi<1>

= Math.Round(Birey2_Yeni, 2); yenibireytum<2,3>

=Dizi<2>

= Math.Round(Birey3_Yeni, 2); yenibireytum<3,3>

=Dizi<3>

= Math.Round(Birey4_Yeni, 2); BuyukKucukBireyArastirmasi(); } public void BuyukKucukBireyArastirmasi() { kucuksayi = Dizi<0>

; buyuksayi = Dizi<0>

; for (int i = 0; i < Dizi.Length; i++) { if (Dizi

< kucuksayi) { kucuksayi = Dizi

; kal = i; } if (Dizi

> buyuksayi) { buyuksayi = Dizi

; bal = i; } } listBox1.Items.Add("------------------------------------------------"); listBox1.Items.Add("F(X)'lerin En Kucugu ; " + kucuksayi.ToString()); listBox1.Items.Add("F(X)'lerin En Buyugu ; " + buyuksayi.ToString()); listBox1.Items.Add("------------------------------------------------"); kucuksayi = buyuksayi; Dizi

= Dizi

; for (int i = 0; i < Dizi.Length; i++) { Console.WriteLine(Dizi

); } Console.WriteLine(); } public void DortBoyutluDiziyeCevir() { YeniDizi<0, 0>

= BireyListesi<0, 0>

; YeniDizi<0, 1>

= BireyListesi<0, 1>

; YeniDizi<0, 2>

= BireyListesi<0, 2>

; YeniDizi<0, 3>

= Dizi<0>

; YeniDizi<1, 0>

= BireyListesi<1, 0>

; YeniDizi<1, 1>

= BireyListesi<1, 1>

; YeniDizi<1, 2>

= BireyListesi<1, 2>

; YeniDizi<1, 3>

= Dizi<1>

; YeniDizi<2, 0>

= BireyListesi<2, 0>

; YeniDizi<2, 1>

= BireyListesi<2, 1>

; YeniDizi<2, 2>

= BireyListesi<2, 2>

; YeniDizi<2, 3>

= Dizi<2>

; YeniDizi<3, 0>

= BireyListesi<3, 0>

; YeniDizi<3, 1>

= BireyListesi<3, 1>

; YeniDizi<3, 2>

= BireyListesi<3, 2>

; YeniDizi<3, 3>

= Dizi<3>

; } public void DortBoyutluDiziIcinDonusumBaslasin() for (int m = 0; m < YeniDizi.GetLength(0); m++) { for (int k = 0; k < YeniDizi.GetLength(0); k++) { if (YeniDizi

== YeniDizi

) { for (int i = 0; i < YeniDizi.GetLength(0); i++) { for (int j = 0; j < YeniDizi.GetLength(1); j++) { YeniDizi

= YeniDizi

; } } } } } listBox1.Items.Add("Birey 1 : X1 = " + YeniDizi<0, 0>

+ " X2 = " + YeniDizi<0, 1>

+ " F(x) = " + YeniDizi<0, 2>

+ " % " + YeniDizi<0, 3>

); listBox1.Items.Add("Birey 2 : X1 = " + YeniDizi<1, 0>

+ " X2 = " + YeniDizi<1, 1>

+ " F(x) = " + YeniDizi<1, 2>

+ " % " + YeniDizi<1, 3>

); listBox1.Items.Add("Birey 3 : X1 = " + YeniDizi<2, 0>

+ " X2 = " + YeniDizi<2, 1>

+ " F(x) = " + YeniDizi<2, 2>

+ " % " + YeniDizi<2, 3>

); listBox1.Items.Add("Birey 4 : X1 = " + YeniDizi<3, 0>

+ " X2 = " + YeniDizi<3, 1>

+ " F(x) = " + YeniDizi<3, 2>

+ " % " + YeniDizi<3, 3>

); } public int FonksiyondaYerineKoy(int x1 , int x2) { int bir = Convert.ToInt32(textBox1.Text); int iki = Convert.ToInt32(textBox2.Text); int uc = Convert.ToInt32(textBox3.Text); int dort = Convert.ToInt32(textBox4.Text); int sonuc = bir * x1 * x1 + iki * x1 * x2 + uc * x2 * x2 + dort; return sonuc; } public int<,>

yenibireyonluk = new Int32<2, 2>

; public object<,>

yenibireytum = new object<4, 4>

; public int alal; public void BitleriCIftlestirmeyeBasla() { Random ParcalamaSayisi = new Random(); int Parca = ParcalamaSayisi.Next(1, 4); for (int i = 0; i < YeniDizi.GetLength(1)-2; i++) { for (int k = 0; k < 2; k++) { string YeniBit1 = Convert.ToString(UretilenRastgeleBitiIkilikSayiyaCevir(Convert.ToInt32(YeniDizi<0, i>

))); string YeniBit2 = Convert.ToString(UretilenRastgeleBitiIkilikSayiyaCevir(Convert.ToInt32(YeniDizi<1, i>

))); if (YeniBit1.Length == 1) { YeniBit1 = "0000" + YeniBit1; } else if (YeniBit1.Length == 2) { YeniBit1 = "000" + YeniBit1; } else if (YeniBit1.Length == 3) { YeniBit1 = "00" + YeniBit1; } else if (YeniBit1.Length == 4) { YeniBit1 = "0" + YeniBit1; } if (YeniBit2.Length == 1) { YeniBit2 = "0000" + YeniBit2; } else if (YeniBit2.Length == 2) { YeniBit2 = "000" + YeniBit2; } else if (YeniBit2.Length == 3) { YeniBit2 = "00" + YeniBit2; } else if (YeniBit2.Length == 4) { YeniBit2 = "0" + YeniBit2; } GeniAl1 = YeniBit1.Substring(Parca, 5 - Parca); GeniAl2 = YeniBit2.Substring(Parca, 5 - Parca); Bit1Birlestir = YeniBit1.Substring(0, Parca) + GeniAl2; Bit2Birlestir = YeniBit2.Substring(0, Parca) + GeniAl1; yenibireytum

= Bit1Birlestir; yenibireytum

= Bit2Birlestir; yenibireytum

= FonksiyondaYerineKoy(Convert.ToInt32(YeniBitleriOndalikSayiyaCevir(Bit1Birlestir)), Convert.ToInt32(YeniBitleriOndalikSayiyaCevir(Bit2Birlestir))); yenibireyonluk<0, i>

= FonksiyondaYerineKoy(Convert.ToInt32(YeniBitleriOndalikSayiyaCevir(Bit1Birlestir)), Convert.ToInt32(YeniBitleriOndalikSayiyaCevir(Bit2Birlestir))); alal = yenibireyonluk<0, i>

; Bireyler1

= Convert.ToInt32(Bit1Birlestir); Bireyler1

= Convert.ToInt32(Bit2Birlestir); Bireyler1

= alal; Bireyler1

= Dizi

; } listBox1.Items.Add("Ciftlesme 1 : X1 = " + Bit1Birlestir + " = " + YeniBitleriOndalikSayiyaCevir(Bit1Birlestir) + " X2 = " + Bit2Birlestir + " = " + YeniBitleriOndalikSayiyaCevir(Bit2Birlestir)); listBox1.Items.Add("Birey " + (i + 1) + " icin F(X) = " + Convert.ToString(FonksiyondaYerineKoy(Convert.ToInt32(YeniBitleriOndalikSayiyaCevir(Bit1Birlestir)), Convert.ToInt32(YeniBitleriOndalikSayiyaCevir(Bit2Birlestir))))); } int Parca_ = ParcalamaSayisi.Next(1, 4); for (int i = 0; i < YeniDizi.GetLength(1) - 2; i++) { for (int k = 2; k < 4; k++) { string YeniBit3 = Convert.ToString(UretilenRastgeleBitiIkilikSayiyaCevir(Convert.ToInt32(YeniDizi<2, i>

))); string YeniBit4 = Convert.ToString(UretilenRastgeleBitiIkilikSayiyaCevir(Convert.ToInt32(YeniDizi<3, i>

))); if (YeniBit3.Length == 1) { YeniBit3 = "0000" + YeniBit3; } else if (YeniBit3.Length == 2) { YeniBit3 = "000" + YeniBit3; } else if (YeniBit3.Length == 3) { YeniBit3 = "00" + YeniBit3; } else if (YeniBit3.Length == 4) { YeniBit3 = "0" + YeniBit3; } if (YeniBit4.Length == 1) { YeniBit4 = "0000" + YeniBit4; } else if (YeniBit4.Length == 2) { YeniBit4 = "000" + YeniBit4; } else if (YeniBit4.Length == 3) { YeniBit4 = "00" + YeniBit4; } else if (YeniBit4.Length == 4) { YeniBit4 = "0" + YeniBit4; } GeniAl1 = YeniBit3.Substring(Parca_, 5 - Parca_); GeniAl2 = YeniBit4.Substring(Parca_, 5 - Parca_); Bit3Birlestir = YeniBit3.Substring(0, Parca_) + GeniAl2; Bit4Birlestir = YeniBit4.Substring(0, Parca_) + GeniAl1; yenibireytum

= Bit3Birlestir; yenibireytum

= Bit4Birlestir; yenibireytum

= FonksiyondaYerineKoy(Convert.ToInt32(YeniBitleriOndalikSayiyaCevir(Bit3Birlestir)), Convert.ToInt32(YeniBitleriOndalikSayiyaCevir(Bit4Birlestir))); yenibireyonluk<1, i>

= (FonksiyondaYerineKoy(Convert.ToInt32(YeniBitleriOndalikSayiyaCevir(Bit3Birlestir)), Convert.ToInt32(YeniBitleriOndalikSayiyaCevir(Bit4Birlestir)))); alal = yenibireyonluk<1, i>

; Bireyler1

= Convert.ToInt32(Bit3Birlestir); Bireyler1

= Convert.ToInt32(Bit4Birlestir); Bireyler1

= alal; Bireyler1

= Dizi

; } listBox1.Items.Add("Ciftlesme 2 : X1 = " + Bit3Birlestir + " = " + YeniBitleriOndalikSayiyaCevir(Bit3Birlestir) + " X2 = " + Bit4Birlestir + " = " + YeniBitleriOndalikSayiyaCevir(Bit4Birlestir)); listBox1.Items.Add("Birey " + (i + 1) + " icin F(X) = " + Convert.ToString(FonksiyondaYerineKoy(Convert.ToInt32(YeniBitleriOndalikSayiyaCevir(Bit3Birlestir)), Convert.ToInt32(YeniBitleriOndalikSayiyaCevir(Bit4Birlestir))))); } BireylerinUygunlukDegerleri(yenibireyonluk<0, 0>

, yenibireyonluk<0, 1>

, yenibireyonluk<1, 0>

, yenibireyonluk<1, 1>

); MutasyonOlustur(); } public string YeniBitleriOndalikSayiyaCevir(string SayiAl) { int ikilik_taban = 0, cevrilen_sayi = 0; double onluk_taban = 0; ikilik_taban = int.Parse(SayiAl); cevrilen_sayi = ikilik_taban; for (double i = 0; i < ikilik_taban.ToString().Trim().Length; i++) { onluk_taban += (cevrilen_sayi % 10) * Math.Pow(2, i); cevrilen_sayi /= 10; } return Convert.ToString(onluk_taban); } public void MutasyonOlustur() { Random Mutasyon = new Random(); int SatirMutasyon = Mutasyon.Next(0,3); int SutunMutasyon = Mutasyon.Next(1, 5); String MutasyonBiti; String Degisim; MutasyonBiti = Convert.ToString(yenibireytum

); Degisim = MutasyonBiti.Substring(SutunMutasyon-1, 1); Degisim = (Degisim == "0") ? "1" : "0"; yenibireytum

= MutasyonBiti.Substring(0, SutunMutasyon-1) + Degisim + MutasyonBiti.Substring(SutunMutasyon, 5 - SutunMutasyon); MutasyonBiti = Convert.ToString(yenibireytum

); Degisim = MutasyonBiti.Substring(SutunMutasyon-1, 1); Degisim = (Degisim == "0") ? "1" : "0"; yenibireytum

= MutasyonBiti.Substring(0, SutunMutasyon-1) + Degisim + MutasyonBiti.Substring(SutunMutasyon, 5 - SutunMutasyon); yenibireytum

= (FonksiyondaYerineKoy(Convert.ToInt32(yenibireytum

), Convert.ToInt32(yenibireytum

))); Console.WriteLine(Convert.ToString(yenibireytum

) + " " + Convert.ToString(yenibireytum

) + " " + Convert.ToString(yenibireytum

)); listBox1.Items.Add("mutasyon satiri= " + SatirMutasyon+"  mutasyon sutunu= "+ SutunMutasyon); listBox1.Items.Add("mutasyondaSonra x1=" + yenibireytum<0, 0>

+ " x2= " + yenibireytum<0, 1>

+ " f(x)= " + yenibireytum<0, 2>

+ " %= " + yenibireytum<0, 3>

); listBox1.Items.Add("mutasyondaSonra x1=" + yenibireytum<1, 0>

+ " x2= " + yenibireytum<1, 1>

+ " f(x)= " + yenibireytum<1, 2>

+ " %= " + yenibireytum<1, 3>

); listBox1.Items.Add("mutasyondaSonra x1=" + yenibireytum<2, 0>

+ " x2= " + yenibireytum<2, 1>

+ " f(x)= " + yenibireytum<2, 2>

+ " %= " + yenibireytum<2, 3>

); listBox1.Items.Add("mutasyondaSonra x1=" + yenibireytum<3, 0>

+ " x2= " + yenibireytum<3, 1>

+ " f(x)= " + yenibireytum<3, 2>

+ " %= " + yenibireytum<3, 3>

); listBox1.Items.Add("--------------------------------"); Yenibireysecim(); } public void Yenibireysecim() { int cep = 0; int index = 0; int[] fx=new int<8>

; int[] YeniFxIndex=new int<4>

; int<,>

Gecici = new int<4, 3>

; for (int a = 0; a < 4; a++) {   fx = BireyListesi

; fx<(a + 4)>

= Convert.ToInt32(yenibireytum

); } for (int i = 0; i < 4; i++) {  cep = int.MaxValue; for (int j = 0; j < 8; j++) { if (fx

< cep && fx

> 0) { cep = fx

; index = j; }  } YeniFxIndex

= index; fx

= -fx

; listBox1.Items.Add("8lidenIndex=  "+YeniFxIndex

); } for (int k = 0; k < 4; k++) { for (int m = 0; m < 2; m++) { Gecici

= (4 > YeniFxIndex

) ? BireyListesi[YeniFxIndex

, m] : Convert.ToInt32(YeniBitleriOndalikSayiyaCevir(Convert.ToString(yenibireytum[(YeniFxIndex

-4), m]))); } Gecici

= (4 > YeniFxIndex

) ? BireyListesi[YeniFxIndex

, 2] : Convert.ToInt32(yenibireytum[(YeniFxIndex

- 4), 2]); } for (int s = 0; s < 4; s++) { for (int d = 0; d < 3; d++) { BireyListesi

= Gecici

; } listBox1.Items.Add("8lidenSeçilen= x1= "+BireyListesi

+" x2= "+BireyListesi

+ " f(x)= "+BireyListesi

); } listBox1.Items.Add("-------------------------------- "); Iterasyon++; if (Iterasyon < Convert.ToInt32(TxtIterasyon.Text)) { Dongu();  } } public void Dongu() { BireylerinUygunlukDegerleri(BireyListesi<0, 2>

, BireyListesi<1, 2>

, BireyListesi<2, 2>

, BireyListesi<3, 2>

); DortBoyutluDiziyeCevir(); DortBoyutluDiziIcinDonusumBaslasin(); listBox1.Items.Add("------------------------------------------------"); BitleriCIftlestirmeyeBasla(); } } }  

Uygulamanin Ekran Goruntusu

Son Yazılar

Hepsini Gör
Calisirken ki Garipliklerim...

Merhabalar, Takipcilerim bilirler Teknik bir blog'a sahibim ve Genel konulara cok nadir deginiyorum. Yine oyle haril haril calisiyordum ki birden bire "Yahu Nano, Ne garip bir sekilde calisiyorsun?"

 
 
 
Akilli Mobil Robot Navigasyon Teknigi

RFID Teknolojisi Kullanimi Akilli Mobil Robot Navigasyon Teknigi, Bilindigi üzere mobil robotlar çok farkli etkinlikler gerçeklestirmek için birçok endüstride kullanilir. Bir robot kontrolü genellikle

 
 
 
SDU Yazilim Kulubu Datawarehouse Etkinligi

Merhabalar, blogumu onceden takip edenler bilirlerki teknik yazilarimin yaninda konusmaci olarak katildigim etkinliklerin yani sira, misafir olarak SDU Yazilim Kulubu olarak Universitemizde misafir et

 
 
 

Yorumlar


©2026 by Sevdanur Genc

bottom of page