Tur:Yapay Zeka

Yapay Zeka, genellikle YZ veya AI olarak kısaltılır, Scratch' te tamamen programlama kodundan oluşan bir bilgisayarlaştırılmış zihin ile alakalı yaygın kullanılan bir anlamı vardır. Scratch' teki kullanımı, birazcık yanıltıcı olmasına karşın, en çok kullanıcının bilgisayara karşı oyun oynayabildiği projelerdedir.

Basit YZ'ler
YZ'yi kullanan çoğu proje özel teknikler kullanır, mesela farklı değerleri saklamak için değişkenleri kullanmak gibi. Bu değerler; önceki konumlar, kullanıcı girdileri ve benzeri olabilir. Bunlar, bilgisayarın iyi bir meydan okuma yapmasına ve görevinde başarılı olmasına yardımcı olacak farklı davranışları hesaplamaya yardımcı olur.

Kusursuz YZ'ler
Kullanışlı ve ideal bir YZ kendini koşullara adapte etmek için özyinelemeyi kullanacaktır

(Bir oyun için) örnek verilecek olursa: Belirli bir oyuncu için tahtadaki en iyi hamleyi verecek bir özyineleyici fonksiyon aşağıdaki mantık ile yazılabilir: Özyineleyici fonksiyonlar ve YZ oluşturmadaki kullanımları hakkında daha fazlasını görmek için oyun ağacı maddesine bakınız.
 * Hangi hamlelerin mümkün olduğunu hesapla
 * Eğer belirli bir pozisyon bilgisayar için kazanç/kayıp, berabere, veya tamamlanmamış bir oyun ise bunu söyleyecek bir algoritma
 * Eğer pozisyon berabere, kazançlı, veya kayıplı ise berabere, kazançlı, veya kayıplı de ve tahtayı göster
 * Aksi durumda:
 * Oyuncu için her devam hamlesi boyunca tekrar et:
 * Eğer diğer oyuncu için en iyi hamle onun için bir kayıpsa, "Kazanç" de ve devam eden hamleyi göster
 * Eğer diğer oyuncu için en iyi hamle onun için bir beraberlik ise, "Berabere" de ve devam eden hamleyi göster
 * Eğer diğer oyuncu için en iyi hamle onun için bir kazançsa, "Kayıp" de ve devam eden hamleyi göster

Genel YZ'ler
YZ'nin, sadece faktörlerden birine dayanan, başka bir sınıfı da vardır. Bu YZ'ler oldukça basittir, ve çoğu durumda, etkililerdir. Ancak, bir YZ'nin gerçek şartlarını karşılamazlar. Örnek olarak, Agent White (Ajan Beyaz) projesinde, YZ belirli bir yolda harekete eder ve sadece sizi vurmaya çalışır. Bu YZ'de, sadece kullanıcının konumu YZ için önemlidir; silahını kullanıcıya doğru yöneltir. Broomsticks (Süpürge Sapları) projesinde ise, YZ sadece topa göre konumunu değiştirir.

Öğrenen YZ'ler
Dış uyaranları algılayabilen ve bunu kullanmanın en iyi yoluna karar veren YZ'ler bir öğrenen YZ olarak adlandırılır. Bilgisayar zekasının bu türü genellikle makine öğrenimi olarak da adlandırılır. Bir öğrenen YZ geçmiş ve şimdiki deneyimlerinden bir şeyler öğrenebilir. Bir öğrenen YZ yapmanın yaygın bir yolu da belirsiz bir şekilde hayvan beynini taklit eden bir sinir ağı kullanmaktır.

Diğer YZ'ler
YZ'nin başka bir türü Agent White'ın bir remixi olan şurada bulunmaktadır. Bu remixte, YZ rastgele bir yol seçer ve onu takip eder. YZ, kontrol ettiğiniz karakterin şu anki konumuna dayalı olan bir ileriki x ve y konumunu ve matematiği kullanır. Daha sonra hedefine varıncaya veya bir duvara çarpıncaya kadar yeni konuma doğru yavaşça ilerler. Bu durum, Yapay Zeka'nın yerine, biraz daha Yapay Rastgeleliktir çünkü duvarlara yürümek dışında başka hiçbir şey için zeka kullanmaz.

YZ'nin sınırlamaları
YZ'nin karşı karşıya kaldığı en büyük sınırlamalardan bir tanesi hızdır. Scratch oldukça yavaş bir programlama dilidir; bundan dolayı da Scratch'taki çoğu YZ yavaştır çünkü kod dizileri çok uzundur.

Ayrıca, karmaşıklık da tüm YZ programları çok büyük ve karmaşık olduğundan dolayıYZ için büyük bir sorundur, dolayısıyla da komut dizilerini Scratch'i çökertmeden yapmak uzun ve çok geçikmeli olabilir. Örnek olarak, basit bir Tic-Tac-Toe oyunu YZ ile birlikte eğer bloklarındaki çok sayıdaki koşuldan dolayı birden fazla sayfada çalışan bir kod dizisine sahip olacaktır, ve bazen bunu hızlandırmaya çalışan bir girişim onu tek kare yaparak olacaktır.

Karmaşık komut dizileri remixlemeyi de bir probleme dönüştürür. Bunların hepsinden dolayı çoğu YZ projesinin herhangi bir iyileştirilmiş hali olmaz, bu da YZ'nin arızalı kalmasına sebep olur. YZ'ler kullanıcılar tarafından kolayca kaçınılabilecek hatalar yaparlar, ve bunlar gibi çoğu hata komik bir biçimde yapay aptallık olarak bilinirler.

Yaygın Kullanımlar

 * 2 kişilik (Bilgisayar Kullanıcı'ya karşı) oyunlar
 * Yol bulma
 * Kullanıcıyla sohbet etme (genellikle sohbet botu veya chatbot olarak ifade edilir)

Örnek Projeler
Bu projeler YZ'yi pratik olarak mümkün olan en doğru anlamda kullanmaktalar:


 * YZ tankı
 * Yol Bulucu YZ
 * Satranç
 * Phil 1.0
 * Enna (Bir Sohbet Botu Programı)

Ayrıca Bakınız

 * Oyun Ağacı
 * Veriyi Kaydetme

Künstliche Intelligenz 人工知能 (AI) プロジェクト