Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

Conway's Game of Life ve Genetik Algoritma

Bu proje, Conway'in Game of Life prensibine dayalı bir simülasyon, görselleştirme aracı ve genetik algoritma uygulamalı bir deneydir. Kullanıcılar farklı desenleri inceleyebilir, hücreleri manuel olarak değiştirebilir ve genetik algoritma kullanarak ilginç desenler oluşturabilir.

Game of Life Nedir?

Conway's Game of Life, İngiliz matematikçi John Horton Conway tarafından 1970 yılında tasarlanan sıfır oyunculu bir simülasyondur. Aşağıdaki basit kurallara göre ilerleyen bir hücresel otomattır:

  1. Canlı bir hücrenin 2'den az canlı komşusu varsa, bu hücre ölür (yetersiz nüfus).
  2. Canlı bir hücrenin 2 veya 3 canlı komşusu varsa, bu hücre yaşamaya devam eder.
  3. Canlı bir hücrenin 3'ten fazla canlı komşusu varsa, bu hücre ölür (aşırı kalabalık).
  4. Ölü bir hücrenin tam olarak 3 canlı komşusu varsa, bu hücre canlanır (üreme).

Özellikler

Temel Özellikler

  • Simülasyonu başlatma/durdurma
  • Izgara hücrelerini tıklayarak açıp kapatma
  • Hazır desenleri yerleştirme (Glider, Blinker, Toad, Beacon, Pulsar, Glider Gun)
  • Simülasyon hızını ayarlama
  • Rastgele grid oluşturma
  • Izgarayı temizleme

Renk Kodlaması

  • Yeşil: Yeni doğan hücreler - Önceki adımda ölü olan, şimdi canlı olan hücreler
  • Kırmızı: Muhtemelen ölecek hücreler - Komşu sayısı kurallarına göre bir sonraki adımda ölmesi muhtemel hücreler
  • Mor: Lider hücreler - Diğer hücreleri etkileyen ve yönlendiren hücreler
  • Mavi: Lider etkisindeki hücreler - Liderlere yakın olan ve onların etkisi altında daha kolay hayatta kalan hücreler
  • Beyaz: Normal yaşayan hücreler
  • Siyah: Ölü hücreler

Liderlik ve Kolektif Hareket

  • Lider hücreler sistemde belirli bir etki alanı oluşturur
  • Lider etkisindeki hücreler daha kolay hayatta kalır (normal kurallardaki sınırlamalar genişler)
  • Lider etkisindeki alanlarda yeni hücreler daha kolay doğar (bir komşu eksiği ile bile)
  • Etki alanında doğan hücreler küçük bir olasılıkla lider haline gelebilir
  • Liderler, Game of Life dünyasındaki toplulukların ve kolonilerin gelişimini yönlendirir

Genetik Algoritma

  • Farklı hedeflere göre ilginç desenleri otomatik olarak oluşturma
  • Ayarlanabilir parametreler: Popülasyon büyüklüğü, mutasyon oranı, maksimum nesil sayısı
  • Farklı uygunluk fonksiyonları:
    • Büyüme (Growth): Kontrollü bir şekilde büyüyen desenler bulur
    • Osilasyon (Oscillation): Düzenli olarak tekrarlayan desenler geliştirir
    • Hareket (Movement): Izgara boyunca hareket eden desenler (glider gibi) oluşturur
    • Kararlılık (Stability): Kararlı yapılar içeren desenler bulur

Nasıl Çalıştırılır

  1. Gerekli kütüphaneleri yükleyin:

    pip install -r requirements.txt
    
  2. Programı çalıştırın:

    python game_of_life_tkinter.py
    

Kontroller

Temel Kontroller

  • Izgara Tıklama: Hücreleri açıp kapatır veya seçili bir deseni yerleştirir
  • Boşluk Tuşu: Simülasyonu başlatır/durdurur
  • R Tuşu: Izgarayı rastgele doldurur
  • C Tuşu: Izgarayı temizler
  • Yukarı/Aşağı Ok Tuşları: Simülasyon hızını ayarlar
  • Desen Butonları: Bir desen seçer, sonraki tıklama deseni yerleştirir
  • Start/Stop Butonu: Simülasyonu başlatır/durdurur
  • Clear Butonu: Izgarayı temizler
  • Random Butonu: Rastgele bir ızgara oluşturur
  • Toggle Leaders Butonu: Lider mod ayarlama modunu açar/kapar (bu modda canlı hücrelere tıklayıp lider yapabilirsiniz)

Genetik Algoritma Kontrolleri

  • Genetic Algorithm Butonu: Genetik algoritma panel penceresini gösterir/gizler
  • Start GA Butonu: Genetik algoritma sürecini başlatır/durdurur
  • Apply Best Solution: En iyi çözümü ana ızgaraya uygular

Bu Deneyimden Çıkarılacak Sonuçlar

  1. Basit Kurallar Karmaşık Davranışlar Oluşturabilir: Conway'in Game of Life, çok basit kurallarla karmaşık desenler, hareket eden yapılar ve kendini kopyalayan sistemler ortaya çıkarabilir. Bu, doğanın ve biyolojik sistemlerin basit kurallardan karmaşık davranışlar üretme yeteneğini gösterir.

  2. Genetik Algoritmaların Gücü: Genetik algoritmalar kullanarak manuel olarak tasarlanması zor olabilecek özel özelliklere sahip desenleri otomatik olarak keşfedebiliriz. Bu, yapay zekanın problem çözmede ve yaratıcılıkta insan kabiliyetlerini nasıl güçlendirebileceğini gösterir.

  3. Emerjan Fenomenler: Game of Life, emerjan davranışların (alt seviye etkileşimlerden karmaşık, üst seviye davranışların ortaya çıkması) mükemmel bir örneğidir. Bireysel hücreler sadece komşularını görür, ancak bu etkileşimlerden glider'lar, osilatlar ve kendini kopyalayan yapılar gibi daha yüksek seviye davranışlar ortaya çıkar.

  4. Görselleştirmenin Önemi: Renk kodlaması (yeşil, kırmızı, beyaz) kullanarak sistem dinamiklerinin anlaşılmasını büyük ölçüde kolaylaştırabiliyoruz. Bu, bilgiyi görselleştirmenin karmaşık sistemleri anlama ve analiz etmedeki önemini gösterir.

  5. Evrimsel Süreçlerin Simülasyonu: Game of Life ve genetik algoritma kombinasyonu, evrim teorisinin temel prensiplerini (seçilim, çaprazlama, mutasyon) gösteren güçlü bir simülasyon sağlar. Bu, basit bir dijital ortamda bile doğal seçilimin nasıl çalışabileceğini gösterir.

  6. Görünen Akıl Yürütme: Hücreler son derece basit kurallara göre hareket etmelerine rağmen, ortaya çıkan davranışlar öylesine karmaşıktır ki sanki hücreler yaşamak için akıl yürütüyormuş gibi görünür. Bu, zeka ve akıl yürütmenin görece basit mekanizmalardan nasıl ortaya çıkabileceğine dair düşündürücü bir örnektir. Dışarıdan bakıldığında, hücreler hayatta kalmak için stratejik kararlar alıyormuş izlenimi verirler, ancak gerçekte sadece deterministik kuralları takip etmektedirler.

  7. Liderlik ve Sosyal Organizasyon: Lider hücreler kavramı ile Game of Life'ta daha karmaşık sosyal organizasyonları modelleme imkanı elde edilir. Bir liderin etrafındaki hücreleri etkileme kabiliyeti, doğal sistemlerde görülen hiyerarşik yapıların basitleştirilmiş bir modelidir. Bu, topluluk oluşturma, kolektif hareket ve sosyal organizasyonların evrimsel avantajlarını simüle eder ve grup halinde hareket etmenin bireysel hücreler için nasıl hayatta kalma avantajı sağladığını gösterir.

About

Conway's Game of Life ve Genetik Algoritma

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages