Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

P 6. Ünite stack veri tipini anlatmaktadır. p Bu ünitede stack laerin örnek uygulamalarından bahsedilmektedir. p Bu sunumda N-Queens problemini çözmek.

Benzer bir sunumlar


... konulu sunumlar: "P 6. Ünite stack veri tipini anlatmaktadır. p Bu ünitede stack laerin örnek uygulamalarından bahsedilmektedir. p Bu sunumda N-Queens problemini çözmek."— Sunum transkripti:

1 p 6. Ünite stack veri tipini anlatmaktadır. p Bu ünitede stack laerin örnek uygulamalarından bahsedilmektedir. p Bu sunumda N-Queens problemini çözmek için geriye gitme denen başka bir kullanım şeklinden bahsedeceğiz. Bir Stack’in Kullanımı Java Kullanarak Veri Yapıları ve Veri Yapıları ve Diğer Nesneler

2 N-Queens Problemi p Farzedelim ki 8 tane satranç taşınız var... p...ve bir satranç tahtası

3 N-Queens Problemi İki taş birbirine isabet etmeyecek şekilde taşları tahtaya yerleştirebilir misiniz? ?

4 N-Queens Problemi İki taş aynı satırda olmayacak..

5 N-Queens Problemi İki taş aynı satırda veya aynı sütunda olmayacak..

6 N-Queens Problemi İki taş aynı satırda veya aynı sütunda veya aynı köşegen üzerinde olmayacak.

7 N-Queens Problemi Taşların sayıları ve tahtanın boyutu değişebilir. N Taş N sütun N satır

8 N-Queens Problemi N tane taşı N x N boyutunda bir tahtaya yerleştirecek bir yöntem bulmaya çalışan bir program yazacağız.

9 Program nasıl çalışır Program herbir taşın nerede olduğunu tutnak için bir stack kullanır.

10 Program nasıl çalışır Program tahtaya bir taş yerleştirmeye her karar verişinde,yeni taşın pozisyonu stack’teki bir kayıtta tutulur. 1.SÜTUN,1.SATIR

11 Program nasıl çalışır Aynı zamanda şimdiye kadar dolan satır sayısını tutan bir kaydımız da var. 1.SÜTUN,1. SATIR 1 dolu

12 Program nasıl çalışır Bir sonraki satıra her yeni bir taş yerleştirdiğimizde, taşı ilk sütundan başlayarak yerleştiriyoruz.. 1.SATIR,1.SÜTUN 1 dolu 2. SATIR,1.SÜTUN

13 Program nasıl çalışır...eğer bir başka taşla çakışıyorsa, taşı bir sonraki sütuna kaydırıyoruz. 1.SATIR,2.SÜTUN 1 filled 2.SATIR,2.SÜTUN

14 Program nasıl çalışır Eğer yine çakışma varsa, tekrar sağa doğru kaydırıyoruz. 1.SATIR,1.SÜTUN 1 dolu 2.SATIR,3.SÜTUN

15 Program nasıl çalışır Eğer çakışma yoksa duruyoruz ve dolunun değerini 1 arttırıyoruz. 1.SATIR,1.SÜTUN 2 dolu 2.SATIR,3.SÜTUN

16 Program nasıl çalışır 3. satıra bakalım.ilk denediğimiz pozisyonda çakışma var... 1.SATIR,1.SÜTUN 2 dolu 2.SATIR,3.SÜTUN 3.SATIR,1.SÜTUN

17 Program nasıl çalışır...böylece ikinci sütuna kaydırıyoruz. Fakat başka bir çakışma çıkıyor karşımıza. 1.SATIR,1.SÜTUN 2 dolu 2.SATIR,3.SÜTUN 3.SATIR,2.SÜTUN

18 Program nasıl çalışır...ve üçüncü sütuna kaydırıyoruz.Baş ka bir çakışma meydana çıkana kadar. 1.SATIR,1.SÜTUN 2 dolu 2.SATIR,3.SÜTUN 3.SATIR,3.SÜTUN

19 Program nasıl çalışır...ve 4.sütuna kaydırıyoruz.4. sütunda hâlâ bir çakışma var,dolayısıyla tekrar sağa kaydırmayı deniyoruz.. 1.SATIR,1.SÜTUN 2 dolu 2.SATIR,3.SÜTUN 3.SATIR,4.SÜTUN

20 Program nasıl çalışır...fakat başka gidecek yer yok. 1.SATIR,1.SÜTUN 2 dolu 2.SATIR,3.SÜTUN 3.SATIR,4.SÜTUN

21 Program nasıl çalışır Bir satırda gidecek yerimiz kalmayınca: p En üsttekini stack’ten al p dolu’yu 1 azalt p Ve bir önceki satır üzerinde çalışmaya devam et. 1.SATIR,1.SÜTUN 1 filled 2.SATIR,3.SÜTUN

22 Program nasıl çalışır Şimdi 2. satır üzerinde çalışmaya devam ediyoruz,taşı sağa doğru kaydırıyoruz. 1.SATIR,1.SÜTUN 1 dolu 2.SATIR,4.SÜTUN

23 Program nasıl çalışır Bu pozisyonda hiçbir çakışma yok,dolayısıyla dolu nun değerini 1 arttırabiliriz,ve 3. satıra geçebiliriz. 1.SATIR,1.SÜTUN 2 dolu 2.SATIR,4.SÜTUN

24 Program nasıl çalışır 3. satırda tekrar ilk sütundan başlıyoruz. 1.SATIR,1.SÜTUN 2 dolu 2.SATIR,4.SÜTUN 3.SATIR,1.SÜTUN

25 N-Queens için yalancı kod ŒKararlarımızı kaydedebileceğimiz bir stack başlat. İlk taşı yerleştir,pozisyonunu stack’in en üstü olarak ayarla,dolu değerini 0 a eşitle. Bu basamakları tekrarla p Eğer taşlar arasında hiç çakışma yoksa.. p Eğer çakışma varsa ve taşı sağa doğru kaydırmak için yer varsa.. p Eğer bir çakışma varsa ve taşı sağa kaydırmak için yer yoksa..

26 N-Queens için yalancı kod ŽBu basamakları tekrar et p Eğer taşlarla ilgili hiç bir çakışma yoksa.. dolu değerini 1 arttır. Eğer dolu değeri N ise, algoritma olmuştur. Değilse,bir sonraki satıra geç ve taşı ilk sütuna koy.

27 N-Queens için yalancı kod ŽBu basamakları tekrar et p Eğer taşlarla ilgili hiç bir çakışma yoksa.. p Eğer bir çakışma varsa ve taşı sağa kaydıracak kadar yerimiz varsa.. Yeni pozisyonu belirlemek için stack’in en üstündeki kaydı ayarlayarak elindeki taşı sağa kaydır,

28 N-Queens için yalancı kod ŽBu basamakları tekrar et p Eğer taşlarla ilgili hiçbir çakışma yoksa... p Eğer bir çakışma varsa ve taşı sağa kaydıracak kadar yerimiz varsa.. p Eğer bir çakışma varsa ve taşı sağa kaydırmak için yer yoksa.. Geridön! Stack’i doldurmaya devam et, taşı sağa hareket ettirebileceğin bir satır bulana kadar, her doldurulan icin eleman 1 azalt.

29 N-Queens için yalancı kod ŽBu basamakları tekrar et p Eğer taşlarla ilgili hiçbir çakışma yoksa... p Eğer bir çakışma varsa ve taşı sağa kaydıracak kadar yerimiz varsa.. p Eğer bir çakışma varsa ve taşı sağa kaydırmak için yer yoksa.. Geridön! taşı sağa kaydırabileceğin bir satıra ulaşıncaya kadar stack i doldurmaya devam et, ve dolu değerini 1 azalt,taşı sağa kaydır

30 Programın çalışmasını izleme Programın demosunu görmek için farenin sol düğmesini çift klikleyin:

31 p Birçok stack uygulaması vardır. p Bizim gösterdiğimiz uygulamanın adı backtracking. p Backtracking için anahtar: Her seçim bir stack içinde kaydediliyor. p Elinizdeki karar için seçenekler bittiyse,stack’in üstündekini alın,bir önceki karar için farklı seçenkeler deneyin. Özet

32 SON Presentation copyright 1999, Addison Wesley Longman, For use with Data Structures and Other Objects Using Java by Michael Main. Some artwork in the presentation is used with permission from Presentation Task Force (copyright New Vision Technologies Inc) and Corel Gallery Clipart Catalog (copyright Corel Corporation, 3G Graphics Inc, Archive Arts, Cartesia Software, Image Club Graphics Inc, One Mile Up Inc, TechPool Studios, Totem Graphics Inc). Students and instructors who use Data Structures and Other Objects Using Java are welcome to use this presentation however they see fit, so long as this copyright notice remains intact.


"P 6. Ünite stack veri tipini anlatmaktadır. p Bu ünitede stack laerin örnek uygulamalarından bahsedilmektedir. p Bu sunumda N-Queens problemini çözmek." indir ppt

Benzer bir sunumlar


Google Reklamları