Picproje Elektronik Sitesi

FORUM HAKKINDA => Seminer, Kurs, Yarışma Fuar Duyuruları => Konuyu başlatan: Erdem - 21 Eylül 2012, 13:56:12

Başlık: CSS188 Yapay Zekaya Giriş pazartesi başlıyor
Gönderen: Erdem - 21 Eylül 2012, 13:56:12
Berkeley Üniversitesinin yapay zekaya giriş kursu pazartesi günü başlıyor.

Öğrenciler kursta yapay zekanın temellerini oluşturan teorik bilgileri öğrendikten sonra, öğrendikleri yapay zeka algoritmalarını video oyunlarında kullanabilecekler.

Ön Koşullar:

- Programlama
       Nesneye yönelik programlama
       Öz yineleme
       Python ya da Python'u çabuk öğrenebilme (ufak bir ders veriliyor)
- Veri yapıları
       Listeler, kümeler, diziler, eşleme tabloları
       Yığıt, kuyruk, öncelikli kuyruk
       Ağaçlar ve çizitler
- Matematik
       Olasılık, rastgele sayılar
       Temel sonuşmaz karmaşıklığı (Büyük-O) 
       Sayma sistemleri(Kombinasyon permütasyon)     

https://www.edx.org/courses/BerkeleyX/CS188.1x/2012_Fall/about (https://www.edx.org/courses/BerkeleyX/CS188.1x/2012_Fall/about)   
Başlık: Ynt: CSS188 Yapay Zekaya Giriş pazartesi başlıyor
Gönderen: Tagli - 21 Eylül 2012, 18:11:32
Bilgilendirme için teşekkürler. Kaydoldum. Epeydir ilgimi çeken ve kendimi geliştirmek istediğim bir konuydu. Daha önce bir miktar Reinforcement Learning ile uğraşmışlığım da var.
Başlık: Ynt: CSS188 Yapay Zekaya Giriş pazartesi başlıyor
Gönderen: pea - 21 Eylül 2012, 19:42:37
Ben de kaydoldum, bu dönem okulda Yapay Zeka dersi de göreceğim ama biraz zorlayacak gibi duruyor.Programlama temelim çok zayıf çünkü.
Başlık: Ynt: CSS188 Yapay Zekaya Giriş pazartesi başlıyor
Gönderen: Erdem - 21 Eylül 2012, 21:26:56
Aslında bu konuda benim de deneyiyim yok.

Sadece Mat Buckland'ın oyunlarda yapay zeka kullanımı ile ilgili Programming Game AI By Example (http://www.ai-junkie.com/books/toc_pgaibe.html) kitabını hızlıca okumuştum.

Ama kodları yazdığımı söyleyemem ve o kitaptan adamakıllı istifade edebilmek için bir 6 ay 1 sene geçer diye düşünüyorum.  Zaten abartmayayım ama sanırım yüzbinlerce belki milyon satır kod var.  Eğer bu kitabın kaynak kodlarını sıfırdan yazan programcı varsa elini öpebilirim  :D

Kitaptaki kaynak kodlardan bir örnek:

https://gist.github.com/3762946 (https://gist.github.com/3762946)

Çok harika bir kitap. Özellikle çizit kuramını anlattığı bölümü çok beğendiğimi söyleyebilirim.
Alıntı YapWARNING!
Beware! Search algorithms have the ability to create in the average human
brain terrible amounts of frustration and confusion, leading to headaches,
nausea, and sleep deprivation. Spontaneous and excessive howling is not
uncommon. Please be aware these symptoms are commonplace in the early
stages of the learning curve and are not generally cause for concern. Nor-
mal service is usually resumed within a reasonable length of time. (If
symptoms persist, however, stay clear of busy roads, razor blades, and
loaded weapons. Seek medical advice at the earliest opportunity.)
Ama gene aynı bölümde böyle bir uyarı vardı. Yani bu bölümdeki konulara çalışırken elektrik direklerine çarpmamaya dikkat edin diye uyarmışlar.

Açıkçası ben bu kursun beni de oldukça zorlayacağını tahmin ediyorum.  Programlama tarafı kolay ama veri yapıları ve algoritmalar konusunda eksiklerim var.

Ama şöyle de bir şey var. Robert Sedgewick ve Kevin Wayne tarafından verilen Algoritmalar I kursuna kayıt olup eksikliklerinizi tamamlayabilirsiniz. Sedgewick bildiğiniz üzere efsane bilgisayar bilimci Donald Knuth'un doktora öğrencisi ve hızlı sıralama üzerinde fazlaca çalışmış.

https://www.coursera.org/course/algs4partI (https://www.coursera.org/course/algs4partI)

Asıl CS188 için gerekli olduğunu düşündüğüm çizit kuramı ve yol bulma algoritmalarının anlatıldığı ikinci kısmı da yakında başlayacak.

https://www.coursera.org/course/algs4partII (https://www.coursera.org/course/algs4partII)

Bir de dersler çok zevkli ve eğlenceli konular anlatılıyor. Hatta konular öyle yerlere geliyor ki insanın ağzı açık kalıyor.   
Başlık: Ynt: CSS188 Yapay Zekaya Giriş pazartesi başlıyor
Gönderen: Erdem - 25 Eylül 2012, 00:27:35
Vav! Kurs başlamış. Arkaplandaki karaktere dikkat  :P

Welcome to CS188x! (http://www.youtube.com/watch?v=4DIWPWoGK6w#ws)
Başlık: Ynt: CSS188 Yapay Zekaya Giriş pazartesi başlıyor
Gönderen: Erdem - 02 Ekim 2012, 20:22:05
Nasıl gidiyor arkadaşlar  :)

Ben şu ana kadar kursu gayet başarılı buldum. Hocalar da güzel anlatıyor.

Çizgi karakterler de hoş olmuş. İnsan kolay kolay unutmuyor.
Başlık: Ynt: CSS188 Yapay Zekaya Giriş pazartesi başlıyor
Gönderen: Tagli - 07 Ekim 2012, 20:17:10
Hafta içi pek zaman ayıramadığım için hafta sonu biraz hızlı bir şekilde dersleri geçmek zorunda kaldım - bu iletiyi yazmakta gecikmemin sebebi de bu. Dersler gerçekten de çok hoş, hoca iyi anlatıyor. Soruların bazıları kolay ama bazıları zorluyor, ilk denemede doğru cevabı bulamadığım pek çok soru var. Özellikle admissibility ve consistency kavramlarını anlamakta zorlandım biraz. Halen kafama tam oturmuş değiller ve zaten en çok da onlarla ilgili sorularda sıkıntı yaşadım.
Başlık: Ynt: CSS188 Yapay Zekaya Giriş pazartesi başlıyor
Gönderen: Erdem - 08 Ekim 2012, 00:56:21
Admissible heuristics yani tutarlı tahmini ben şöyle anlıyorum.

Örneğin bir arama algoritması tahmin yaparken yaptığı tahminler her zaman gerçek masraftan düşük ya da eşitse buna tutarlı tahmin deniliyor.

Hatta bir karikatürde bir gösterge vardı. Hedefe yaklaştığı halde zor bulursun, hayatta başarılar falan gibi laflar ediyordu. İşte bu tutarlı bir tahmin değil.

Kısacası tahmin yaparken masrafı ya da değeri olduğundan fazla gösteren işlevler tutarlı değil.

mesaj birleştirme:: 08 Ekim 2012, 18:03:43

Aslında ben de ödevi yaparken arama algoritmaları dışındaki bölümü resmen salladım  :D

Ben de hafta içi çalışmak yerine yok EPE okudum. Yok dijital kalem nasıl yapabiliriz diye Zihni Sinir projeleri düşündüm. Hiç alakası yokken derleyiciler ile ilgili bir kaç ders seyrettim. Yani 3-4 günüm aylaklıkla geçti.

Konular zevkli ama hiç kolay değil. O yüzden oturup adam gibi çalışmam lazım. Algoritmalar ve BB'ye giriş kurslarını bıraktım.

Proje süresinin bitmesine 1 hafta kaldı. Bu gün denedim ama hala yazmış değilim  ::)
Başlık: Ynt: CSS188 Yapay Zekaya Giriş pazartesi başlıyor
Gönderen: anladinmi - 08 Ekim 2012, 18:20:24
Ben de o dersi takip ediyorum, hakkikaten iyi anlatiyorlar. Uni de dersini görmüstüm, aklimda çok az sey kaldi. Ya çogunu unuttum, ya da zamaninda bu kadar anlamamistim. fakat bu anlatim hem görsel, hem de üzerine basabasa gösteriyorlar.
Step by step videolari mekanizmayi pekistirdi.

Admissible :
Alıntı Yapbir arama algoritması tahmin yaparken yaptığı tahminler her zaman gerçek masraftan düşük ya da eşitse buna tutarlı tahmin deniliyor.
Her nokta da h degeri o noktadan sonuca ulasan en kisa yoldan daha az olmali.
A sehirinden B sehirine kus uçusu 600km ise. admissible heuristic için h degeri A sehirinde 600 veya alti olmali.
Bu arada admissible tutarli degil de kabul edilir diye tercume ederdim.

Consistent :
noktalarin h degerine bakmak yerine noktalar arasindaki masrafa bakiyorsun ve iki nokta arasindaki h farkina bakiyorsun. bu h farki masraftan az olmali.
A'dan B'ye gitmek için 150 km otoyol yapip C'de mola verdiysen,  mola verdigin yer  B noktasina kus uçusu 50 km ise. Bir yerde sorun var demektir. tutarsiz bir durum.


Su projeyi indirdim, sorulari da okudum. python 'uda indirdim. Python pek bilmiyorum, bakalim nasil olacak.
Başlık: Ynt: CSS188 Yapay Zekaya Giriş pazartesi başlıyor
Gönderen: Erdem - 10 Ekim 2012, 02:22:25
Pacman'i yazan var mı.

Ben yavaş yavaş çözüme yaklaşıyor gibiyim.

(http://www.ehobi.org/resim/resim/pacman.png)

İlk yazdığımda deli gibi bir sağa bir sola gidiyordu. Yavaş yavaş akıllanmaya başladı  :)
Başlık: Ynt: CSS188 Yapay Zekaya Giriş pazartesi başlıyor
Gönderen: anladinmi - 10 Ekim 2012, 02:31:10
Ben bu gece kodlara bakmaya basladim.
Pythonda kendimi ifade etmekte biraz zorluk yasiyorum.
Böyle degisken tanimlanan (tanimlanmayan) dil olur mu ?
Neyse gereken belli basli fonksyonlari buldum.

problem.getStartState()
problem.isGoalState((4,4))
problem.getSuccessors((2,2))
tarzi ifadeler ne döndürüyor onu buldum.

simdi set,list, stack ve döngü kullanarak DFS yazma kaldi (daha birinci soru).
Devami yarin veya hafta sonuna kaldi.

Başlık: Ynt: CSS188 Yapay Zekaya Giriş pazartesi başlıyor
Gönderen: Erdem - 11 Ekim 2012, 00:30:41
Bu arama algoritmaları ile ilgili çok ilginç bir video buldum.

First Search Program - CS373 Unit 4 - Udacity (http://www.youtube.com/watch?v=TPIFP4E7DVo#ws)

Udacity'nin bu kursunda da Google mühendisleri robotik bir araba yaparken arka planda yapay zekanın programlamasını anlatmışlar. Kursun (http://www.udacity.com/view#Course/cs373/CourseRev/apr2012/Unit/514039/Nugget/513054) altyapısı da harika  :)
Başlık: Ynt: CSS188 Yapay Zekaya Giriş pazartesi başlıyor
Gönderen: anladinmi - 11 Ekim 2012, 02:36:28
Evet udacity 'nin bu kursu çok güzel. ilgimi çeken konularin dersini izliyorum sadece. Hepsi birbirinden ilginç konular, bütün konulari ile projeyi anlatiyor.
PID ve Kalman bile var, dah önce burada sözü geçmisti.
Anladigim kadari ile Udacity'de anlatilan probabilistik Particle aramasi AI de görecegiz ve pacman öyle yolunu bulacakmis.


Bu aksam 3 saat ugrastiktan sonra DFS'i hallettim. DBS, CSS ve A* iplik sökügü gibi gelir simdi.
Sonrasi çok ugrastirirmi ? bu haftasonuna projeye ilave videolari seyredip  ödevi yapmam gerek.

Söyle bir class tanimladim, listeye koyuyorum, sonra fonksyonla listeden path'i en uzun ilk elemani buluyorum :
class TSearchNode:
    def __init__(self,xypathhisto):
        self.xy = xypathhisto[0]
        self.pathhisto = xypathhisto[1]
        self.gcost = xypathhisto[2]


Edx Forumundan pseudo code'u buldum tercume ettim.

mesaj birleştirme:: 11 Ekim 2012, 03:25:00

DBS'i hallettim çok ufak bir degisikle.
UCS 'de takildim simdi.
Bilgisayarda gayet güzel çalisiyor ve mantikli sonuçlar veriyor.
Stayeast : cost 1 'e esit (çok kucuk sayilar) 186 nodes expanded 646 score.
StayWest :68719482936  96 nodes  score 414.
gcost = expandednodecost + successorcost ile hesapliyorum.
Sonra fringe 'de olan minimum gcost'a sahip elemani seçiyorum.
Sorun nedir ?

Simdi buldum (aradan 2 saat geçtikten sonra).
Minimum degeri aramak için ilk basta 100000000 ile karsilastiriyordum. Halbuki StayWest  ajani  çok daha yuksek bir deger donduruyor : 68719479864  (eskiden buldugum 68719482936 yerine)  o yuzden optimali bulamiyor.

Başlık: Ynt: CSS188 Yapay Zekaya Giriş pazartesi başlıyor
Gönderen: Erdem - 12 Ekim 2012, 18:58:00
Sonunda derin öncelikli arama algoritmasını bir hafta uğraşarak da olsa yaptım  :D

Ama şunu daha dün farkettim. Kağıda geçirirken derin öncelikli arama yerine enine arama BFS'nin sözde kodunu geçirmişim. Ve onun üzerinden giderek uğraşıyordum.  ::)

Öncelikli kuyruğu sıralıyorum, ters çeviriyorum olmuyor. Meğerse enine aramanın sözde kodunu kullanıyormuşum :)

http://www.ehobi.org/resim/resim/pacmandfs.mp4 (http://www.ehobi.org/resim/resim/pacmandfs.mp4)

Sanırım çok zevkli ve zor olmasına rağmen bu kursu bırakacak gibiyim. Çünkü algoritma ve veri yapıları konularında eksiklerim var. Ama zırf zevk için bu projeyi bitirebilirim. Daha sonra hem geniş bir zamanda hem de algoritma ve veri yapıları dersini aldıktan sonra bu konuları çalışmak çok zevkli olur.

Aslında enine arama algoritmasını da yaptım. Ama döndürdüğü sonuç doğru değil diyor. Algoritmayı adım adım kontrol etmedim ama .. Gene de o yapbozu doğru olarak çözüyor.
Başlık: Ynt: CSS188 Yapay Zekaya Giriş pazartesi başlıyor
Gönderen: anladinmi - 12 Ekim 2012, 19:10:28
Dersin forumundaki Where can I find the pseudocode for the search algorithms? konusu yardimci oldu.
(https://edxuploads.s3.amazonaws.com/13494662951343697.png)


DFS ve DBS için stack 'tan çikarma (REMOVE-FRONT) buna benzer fonksyonlar olmali :
     #Fringe selection function
def DFS_GetFirstFromStack(fringe):
    max = -1
    Idx = -1
#maximum uzunluktaki dügüm
    for i in range(len(fringe)):
        if len(fringe[i].pathhisto) > max :
            max = len(fringe[i].pathhisto)
            Idx =  i
    return Idx
   
    #Fringe selection function
def DBS_GetFirstFromStack(fringe):
    min = 1000000000
    Idx = -1
#minimum uzunluktaki dügüm
    for i in range(len(fringe)):
        if len(fringe[i].pathhisto) < min :
            min = len(fringe[i].pathhisto)
            Idx =  i
    return Idx
       


EXPAND-ALL:
            for Successors in Expandlist:
                histopath = list(CurrentNode.pathhisto)
                histopath.append(Successors[1])
               
                #Add successor in fringe
                SuccNode = TSearchNode([Successors[0],histopath,Successors[2] + CurrentNode.gcost ])
                #print "Adding Fringe:",  SuccNode.xy, SuccNode.pathhisto, SuccNode.gcost
                # xy, Dirhisto, cost
                Fringe.push(SuccNode)
Başlık: Ynt: CSS188 Yapay Zekaya Giriş pazartesi başlıyor
Gönderen: Erdem - 12 Ekim 2012, 21:55:25
Alıntı yapılan: anladinmi - 12 Ekim 2012, 19:10:28
Dersin forumundaki Where can I find the pseudocode for the search algorithms? konusu yardimci oldu.

Ben de yanlışlıkla BFS'in sözde kodunu yazmışım. BFS ve DFS yakın ya  :)

Alıntı yapılan: anladinmi - 12 Ekim 2012, 19:10:28
DFS ve DBS için stack 'tan çikarma (REMOVE-FRONT) buna benzer fonksyonlar olmali

Bu kodu yazanlar acemi programcılar olmalı  :)

Eğer başından eleman çıkarsa o zaman yığıt olmaz herhalde. Çünkü yığıtta son giren eleman ilk çıkar.

Enine arama algoritmasını da yaptım. Derinine aramada yığıt kullanmıştım.  Enine arama algoritmasında yaptığım tek değişiklik yığıt yerine kuyruk kullanmak oldu. Ancak ilk planda orta büyüklükteki labirentte 269'dan fazla düğümü işaretliyordu ve sistem kabul etmiyordu. Sonra 3. dersin 12.bölümünde bunu anlatmışlar. Sonradan alt düğümleri genişletmezden önce de kontrol etmem gerektiğini yani gezilen düğümler listesine eklemem gerektiğini farkettim.

Benim için işin en püf noktası senin yaptığın gibi düğüm isimli bir sınıf oluşturmak oldu. Her düğüm bir üstteki düğümü gösteriyor ve bu şekilde aslında DFS'in yaptığı sadece bir düğüm döndürmek. Bu düğümü kullanarak geri giderek çözümü döndürüyoruz. Aslında yukarıdaki videoda Google mühendisinin, aslında sanırım Stanford Ünv. hocanın yaptığı da buydu.
Başlık: Ynt: CSS188 Yapay Zekaya Giriş pazartesi başlıyor
Gönderen: anladinmi - 12 Ekim 2012, 22:58:09
DFS algoritmasi LIFO ile gerçeklestirilebilir. Yani Fringe'in türü Stack olur, yigit. Ayni zamanda en uzun yola bacaga bakilarak yapilabilir. (LIFO ile yaparsan tersten olur aslinda, soldan baslamak yerine sagdan baslar)

DBS için ise FIFO kullanilabilir.  Yani Fringe'in türü Queue olur, sira (boru). Ayni zamanda en kisa yola bacaga bakilarak yapilabilir.
UCS için ise en ucuza bakilir, yani giris zamanina göre degil de o node'a gelmek için kümülatif maliyet.
Astar için, kümülatif maliyet + heuristik degere bakilir.

Gördügün gibi bu 4 arama türü için degisen sadece Fringe'den bir sonraki elemani seçme fonksyonu (REMOVE-FRONT).
Pseudo koddan genel arama algoritmasini yazarsan, 4 algoritma için degisen sadece REMOVE-FRONT ve INSERTALL-EXPANDNODE fonksyonlari.
Genel aramayi abstract class olarak düsün, arama olmasi için 2 fonksyonu implement etmelisin.

Alıntı YapHer düğüm bir üstteki düğümü gösteriyor ve bu şekilde aslında DFS'in yaptığı sadece bir düğüm döndürmek. Bu düğümü kullanarak geri giderek çözümü döndürüyoruz.

Dügümün bi üstekini tutmanin geregi yok. getSuccessors fonksyonu sana üsteki dahil daha gezmedigin yerlerin koordinat, yön ve maliyetini veriyor, liste olarak. Bu fonksyon probleme spesifik. Q6 da problem degisince bunu sen implement etmen gerekecek.
Su satiri verince gerisini pseudo koddan bulursun :
Expandlist = problem.getSuccessors(Currentnode.xy)
Başlık: Ynt: CSS188 Yapay Zekaya Giriş pazartesi başlıyor
Gönderen: Erdem - 13 Ekim 2012, 01:23:46
Alıntı yapılan: anladinmi - 12 Ekim 2012, 22:58:09
Dügümün bi üstekini tutmanin geregi yok. getSuccessors fonksyonu sana üsteki dahil daha gezmedigin yerlerin koordinat, yön ve maliyetini veriyor, liste olarak.

Burda demek istediğim tam tersiydi. Yani üstteki derken köke yakın düğüm demek istiyorum. Böylece en derinde hedef düğümümüz olsun. Buradan tersten giderek örneğin [G f r e d S] şeklinde çözümü bir liste olarak buluyorum.

Şimdi katmana göre arama algoritmasını UFS yapmaya çalışıyordum. Burada düğüm sınıfına toplam masrafı gösteren bir üye işlev ekledim. Örneğin S->e arası masraf 9 e->r arası masraf 2 ise bu işlev toplam_masraf(r) diye çağırdığımda 11 veriyor. Veri yapısı olarak da işlev öncelikli kuyruk kullandım.

Ama bir düğümün bu kuyrukta olup olmadığını nasıl bulacağız o kısmı hala yapamadım. Sanırım Python'da bir sınıfa ait nesneler üzerinde gezebilmek için

        def __iter__(self):
            return self.path

aşağıdaki gibi gezilebilir olarak tanımlamak gerekiyormuş. Ama şimdilik beceremedim  ::)
Başlık: Ynt: CSS188 Yapay Zekaya Giriş pazartesi başlıyor
Gönderen: anladinmi - 13 Ekim 2012, 01:51:09
Bence bu iterayon olayini zaten onlar kodlarini sagliyor tarafindan verilmis. Iter vs.. kullanmaya gerek yok.
Yapilmasi gereken sadece GetSuccessors fonksyonunu çagrip dönen liste verilerini anlamak.

Dedigin gibi yazmamiz gereken arama fonksyonu sonunda yön çikis listesini döndürecek.
O listeyi her node'a sakliyoruz :  tanimlamamda self.pathhisto  degiskeni bu islevi görüyor, yön listesini sakliyor. Gittigimiz her yönü bi listeye append ediyoruz.

An itibari ile AStar algoritmasini bitirdim. PriorityQueueWithFunction kullandim.
Bastan kullanmayi dusunuyordum, isleri kolaylastiriyor.
Kullanmak için :
def ASTAR_PriorityFn(Node):
    # Priority for A Star
    return Node.fcost


Algoritmanin basinda Stack yerine :
from game import PriorityQueueWithFunction
Fringe = PriorityQueueWithFunction(ASTAR_PriorityFn)

tanimlamasi.
Sonra algoritmada heuristic ilave (TSearchNode yapisi degisecek):
SuccNode = TSearchNode([Successors[0],histopath,cost, heuristic(Successors[0],problem)])

Simdi cancanli soruya geldim Q5. TSP problemine benziyor.

Hep gecenin bi vakti çalisiyorum bu derse (geceyarisi - sabahin 3u) bazen 2 gün bazen 5 gün ara ile.
Bu hafta sonu, hem yeni ders izleyip hem projeye ilave, yeni dersin ödevini yapmaliyim. Zor olacak.


Tamamdir simdi de 5. Soru bitti, SearchAgent'teki Corner problemini degistirdim. Artik sorun 1 yerden 1 yere en kisayoldan gitmek degil, 4 farkli noktaya ugramak ve bunu en kisa döngüyü izleyerek basarmak.
Simdi problemin degiskenleri nedir onu daha iyi anladim. Dügümde problemin degiskenini saklamamiz gerek, sadece koordinatlari degil.
Yeni dügüm sinifi :

  #Structure Definition of node
class TSearchNode:
    def __init__(self,PbStateAndNodeValue):
        self.PbState = PbStateAndNodeValue[0]
        self.pathhisto = PbStateAndNodeValue[1]
        self.gcost = PbStateAndNodeValue[2]
        self.hcost = PbStateAndNodeValue[3]
        self.fcost = self.gcost + self.hcost
       
Başlık: Ynt: CSS188 Yapay Zekaya Giriş pazartesi başlıyor
Gönderen: Erdem - 13 Ekim 2012, 13:45:17
Alıntı yapılan: anladinmi - 13 Ekim 2012, 01:51:09
O listeyi her node'a sakliyoruz :  tanimlamamda self.pathhisto  degiskeni bu islevi görüyor, yön listesini sakliyor. Gittigimiz her yönü bi listeye append ediyoruz.

Demek istediğini anladım. Her düğümde derinlik arttıkça gezilen düğümlerin listesini saklıyorsun.  Derinlik arttıkça, düğüm sayısı arttıkça belki bu masraflı olabilir. Benim yaptığım ise tembel gerçekleştirme lazy evaluation yaparak sadece gerekli olduğu zaman çözümü döndürmek. Tabi şimdilik bizim için önemli olan algoritmanın optimizasyonu değil çalışması..

Alıntı yapılan: anladinmi - 13 Ekim 2012, 01:51:09
An itibari ile AStar algoritmasini bitirdim. PriorityQueueWithFunction kullandim.

Ben de UFS'de veri yapısı olarak işlev öncelik kuyruk PriorityQueueWithFunction kullandım. Düğümün kuyrukta olup olmadığını kontrol eden kısmı yorum haline getirdim. Şans eseri çalıştı  :)

Sisteme yükledim. Sistem de kabul etti. Yalnız bir şey dikkatimi çekti.

$ python pacman.py -l openMaze -p SearchAgent -a fn=bfs -z .5

Diğer arama algoritmaları bu boşluklu labirenti çözerken UCS takılıyor. Senin yazdığın da takılıyor mu.

Herhalde ufak bir hata yapıyorum  ::)
Başlık: Ynt: CSS188 Yapay Zekaya Giriş pazartesi başlıyor
Gönderen: anladinmi - 13 Ekim 2012, 17:04:32
Yok UCS için python pacman.py -l openMaze -p SearchAgent -a fn=bfs -z .5 taklimiyor.  1 kare hariç hepsini gözden geçiriyor.
Alıntı YapD:\edx\search>python pacman.py -l openMaze -p SearchAgent -a fn=bfs -z .
5
[SearchAgent] using function bfs
[SearchAgent] using problem type PositionSearchProblem
Path found with total cost of 54 in 0.1 seconds
Search nodes expanded: 682

Bütün gece uyumadim, sabah 1 saat yattim. Q6 sorusuna takildim. 3/3 yapana kadar devam. en yakina gitme mantigi aslinda consistent degilmis, geç farkettim.
Sorulara ara verdim, CSP videolarinin ilk serisini izledim.
Fakat projeyi düsünmekten hala alikoyamiyorum.

Q7 sorusu kaldi simdi  (önce Q8'i yaptim). 


Su anda yenmemis yiyecek sayisini kullaniyorum. 2/5 aldim.
En yakin ve en uzak mesafeyi kullanacagim, sonra üçünün maksimumunu alacagim.

Simdi çikmam gerekiyor, aksama tekrar devam ederim. Mini contest'te katilmayi düsünmüyorum, bir fikrim var ama uzun sürer.



Başlık: Ynt: CSS188 Yapay Zekaya Giriş pazartesi başlıyor
Gönderen: Erdem - 13 Ekim 2012, 17:18:00
UFS demişim ama sorarken yanlış yazmışım  ???

$ python pacman.py -l openMaze -p SearchAgent -a fn=ufs -z .5

BFS kullanınca aynen bende de 682 tane düğüm geziliyor.

Gerçekten güzel çalışıyorsun. Aslında ben de eğer kursu bırakmayı düşünmeseydim biraz kasardım. Ama kursu bırakıp tekrar elektroniğe ve EPE okumaya döneceğim. Yarına kadar uğraşacağım sonra gelsin işlemsel yükselteç  :D
Başlık: Ynt: CSS188 Yapay Zekaya Giriş pazartesi başlıyor
Gönderen: anladinmi - 15 Ekim 2012, 22:32:56
Bence bu dersi bos verme. EPE magazindeki bilgilerin yerini tutmaz, asagi yukari ayni konular dönüyor belli bir seviyeden sonra.

Dün gece CSP derslerini izleyip HW2 yaptiktan sonra, dedim ki su  yarim kalan heuristic'i bitireyim, en uzak yem mesafesini ekleyeyim dedim.
Yaptim bilgisayaripmda gayet füzel çalisti, yükleyim de 17 'den 18 'e geçsin not dedim.
yükledikten sonra error 502 çikti karsima, ve 17 oldu kocama 0. site çökmüs (son saatte herkes yukleme yapmak istemis anlasilan).
Foruma girdim, yalniz degilmisim, birçok kisi sikayette bulundu, full time çalisiyoruz, çok az zaman veriyorsunuz vs.. vs..
1 saat sonra 24 saat daha uzatilacak diye Community TA açiklama yapti. Yani  proje için bu geceye kadar vakit var ve HW2 için çarsambaya kadar uzatmislar.
Alıntı YapNow that we're approaching the Project 1 deadline, we're excited to see all the completed projects coming in! Unfortunately, there was a site-wide edX issue that prevented all code submissions for all classes for about an hour, which in turn blocked the CS188.1x autograders. Because this prevented many of you from submitting Project 1 today, we've decided to extend the deadline by 24 hours. Project 1 is now due Monday, October 15th, at 11:59pm (in your local time). As a result, we are also extending the deadline for Homework 2; Homework 2 is now due Wednesday, October 17th, at 11:59pm.
We realize that there are many reasons that submissions can get delayed, whether it's site problems or just life being unpredictable. As a result, we'll be looking into whether there are good ways of making deadlines more flexible for future projects while still maintaining the pacing of the course.
Dan, Pieter, and the CS188x Course Team

Bence dersi birakma proje ödev yapmasan bile dersi izle, çok sey kazandirir.
ufs fonksyonunu bulamadim. dfs, ucs  ve Astar kaldi
D:\edx\search>python pacman.py -l openMaze -p SearchAgent -a fn=ucs -z .
5
[SearchAgent] using function ucs
[SearchAgent] using problem type PositionSearchProblem
Path found with total cost of 54 in 0.1 seconds
Search nodes expanded: 683


BFS :
Path found with total cost of 390 in 0.8 seconds
Search nodes expanded: 683

D:\edx\search>python pacman.py -l openMaze -p SearchAgent -a fn=astar -z
.5
[SearchAgent] using function astar and heuristic nullHeuristic
[SearchAgent] using problem type PositionSearchProblem
Path found with total cost of 54 in 0.1 seconds
Search nodes expanded: 682
Başlık: Ynt: CSS188 Yapay Zekaya Giriş pazartesi başlıyor
Gönderen: Erdem - 16 Ekim 2012, 13:53:54
Alıntı yapılan: anladinmi - 15 Ekim 2012, 22:32:56
Bence bu dersi bos verme. EPE magazindeki bilgilerin yerini tutmaz, asagi yukari ayni konular dönüyor belli bir seviyeden sonra.

Ben artık bıraktım bile elektroniğe geri dönüş yaptım  :D

Bu kurs çok güzel bir kurs ancak ileride algoritmalar dersini aldıktan sonra almayı düşünüyorum.

Bir de EPE'de aslında elektroniği derinlemesine anlatan bölümler de var. Örneğin Teach In serisi.. Bir tane osiloskop olsa bunları denemesi çok zevkli olabilir. Hatta işlemsel yükselteçleri oldukça detaylı anlatmışlar.

Şimdilik 6.002 derslerini tekrar ediyorum. Profesör Agarwal'ın sesini tekrar duymak güzel. Hasta oluyorum bu adama harika  :)

İşlemsel yükselteç konusunu tekrar etmeye başladım bile.

Bunun dışında yapmayı planladığım bir kaç proje var. Bunlar içinde kendime yavaş yavaş bir elektronik çalışma ortamı hazırlamaya karar verdim.  Osiloskop, işlev üreteci, lehim istasyonu vs. de almam gerekecek. Hatta osiloskobu yapmazdan önce kendim ses kartından yapmaya mı çalışsam diye düşünüyorum.

Gerçekten bu dersler de çok zevkli ama bir ders alıyorsun sonra başka bir ders çıkıyor. Ama elektronikle ilgili şu dersleri verirlerse gözü kapalı alırım:

Dijital elektronik ve programlanabilir mantık blokları (FPGA) - 6.004
Sinyaller, sistemler ve kontroller - 6.003
Analog elektronik - 6.012 veya 6.101
Mikrodenetleyiciler - 6.115

Alıntı yapılan: anladinmi - 15 Ekim 2012, 22:32:56
D:\edx\search>python pacman.py -l openMaze -p SearchAgent -a fn=ucs -z .
5
[SearchAgent] using function ucs
[SearchAgent] using problem type PositionSearchProblem
Path found with total cost of 54 in 0.1 seconds
Search nodes expanded: 683


Zaten ben de benim yazdığım UCS'de bir eksik olduğunu farketmiştim. Ama sistem kabul etti  ;)

Çünkü UCS için yol masrafı eşit olsa bile UCS, BFS (enine arama) gibi çalışması gerekiyor.
Başlık: Ynt: CSS188 Yapay Zekaya Giriş pazartesi başlıyor
Gönderen: anladinmi - 02 Kasım 2012, 01:41:15
Son ders haftasi basladi.
Takip eden var mi ?
Bu hafta epey enteresan konu, makine nasil ögrenir. Monopod (hexapod'un tek bacaklisi olarak dusunun) bir robotun yürümesini ögrenmesi için gereken algoritmayi anlatiyor: Q-Learning.
Proje kisminda ise bunu ögreten kod yaziliyor.
2 Servo ve 1 pic (tercihe göre AVR, veya ARM'da olur) ile gerçek bir model yapilabilir.
Bu algoritma sayesinde, sistemin parametreleri degisse bile , örnegin :  (kol uzunluluklari, servo katsayisi, yerin kayganligi ...), makine ögrenecek ve yeni çevresine adapte olup, optimal sekilde yürümeyi ögrenecek?

Dersin videolarinin asagidaki linklerden indirebilirsiniz. Son kullanma tarihlerine itibar etmeyin, indirildikçe uzuyor sanki. Yine de en kisa sürede indirin


Lecture 1:  PirateBay (http://thepiratebay.se/torrent/7671995/BerkeleyX__CS188.1x_Artificial_Intelligence) or MediaFire (http://www.mediafire.com/?hmhwe9cn9id9g)
Lecture 2 (thanks to Sianes (https://www.edx.org/courses/BerkeleyX/CS188.1x/2012_Fall/discussion/forum/users/447318)):  Download (http://www.adrive.com/public/3365p8/CS188_1x_Courseware.flv.zip)
Lecture 2 continued:  Download (http://www.adrive.com/public/mPsz2f/CS188_1x_Courseware_Lecture2_continued.flv.zip) (Sorry, the last videos wasn't in the first zip.)
(Some video quizs don't want to download in the batch, I'll try to figure out why)
Lecture 3:  Download (http://www.adrive.com/public/A9J8Sk/CS188_1x_Courseware-Lecture3.zip) (All theory videos and video quizs. Ignore the names, just follow the numbers)(Expires on 2012-10-19)
Lecture 3 continued:  Download (http://www.adrive.com/public/7SeDXb/Lecture_3_continued.zip) (Expires on 2012-10-19)
Lecture 4 and continued:  Download (http://www.adrive.com/public/3b33Mf/Lecture_4_and_continued.zip) (Expires on 2012-10-26)
Lecture 5 and continued:  Download (http://www.adrive.com/public/v84pSu/Lecture_5%20and%20continued.zip) (Expires on 2012-10-27)
Lecture 6:  Download (http://www.adrive.com/public/RBDSAE/Lecture_6.zip) (Expires on 2012-10-30)
Lecture 7:  Download (http://www.adrive.com/public/kG5F4v/Lecture_7.zip) (Expires on 2012-10-30)
Lecture 8:  Download (http://www.adrive.com/public/bZu6Rp/Lecture_8.zip) (Expires on 2012-11-08)
Lecture 9:  Download (http://www.adrive.com/public/pgpywJ/Lecture_9.zip) (Expires on 2012-11-08)
Lecture 10:  Download (http://www.adrive.com/public/WxUtuX/Lecture_10.zip) (Expires on 2012-11-15)
Lecture 11:  Download (http://www.adrive.com/public/jVRpAU/Lecture_11.zip) (Expires on 2012-11-15)
The Whole Course edx-downloader/edx-dl (https://github.com/emadshaaban92/edx-downloader)
(You can download a specific week or the whole course in your favorite format)
(It should also work for any other course on the edx platform)

Başlık: Ynt: CSS188 Yapay Zekaya Giriş pazartesi başlıyor
Gönderen: Erdem - 02 Kasım 2012, 09:21:25
Ben takip edemiyorum ne yazık ki  :o

Çünkü hem daha pratik olarak uygulamam gereken çok şey var. Hem de teorik olarak bazı temel bilgileri tekrar etmem gerekiyor.

Daha ilk kez baskı devre kazımayı deniyorum mesela  ::)

Sonra lehim tabancası yok, osiloskop yok. Yakın zamanda bunlardan oluşan bir elektronik çalışma masası oluşturmayı düşünüyorum.

Çok ilginçmiş. İndirme bağlantıları için teşekkürler!  :)

3-Servo Walking Robot - The Latest in Hobby Robotics (http://www.youtube.com/watch?v=DWSbFfW3lC4#ws)

Bu öğrenme algoritmalarını böyle bir robotta kullanmak çok ilginç olurdu  :D