Merhaba değerli e-bergi okurları. Bu ay sizlere, ilk kez düzenlediğimiz yapay zeka yarışması "May I Challenge"dan bahsedeceğim. Temel olarak, bizim oyunumuz üzerine yarışmacıların yazdıkları yapay zekaların birbirleriyle maç yaptırılmasını amaçlayan bir yarışma May I Challenge. Bu yazımda hem yarışmamızın oluşum aşamasını hem de yarışmaya katılmak için yapılması gerekenleri anlatacağım. Böylece yarışmamıza katılmayı düşünenlere de rehber olmaya çalışacağım.

Bir yapay zeka yarışması düzenleme önerisi ilk olarak 2010 yılının başlarında akademik danışmanımız Prof. Dr. Göktürk Üçoluk'tan geldi. O dönemde Geleneksel Programlama Yarışması'nın yoğunluğundan dolayı bu işe vakit ayıramamıştık. Fakat bu yılın başında topluluğumuz, yarışmayı 2011 yılının Mart ayında başlatma kararı aldı. Tabii uluslararası bir yarışma düzenlemek istediğimiz için İngilizce bir isim seçmeye karar verdik. "AI Challenge"ı çağrıştıran bir isim ararken, topluluğumuzun eski başkanlarından İlke Demir'in önerisi üzerine yarışmanın ismini "May I Challenge" olarak kararlaştırdık. Bu aşamadan sonra topluluk olarak çok yoğun çalışmalarla, hem yarışmanın oyununu hem web sitesini hem de arkaplanda çalışacak programları yazmaya başladık. Yarışmanın sistemini yazmak için çalışan arkadaşlarımızı http://www.mayichallenge.com/site/page?view=credits&lang=tr adresinden de inceleyebilirsiniz.

Yapay zeka yarışması topluluğumuz için bir ilk olsa da, Google tarafından bir benzeri daha önce düzenlenmişti. Google'ın düzenlediği yarışmanın aksine biz, yarışma takvimi sona erdikten sonra da sistemi kapatmayıp insanların kendi aralarında sürekli maç yapmalarına izin vermeyi planlıyoruz. Böylece ödül için olmasa da kendi yapay zekanızı diğerleriyle karşılaştırabileceksiniz. Ayrıca yarışmacılar istediklerinde diğer yarışmacılara düello teklif edebilecekler ve puanlamaya dahil olmayan maçlar yapabilecekler.

Yapay Zeka Yarışması

May I Challenge yukarıda da belirttiğim gibi oyun üzerine yazılan yapay zekaların yarıştığı bir sistem. Yarışmaya katılmak için hiçbir şart belirlemedik ve isteyen herkesin katılıp yapay zekasını deneyebileceği bir ortam oluşturmaya çalıştık. Yarışmamıza dahil olmak için http://www.mayichallenge.com/?lang=tr adresinden web sitemize kaydolup, "Oyun" sayfasındaki bilgilere göre yapay zekanızı yazabilirsiniz. Her ne kadar yarışmayı duyurmadan önce dökümantasyon için çalışmalar yapmış olsak da hâlâ eksiklerimiz olduğunun farkındayız. Bu nedenle dökümantasyon çalışmalarımız devam etmekte.

Yapay zekanızı C, C++, Java, Python dillerinden herhangi birinde yazdıktan sonra "Profil" sayfasından yükleyip yarışmaya katılabilirsiniz. Kodunuzu yükledikten sonra 10 dakika içerisinde bizim yazdığımız bot ile yaptığı maçı izleyebilirsiniz. Bu işlem kodunuzu her güncelleyişinizde yenilenecek ve "Maçlarım" sayfasında bota karşı oynadığınız maç yenilenecektir. Eğer 10 dakika geçtikten sonra bot ile yaptığınız maçı "Maçlarım" sayfasında göremiyorsanız veya hala daha önceden yaptığınız maçı izliyorsanız bu, yazdığınız kodun düzgün çalışmadığını ya da derlenemediğini gösterir. Kodunuzun çalışır durumda olduğunu bot ile yaptığınız maçtan anlayabilirsiniz. Daha sonra sistem otomatik olarak, belli aralıklarla iki yarışmacı belirleyecek ve bu kişilerin yazdığı yapay zekaları oyunumuz üzerinde yarıştıracak.

Puanlama sistemimiz kazanana 3 puan, kaybedene 1 puan, maç berabere biterse de her bir yarışmacıya 2'şer puan verecek şekilde ayarlandı. Her katılımcı puan sistemine "0" puan ile giriş yapacak ve maç yaptıkça puanı artacak. Eğer yarışmacı yazdığı kodu güncellerse, daha önce topladığı puanlar silinecek ve "0" puan ile yarışmaya tekrar başlayacak. Sistem, kodunu güncelleyen yarışmacının puanlarını silse de geçmişte yaptığı maçlara dokunmayacak. Böylece yarışmacı, oyun süresince yaptığı tüm maçları izleyebilecek.

Takvim

Yarışmamızın resmi başlangıç tarihi 4 Nisan olarak belirlendi. Bundan sonraki ilk iki hafta yüklenen kodlar sadece bizim yazdığımız botla maç yapabilecekler. 18 Nisan tarihinden itibaren ise sistemimiz otomatik olarak tüm yarışmacıları eşleştirip maçlar yaptıracak ve puanlama sistemi devreye girecek. Bu şekilde maçlar 10 Temmuz tarihine kadar düzenli olarak devam edecek. 10 Temmuz Pazar günü saat 23.55'te kod yükleme sistemi durdurulacak ve yarışmacılar en son yükledikleri kod ile tekrar maç yaptırılacak. Bu maçlar lig maçları gibi olacak, yani herkes birbiriyle maç yapmış olacak. Daha önceden topladıkları puanların da küçük bir etkisi olacak şekilde tekrar bir puanlama yapılacak ve yarışmanın galibi açıklanacak. Bu işlemler yapılırken her yarışmacı kendi yaptığı maçları izleme imkanına sahip olacak.

Düello

Yarışmacılarımız sadece sistemin belirlediği kişilerle maç yapmak zorunda değiller. Diğer katılımcıların profil sayfalarına ulaşıp onlara düello teklif edebilecekler. Karşıdaki yarışmacı düelloyu kabul ederse, sistem yakın bir zamanda bu iki yarışmacıyı maç yaptıracak ve maçların gösterildiği sayfada yarışmacılar maçı izleyebilecekler. Elbette bu maçlar puanlamaya dahil edilmeyecek. Başka kişilerin profil sayfalarına ulaşmak için ise puanlama sayfasında yarışmacının kullanıcı adına tıklamak yeterli.

Ödüller

Geleneksel Programlama Yarışmamızda olduğu gibi "May I Challenge"da da kazananlara belli ödüller vermek için çalışmalar yaptık ve yarışma sonucunda birinci gelen katılımcıyı 1000 TL ile ödüllendirme kararı aldık. Ayrıca ilk 5'e giren yarışmacılara TaleWorlds'ten Mount&Blade oyunu hediye edeceğiz.

ODTÜ Bilgisayar Topluluğu üyeleri olarak, yürüttüğümüz gayretli çalışmalar sonucunda gurur duyabileceğimiz bir sistem oluşturmanın mutluluğunu yaşıyoruz. Öncelikle akademik danışmanımız Prof. Dr. Göktürk Üçoluk'a, daha sonra sponsorlarımıza ve emeği geçen tüm üyelerimize teşekkür ederim. Umarım yeni yarışmamız amaçladığımız şekilde gerçekleşir.