Kendi Evrim Simülasyonunuzu Yapın

Bu yazı kendisi aynı zamanda bir Evrim Çalışkanı olan Can Holyavkin tarafından, Biyo RSS Blogu için kaleme alınmıştı. Eş zamanlı olarak yazıyı buradan yayınlıyor, Can’a teşekkür ediyoruz.

Bir süre önce internette rastladığım ilkel bir evrim simülasyonunu sizinle burada paylaşmıştım. Bu sefer tanıtımını yapacağım simülasyon ise bambaşka.

Evrim teorisi içinde ne varsa bu simülasyonda da var. Rasgele mutasyonlar, Doğal Seçilim, Rasgele Besin Dağılımı, Eş seçimi ve Evrim geçiren küçük canlılar. Diğer adıyla swimbot’lar.

Bu tanıtıma konu olan bu simülasyon, Jeffrey Ventrella adındaki bir programcının 2004’te yazdığı “Darwin Pond” adındaki ufak  program ile hayatına başladı.

Bu programın amacı basitti: Hayatı oluşturan basit öğeleri (yemek, çiftleşme vs) bilgisayar ortamında simüle etmek. 2005’te son güncellemesi yapılan program, adı “Gene Pool” olarak değiştirilip, içerik ve görsel açıdan geliştirilerek tekrar yayınlandı.

Peki “Gene Pool” nedir?

“Gene Pool”, yüzlerce sanal organizmanın, yüzme yeteneklerine göre evrildikleri bir bilgisayar programıdır. Bu küçük organizmalar “swimbot” olarak adlandırılıyor.

Swimbot’lar normal canlıların gerçekleştirdiği temel davranışları gerçekleştirebiliyor. Örneğin, diğer canlılar gibi çiftleşebiliyor, yemek yiyebiliyor, hareket edebiliyor ve ölebiliyorlar.

Ve tüm bunların gerçekleşmesinde önemli rolü bulunan “doğayı”, siz kontrol edebiliyorsunuz. Mesela, çiftleşme sırasında dikkate alınacak kriterleri siz belirleyebiliyorsunuz. Örneğin, “benzer renktekiler çiftleşsin” dediğiniz zaman, bir süre sonra, popülasyonda sadece belirli renklerin kaldığını görüyorsunuz. Öte yandan, “her birey kendinden daha büyük bir bireyle çiftleşmeye eğimli olsun” dediğiniz de, bir süre sonra dev yüzücüler ortaya çıkmaya başlıyor.

Çiftleşen bireylerin çocukları da, ebeveynlerin özelliklerinin karışımını alıyor. Burada tüm karakterlerin eşit baskınlıkta olduğu varsayılıyor. Genler, ebeveynlerden yavrulara rasgele geçiyor.

Swimbot’ların diğer bir ihtiyacı da yemek yemek. Yemekler, doğal ortamda bulunduğu gibi, rasgele yerlerde ortaya çıkabiliyor. Yiyeceklerin tekrar oluşma hızlarını ve ne kadar alana yayılacaklarını ayarlayabiliyorsunuz.  (Böylece, mesela yiyeceğin kısıtlı olduğu bir ortamda swimbotların nasıl evrildiğini test edebilirsiniz.) Programla gelen diğer harika bir özellik de, zamana bağlı olarak yemek ve popülasyon arasındaki ilişkiyi görebilmenizi sağlayan bir tablo bulunması.

Swimbot’ların belli bir enerjisi var. Bu enerji, gösterdikleri yüzüş şekli ile orantılı şekilde azalıyor. Besin aldıkça tekrar yükseliyor. Dolayısı ile etkili yüzüş gösteremeyip, besine ulaşamayan “başarısız” bireyler gen havuzundan siliniyor.

Havuzunun içinde çoğu zaman yüz kadar swimbot olabiliyor. Bunların bazıları çok hoşunuza giderse, onları hareket ettirip besine kolay yoldan ulaşmalarını sağlayabiliyorsunuz. (Doğa da bazen adil olmayabilir! Ya da bunun “yapay seçilim” olduğunu varsayabiliriz.) Bu favori swimbot’larınızı kaydedip ileride yeni bir havuzda da yer almalarını sağlayabiliyorsunuz.

Programı ücretsiz olarak indirip kurabilmeniz mümkün. Mac ve Windows için ayrı ayrı sürümleri mevcut. 314 kb’lık boyutu ile bilgisayarda da oldukça ufak bir yer kaplıyor.

Windows Kurulum Dosyası / Mac Kurulum Dosyası

Programın nasıl çalıştığı, temelleri, swimbot’ların gerçekleştirdiği hareketlerin neye dayandırıldığı, çiftleşme kriterlerinin ayrıntıları gibi bilgilere ve daha fazlasına, programın yaratıcısı Jeffrey Ventrella tarafından yazılan kitapçıktan ulaşabilirsiniz.

GenePool: Exploring The Interaction Between Natural Selection and Sexual Selection

Share/Save/Bookmark

Yorumlar (3)

mert kılıçkayaNisan 19th, 2010 at 22:21

çok güzel bir çalışma ve blog,tebrikler

KadirNisan 20th, 2010 at 19:54

bir türlü düzgün bi evrim olmadı. ya yiycek çok fazla oluyor ya çok az oluyor herkes ölüyor doğru ekosistem oluşmadı. tweak bölümündeki değerleri yazarmısınız? birde üremeyi neye göre seçiyorsunuz? ve zamanı hızlandırmak mümkün mü?

CanNisan 20th, 2010 at 20:15

Merhaba Kadir,

Tweak bölümündeki değerleri ben sabit bir değerde tutmuyorum. Popülasyon miktarına göre artırıp azaltıyorum. Ama ipucu vermek gerekirse, food grown delay’i düşük tutup, Food bit energy’i de düşük tutmak işe yarıyor bende. Ama bu faktörleri dinamik olarak düzenlemek daha iyi sonuç veriyor.

Swimbotlar rastgele yaratıldıkları için bazen, çoğu “başarısız” olabiliyor ve tümü ölebiliyor. Başarılı bir popülasyon için 2-3 deneme yapmak gerekebiliyor.

Üreme seçimini “Tweak>Swimbot Sexual Preferences” kısmından seçebiliyorsun. Oradaki “Big”, “Hyper” gibi seçenekleri seçerek, çiftleşme sırasında hangi kriterin göz önüne alınacağını belirleyebiliyorsun.

Ne yazık ki zamanı hızlandırmak mümkün değil. Bence de gerekli bir özellik. Açıkçası ben, bilgisayarı gece boyunca açık bırakarak bu sorunu çözüyorum. :)

Bir yorum yazın

Yorumunuz