You are on page 1of 66

YZM 3217 – YAPAY ZEKA

DERS#3: PROBLEM ÇÖZME VE


ARAMA
Geçen Haftalar: Özet
• YZ’nin Tanımı ve Tarihçesi
• Turing Testi
• Zeki Ajanlar:
• Ajan Tipleri: Basit Tepki, model tabanlı, hedef
tabanlı, fayda tabanlı
• Rasyonel Hareket
• Performans Ölçüsü
– Her olası algı serisi için, algı serisi ve sahip olduğu
bilgileri kullanarak performans ölçüsünü maksimize
edecek şekilde davranan ajan ideal ajandır.

2
Problem çözme ve arama
• Problem çözmeye giriş

• Karmaşıklık

• Bilgisiz arama
– Problem formülasyonu
– Arama stratejileri: derinlik-önce, genişlik-önce

• Bilgili arama
– Arama stratejileri: En iyi-ilk önce, A*
– Sezgisel fonksiyonlar

3
Örnek: Ölçme problemi!

9l
3l 5l

• Problem: Bu üç kovayı kullanarak 7 litre suyu ölçün.

4
Örnek: Ölçme problemi!
• (olası bir) Çözüm:

a b c 9l
0 0 0 start 3l 5l
3 0 0
0 0 3 a b c
3 0 3
0 0 6
3 0 6
0 3 6
3 3 6
1 5 6
0 5 7 hedef

5
Örnek: Ölçme problemi!
• (olası bir) Çözüm:

a b c 9l
0 0 0 start 3l 5l
3 0 0
0 0 3 a b c
3 0 3
0 0 6
3 0 6
0 3 6
3 3 6
1 5 6
0 5 7 goal

6
Örnek: Ölçme problemi!
• (olası bir) Çözüm:

a b c 9l
0 0 0 start 3l 5l
3 0 0
0 0 3 a b c
3 0 3
0 0 6
3 0 6
0 3 6
3 3 6
1 5 6
0 5 7 goal

7
Örnek: Ölçme problemi!
• (olası bir) Çözüm:

a b c 9l
0 0 0 start 3l 5l
3 0 0
0 0 3 a b c
3 0 3
0 0 6
3 0 6
0 3 6
3 3 6
1 5 6
0 5 7 goal

8
Örnek: Ölçme problemi!
• (olası bir) Çözüm:

a b c 9l
0 0 0 start 3l 5l
3 0 0
0 0 3 a b c
3 0 3
0 0 6
3 0 6
0 3 6
3 3 6
1 5 6
0 5 7 goal

9
Örnek: Ölçme problemi!
• (olası bir) Çözüm:

a b c 9l
0 0 0 start 3l 5l
3 0 0
0 0 3 a b c
3 0 3
0 0 6
3 0 6
0 3 6
3 3 6
1 5 6
0 5 7 goal

10
Örnek: Ölçme problemi!
• (olası bir) Çözüm:

a b c 9l
0 0 0 start 3l 5l
3 0 0
0 0 3 a b c
3 0 3
0 0 6
3 0 6
0 3 6
3 3 6
1 5 6
0 5 7 goal

11
Örnek: Ölçme problemi!
• (olası bir) Çözüm:

a b c 9l
0 0 0 start 3l 5l
3 0 0
0 0 3 a b c
3 0 3
0 0 6
3 0 6
0 3 6
3 3 6
1 5 6
0 5 7 goal

12
Örnek: Ölçme problemi!
• (olası bir) Çözüm:

a b c 9l
0 0 0 start 3l 5l
3 0 0
0 0 3 a b c
3 0 3
0 0 6
3 0 6
0 3 6
3 3 6
1 5 6
0 5 7 goal

13
Örnek: Ölçme problemi!
• (olası bir) Çözüm:

a b c 9l
0 0 0 start 3l 5l
3 0 0
0 0 3 a b c
3 0 3
0 0 6
3 0 6
0 3 6
3 3 6
1 5 6
0 5 7 hedef

14
Örnek: Ölçme problemi!
• Diğer bir çözüm:

a b c 9l
0 0 0 start 3l 5l
0 5 0
3 2 0 a b c
3 0 2
3 5 2
3 0 7 goal

15
Örnek: Ölçme problemi!
• Diğer bir çözüm:

a b c 9l
0 0 0 start 3l 5l
0 5 0
3 2 0 a b c
3 0 2
3 5 2
3 0 7 goal

16
Örnek: Ölçme problemi!
• Diğer bir çözüm:

a b c 9l
0 0 0 start 3l 5l
0 5 0
3 2 0 a b c
3 0 2
3 5 2
3 0 7 goal

17
Örnek: Ölçme problemi!
• Diğer bir çözüm:

a b c 9l
0 0 0 start 3l 5l
0 5 0
3 2 0 a b c
3 0 2
3 5 2
3 0 7 goal

18
Örnek: Ölçme problemi!
• Diğer bir çözüm:

a b c 9l
0 0 0 start 3l 5l
0 5 0
3 2 0 a b c
3 0 2
3 5 2
3 0 7 hedef

19
Hangi çözümü tercih ederiz?
• Çözüm 1: • Çözüm 2:

a b c a b c
0 0 0 start 0 0 0 start
3 0 0 0 5 0
0 0 3 3 2 0
3 0 3 3 0 2
0 0 6 3 5 2
3 0 6 3 0 7 hedef
0 3 6
3 3 6
1 5 6
0 5 7 hedef

20
Örnek: Ölçme problemi
• 7 litre suyu birer adet 3, 5 ve 9 litrelik kovalar ile ölç

• Hedefi formüle et:


– 7 litre suyu 9 litrelik kovada tut

• Problemi formüle et:


– Durumlar: Kovalardaki su miktarı
– İşlemler: Kovayı kaynaktan doldur, Kovayı boşalt

• Çözümü bul:
– Başlangıç durumundan hedef duruma götüren işlemler
sırası
21
Example: Measurement problem
• Measure 7 liters of water with 3, 5 and 9 liter buckets.
• Formulate the goal:
– Hold 7 liters of water in 9 liter bucket

• Formulate the problem:

– Situations: Amount of water in buckets


– Transactions: Fill the bucket from the source, empty the
bucket
• Find the solution:
• – Sequence of operations from the initial state to the
target state
22
Problem Çeşitleri
• Tek durumlu (single-state) problem: Deterministik,
tam gözlenebilir
– Ajan hangi durumda olmak istediğini biliyor; çözüm bir
sıradır (sequence)
• Alıcısız (sensorless) problem: Gözlenemez
– Ajan nerede olduğunu bilemez; çözüm (varsa) bir sıradır
• Koşullu (contingency) problem: Rastgele
(nondeterministic) ve/veya kısmi gözlenebilir (partially
observable)
– Alıcılar şu anki durum ile ilgili sürekli bilgi sağlar
– Çözüm ağaç ya da kurallar ile
• Keşif (exploration) problemi: Bilinmeyen durum uzayı
23
Types of Problems
• Tek durumlu (single-state) problem: Deterministik,
tam gözlenebilir
– The agent knows what situation he wants to be in; the
solution is a sequence
• Alıcısız (sensorless) problem: unobservable
– The agent cannot know where he is; the solution (if any)
is a queue
• Koşullu (contingency) problem: Rastgele
(nondeterministic) ve/veya kısmi gözlenebilir (partially
observable)
– Recipients provide continuous information on current
status
– Solution with tree or rules
• Keşif (exploration) problemi: unknown state space 24
Örnek: Elektrikli süpürge ajanı
• 2 Yer: kirli/değil
• Amaç : Her yerin temiz
olması
• Hareketler: Sol, sağ,
temizle, işlem yok
(NoOP)

• N oda için durum sayısı?


N * 2^N
25
Örnek: Elektrikli süpürge
• Tek durumlu problem:
#5’le başla. Çözüm nedir?
• [Sağ, Temizle]

• Alıcısız problem:
{1,2,3,4,5,6,7,8}’den
herhangi biriyle başla
• [Sağ, Temizle, Sol, Temizle]

26
Örnek: Elektrikli süpürge
• Koşullu problem:
– Deterministik: Temizle
komutu temiz halıyı
kirletebilir
– Kısmi gözlenebilir: sadece
bulunduğu yerin durumu
(kirli/temiz)
– Eldeki bilgi: [Sol, Temiz]
– #5 veya #7 ile başla
• [Sağ, if kirli then Temizle]

27
Durum bilgisi
• Herhangi bir andaki ortam durumla ifade edilir
– Başlangıç durumu: problemin çözümü için yapılacak
ilk hareketin başlandığı durum
– Hareket: güncel durumu diğer bir durumla değiştiren
eylem. Bu durumlara geçiş durumu denir
• Her durum için olası birden fazla hareket olabilir
– Amaç durumu: problemin tanımında verilen
ulaşılması gereken durum (problemin çözümü)
– Başarısız durum: hiçbir hareketin uygulanamadığı ve
amaç olmayan durum

28
Durum bilgisi
• Durum uzayı:
– Başlangıç durumundan ulaşılabilecek tüm durumlardan oluşan küme
– Durum uzayı graflarla ifade edilebilir:
düğümler: uzaydaki durumlar
kenarlar: hareketler/işlemler
• Problemin boyutu genelde olası durumların sayısı ile (veya
durum uzayının boyutu ile) ifade edilir
– 2 yerli süpürge dünyasında 2x22 durum vardır
– Tic-Tac-Toe oyununda yaklaşık 39 durum vardır
– Damada yaklaşık 1040 durum vardır
– Satrançtaki durumların sayısı yaklaşık 10120 dir
– Go oyunundaki durumlar sayısı ise çok daha fazladır

29
Örnek: Süpürge dünyası
• Problemin durum uzayı

30
Tek Durumlu Problemin Formülasyonu
1. Başlangıç durumu (initial state)
– Örnek: "Ankara’da olmak"
2. Durum fonksiyonu (successor function)
– S(x) = hareket-durum çiftleri (x durumundan, hangi
durumlara hangi hareket ile geçilebilir)
– Örnek: S(Ankara) = {<Ankara→E.şehir, E.şehir>, … }
3. Amaca ulaşma testi (goal test)
– Örnek: x = "İzmir’de olmak"
4. Yol masrafı (path cost): eklemeli (additive)
– Örnek: mesafeler toplamı, gidilen şehir sayısı, vb.
– c(x,a,y): adım masrafı (step cost), ≥ 0 varsayılır
• Çözüm: Başlangıç durumundan amaç duruma nasıl
ulaşıldığını gösteren hareketlerin sırası
31
Örnek: Süpürge dünyası

Durumlar: kir ile ajanın bulunduğu yerler (tamsayı, 1-8)


Hareketler: Sağ, sol, temizle, NoOp
Amaca ulaşma testi: Her yerin temiz olması
Yol masrafı: Her hareket için 1 birim (NoOp için 0)
32
Örnek: Süpürge dünyası
• Her bir durum için yol maliyeti

Durum Yol maliyeti


1 3
2 3
3 1
4 2
5 2
6 1
7 0
8 0

33
Örnek: 8-puzzle

34
Örnek: 8-puzzle

Başlangıç durumu Hedef durum

Durumlar: taşların yerleri (tamsayı, 1-9)


Hareketler: Boşluğu sola, sağa, aşağı, yukarı hareket ettir
– 8 taşın her biri için olası 4 hareketi tarif etmektense boşluğu
hareket ettirmek daha etkili
Amaca ulaşma testi: Resimdeki hedef durum
Yol masrafı: Her hareket için 1 birim
35
8-puzzle probleminin durum uzayından bir kesit
5 4

6 1 8

7 3 2

5 4 5 4 8

6 1 8 6 1

7 3 2 7 3 2

5 1 4 5 4
Yaklaşık 362800 durum
6 8 6 1 8

7 3 2 7 3 2 Optimal Çözüm:
NP Complete
5 1 4

6 8

7 3 2 36
Durum uzayının seçilmesi
• Gerçek dünya çok karmaşıktır
– Problemin çözümü için durum uzayı basite indirgenmeli,
soyutlanmalı
• Soyut (Abstract) durum: gerçek durumlar kümesi
• Soyut hareket: gerçek hareketlerin karmaşık
kombinasyonu
– Örnek: "Ankara→E.şehir" değişik yolları, molaları, yol
durumunu, yoldaki dinlenme yerlerini vs. gösteren karmaşık bir
kümedir
– Gerçek hayatın modellenmesi için, gerçek hayattaki "Ankara"
durumu "E.şehir"e ulaşabilmelidir
• Soyut çözüm: Gerçek hayatta kullanılan gerçek yollar
• Her soyut hareket orijinal (gerçek hayattaki)
problemden daha "basit" olmalıdır.
37
8-Vezir Problemi
Vezirler tek tek yerleştirilir. Sadece son durum dikkate alındığı için
yol maliyeti dikkate alınmaz. Yalnız arama maliyetine bakılır:
Amaç testi: Tahtada birbirini tehdit etmeyen 8 vezir
Yol maliyeti: Sıfır (0)

Durumlar: 0-8 vezirin herhangi bir düzenlemesi


İşlemler: Herhangi bir kareye vezir koymak.
Bu formülasyonda araştırılacak 648 olası sıra vardır.
ALTERNATİF:
İşlemler: Tehdit edilmeyen en soldaki boş kareye vezir koy.
Bu şekilde tehdit edilmeyen durumları tespit etmek kolaydır. Doğru
formülasyon arama uzayının boyutunu büyük ölçüde küçültür.

N-VEZİR???
38
Yolcular ve Yamyamlar
3 yolcu ve 3 yamyam kayıkla Yakın sahil Nehir Uzak sahil
nehrin karşısına geçmek istiyor.
Kayığa en fazla 2 kişi binebilir Kişi 1

• Amaç: Tüm yamyamların ve Kişi 2 kayık


yolcuların nehri geçmesi Kişi 3
• Sınırlama: Yamyamların sayısı Yamyam 1
nehrin herhangi bir sahilinde
yolculardan çok olursa Yamyam 2
yamyamlar yolcuları yer
• Durum: Nehrin her iki sahilinde Yamyam 3
ve kayıktaki yamyam ve yolcular
• Hareketler/İşlemler: Her iki
yönde için de bir veya iki kişi ile Bu problem 11 hareket ile çözülebilir
kayığın hareketi

39
Yamyamlar ve Yolcular Sorunun
Çözümü
Yakın sahil Karşı sahil .

1 Başlangıç durum: MMMCCC B -


2 2 yamyam çayı geçti: MMMC B CC
3 Birisi geri döndü: MMMCC B C
4 2 yamyam çayı geçti: MMM B CCC
5 Biri geri döndü: MMMC B CC
6 2 yolcu çayı geçti: MC B MMCC
6 Bir yolcu ve bir yamyam geri döndü: MMCC B MC
7 İki yolcu çayı geçti: CC B MMMC
8 Bir yamyam geri döndü: CCC B MMM
9 İki yamyam çayı geçti: C B MMMCC
10 Bir yamyam geri döndü: CC B MMMC
11 İki yamyam çayı geçti: B MMMCCC

M: yolcu, C: yamyam 37
Hanoi kulesi
• Üç tane direk ve farklı boyutlarda disklerden oluşur
• Diskler istenilen direğe aktarabilir
• Her harekette sadece bir disk taşınabilir
• En üstteki disk direkten alınıp diğer bir direğe taşınabilir
• Diğer direkte daha önceden diskler olabilir
• Hiçbir disk kendisinden küçük bir diskin üzerine
koyulamaz

41
Hanoi Tower
• It consists of three poles and discs of different sizes.
• Discs can transfer to desired pole
• Only one disc can be moved per move
• The top disk can be taken from the pole and moved to
another pole.
• There may be previously disks on the other pole
• No disc can be placed on a smaller disc

42
Hanoi kulesi
http://ceng.baskent.edu.tr/hanoi
• 1883 yılında Fransız matematikçi Edouard Lucas tarafından
bulunmuştur
• 1 diskin hareketi için 1 saniye gerekirse, 64 diskli problemi
çözmek için 500 milyar yıl gerekir
• Bu yüzden bu büyük durum uzaylarında bir çözüm aramak için
prensipli bir yola ihtiyacımız vardır => Arama algoritmaları

43
Hanoi Tower
http://ceng.baskent.edu.tr/hanoi
• It was discovered by the French mathematician Edouard
Lucas in 1883.
• If it takes 1 second for 1 disk to move, it takes 500 billion
years to solve the 64 disk problem.
• So we need a principled way to search for a solution in
these large state spaces => Search algorithms

44
Durum Uzayında Arama
• Durum uzayı bir (V, E) graftır:
– V düğümler, E (bir düğümden diğerine) kenarlar kümesidir
• düğüm: durumu ifade eder
– Düğümün atası ile ilgili bilgileri,
– ata düğümden bu düğüme geçmek için gereken işlem hakkında
bilgileri
– diğer istatistiksel bilgileri içerir
• kenar: uygulanabilir hareketi/işlemi ifade eder
– Her bir kenarın pozitif bir değeri (maliyet) vardır

• Düğümün üretilmesi: önceden belirlenmiş (genişletilmiş) bir


düğüm üzerinde işlem yaparak diğer bir düğümün temsil
ettiği duruma geçmek

45
Durum Uzayında Arama
• Düğümün genişletilmesi: bir düğüm üzerinde olası
hareketleri uygulayarak, bu düğümden ulaşılabilecek diğer
tüm (çocuk) düğümlerin belirlenmesi
• Başlangıç düğüm bir ya da daha fazla olabilir
• Amaç testi: üzerinde işlem yapılan düğümün durumunun
hedef durum olup-olmadığının belirlenmesi
• Çözüm: başlangıç durumdan hedef duruma doğru yolda
yapılan işlemler sırası
• Çözümün değeri: çözüm yolundaki kenarların değerlerinin
(maliyetlerinin) toplamı

46
State Space Searching
• Extending the node: applying possible moves on a node,
identifying all other (child) nodes that can be reached
from that node
• The starting node can be one or more
• Objective testing: determining whether the state of the
node being processed is the target state
• Solution: sequence of operations on the way from the
starting state to the target state
• The value of the solution: the values of the edges in the
solution path (their costs) total

47
Durum Uzayında Arama
• Tanımı: genişletilmemiş durum uzayı grafının, amaç
düğümü de içine alan bir kısmının genişletilmesi yolu ile
çözümün aranması
– Başlangıçta V={S}, S başlangıç düğümdür
– S genişletildikçe ulaşılan düğümler V’ye, geçilen kenarlar ise
E’ye ilave edilir
– Hedef düğüm üretilene dek tekrar et
• Düğüm 3 halden birinde olabilir:
– Henüz genişletilmemiş (ulaşılmamış)
– AÇIK: Genişletilmiş ama üretilmemiş
– SON: Üretilmiş
• Arama ağacının büyüklüğü durum uzayı küçük olsa bile
sonsuz olabilir
– Sebebi: döngüler
48
Arama algoritmaları
Ana fikir:
Durum uzayının, gezilen durumların çocuklarını üreterek (genişletme)
sistematik keşfi

Function General-Search(problem, strateji) returns bir çözüm ya da hata


Başlangıç durum problemini kullanarak arama uzayını initialize et
loop do
if genişletmek için adaylar yok then return hata
genişletmek için stratejiye göre bir yaprak düğüm seç
if düğüm hedef durumu içerir then return uygun çözüm
else düğümü genişlet ve sonuç düğümü arama uzayına ekle
end
49
Gerçek Dünya Örnekleri
• Rota Bulma
– bilgisayar ağları, otomatik seyahat tavsiye sistemleri,
havayolu seyahat planlama sistemleri gibi değişik
alanlarda kullanılmaktadır
– Havayolu uygulaması çok karmaşıktır çünkü yol maliyeti
çok karmaşıktır: para, yer kalitesi, zaman, uçak tipi,
indirimler, ...
– Ayrıca problemdeki eylemler de tamamen bilinen çıktıları
vermez: uçuş gecikebilir, bağlantılar kaçırılabilir, sis veya
acil durumlar gecikmeye neden olabilir
• Gezgin satıcı (travelling salesman) problemi
• Robot Hareketi
• Montaj Sırası (Assembly sequencing)
50
Gerçek Dünya Örnekleri
• Route Finding
➢ It is used in various fields such as computer networks,
automated travel advice systems, airline travel
planning systems.
➢ Airline implementation is very complex because road
cost is very complex: money, quality of place, time,
type of aircraft, discounts, ...
➢ Also, actions in the problem do not give exactly known
outputs: flight may be delayed, connections may be
missed, fog or emergencies may cause delays.
• Traveling salesman problem
• Robot Movement
• Assembly Sequencing (Assembly sequencing) 51
Örnek durum uzayı-sample state
space
• S: başlangıç(Start), G: hedef (Goal)
3 A 4 B 4 C
Durum uzayı- S 5 5 G
State space 4 D E F
2 4 3

S 4
A 3 D
B 4 2
5 5
Döngüsüz-No D A E
loop 5 2 4 5 4
4 E E
Arama C B B F
2 4 5 4 4 5 4 4 3
Ağacı- D F B F C E A C G

Searching 3 4 3 4
G C G F
tree G3 45
Arama ağaçlarında yollar-Paths in
search trees
SA
S
A SDA D

B D A E

C E E B B F

D F B F C E A C G

G C G F
SDEBA
G

53
Arama stratejileri
• Bir arama stratejisi düğüm genişletme sırasının seçilmesiyle
belirlenir
• Stratejiler 4 kritere göre karşılaştırılır:
– Bütünlük (completeness): Eğer bir çözüm varsa bu her zaman
bulunabiliyor mu ?
– Zaman karmaşıklığı (time complexity): algoritmanın sonuca ulaşması
için gerçekleştirdiği işlemlerin sayısı
– Bellek karmaşıklığı (space complexity): algoritmanın çalışması için
gerekli bellek miktarı
– En iyi çözüm (optimality): her zaman en az masraflı çözümü
bulabiliyor mu?

54
Searching Strategies
• A search strategy is determined by choosing the node
expansion order.
• Strategies are compared according to 4 criteria:
➢ Completeness: If there is a solution, is it always available?
➢ Time complexity: the algorithm arrives at the result
• The number of transactions performed for
➢ Memory complexity: the amount of memory required for
the algorithm to run
➢ The best solution (optimality): always the least costly
solution can he find

55
Arama stratejileri
• Zaman ve bellek karmaşıklığı için kullanılan ölçümler:
– b (branch factor - dallanma kriteri): arama ağacında herhangi bir
düğümdeki maksimum dal sayısı
– d (depth): en ucuz çözümün ağaç derinliği (yüksekliği)
– m: durum uzayının maksimum derinliği (∞ olabilir)

56
Searching Strategies
• The metrics used for time and memory complexity are:
-b (branch factor): any point in the search tree maximum
number of branches in a node
-d (depth): tree depth (height) of the cheapest solution
-m: maximum depth of state space (may be ∞)

57
Karmaşıklık örneği: Gezgin satıcı
problemi
• Satıcı, tüm şehirleri (n adet) gezmek için bir yol arıyor:
• Her şehir sadece bir kez gezilecek ve toplam yol mümkün olduğu kadar
kısa olacak

• Bu hard bir problemdir: Bunu çözebilen algoritmalar eksponansiyel


karmaşıklığa sahiptir
• n şehir için => exp(n)
58
Complexity example: The traveling
salesman problem
• The seller is looking for a way to tour all cities (n units):
• Each city will be visited only once and the total distance will be as
short as possible.

• This is a hard problem: algorithms that can solve it have exponential


complexity.
• for n cities => exp(n)

59
Eksponansiyel karmaşıklık neden
“hard”dır?
Problemin gerçek çözümünü hesaplamak için gerekli
olan operasyon sayısı problemin boyutuyla (şehir
sayısı) arttığı anlamına gelir.

• exp(1) = 2.72
• exp(10) = 2.20 104
• exp(100) = 2.69 1043
• exp(500) = 1.40 10217
• exp(250,000) = 10108,573

• Bu yüzden genel olarak eksponansiyel karmaşıklı


problemler en küçük örnekleri için çözülebilirler
60
Why is exponential complexity "hard"?
It means that the number of operations required to
calculate the true solution to the problem increases
with the size of the problem (number of cities).

• exp(1) = 2.72
• exp(10) = 2.20 104
• exp(100) = 2.69 1043
• exp(500) = 1.40 10217
• exp(250,000) = 10108,573

• Thus, in general, problems of exponential complexity


can be solved for their smallest sample.
61
Karmaşıklık
• Polinomal-zamanlı (P) problemler: giriş boyutuyla polinomal
büyüyen bir zamanda çözen algoritmalar bulunan
➢ Ör: n sayıyı artan sırada sırala: kötü algoritmalar n2
karmaşıklığa sahiptir, daha iyileri n log(n)

• Bazı problemleri çözmek için hiç polinomal zamanlı algoritma


bilmeyiz
– nondeterministic-polynomial-time (NP)
– Ör: gezgin satıcı problemi.

• Özellikle eksponansiyel zamanlı algoritmaların NP olduğuna


inanılır
62
Complexity-Karmaşıklık
• Polynomial-time (P) problems: find algorithms that solve in
time that grows polynomially with input size
➢ Ex: sort n numbers in ascending order: bad algorithms n2
has complexity, better ones n log(n)

• We don't know any polynomial time algorithms to solve


some problems.
-nondeterministic-polynomial-time (NP)
-Ex: traveling salesman problem.

• In particular, exponential time algorithms are believed to


be NP.
63
NP problemler
• Deterministik olmayan Turing makinesinde polinomal
zamanda çözülebilir
• Deterministik Turing makinesinde polinomal zamanda
doğrulanabilir
– P sınıfındaki bütün problemler aynı zamanda NP'dedir

• Deterministik Turing makinası: Herhangi bir durumda,


verilen bir girdi için gidilecek sadece tek durum var
• Deterministik olmayan Turing makinası: Belirli bir girdi için
izlenecek birden fazla yol/durum var
– Teorik bir makinedir

64
NP Problems
• Can be solved in polynomial time on a non-deterministic
Turing machine
• In polynomial time in a deterministic Turing machine
verifiable
-All problems in class P are also in NP

• Deterministic Turing machine: In any given state, there is


only one state to go to for a given input.
• Non-deterministic Turing machine: There is more than
one path/state to follow for a given input
-It is a theoretical machine

65
NP problemler
• NP-Complete: eğer bir tanesinin P olması ispatlanabilirse
=> NP = P
Complexity

66

You might also like