Bilgisayar Bilimlerinde Hesaplama Kuramı



Benzer belgeler
FORMEL DİLLER VE SOYUT MAKİNALAR. Hafta 1

FORMEL DİLLER VE SOYUT MAKİNALAR. Hafta 2

Formal Diller Ve Otomat Teorisi

Sonlu Durum ve Turing Makineleri

Otomata Teorisi (BİL 2114)

FORMEL DİLLER VE SOYUT MAKİNALAR. Hafta 3

Biçimsel Diller ve Özdevinirler (COMPE 326) Ders Detayları

Otomata Teorisi (BIL 2114)

DOKUZ EYLÜL ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ DEKANLIĞI DERS/MODÜL/BLOK TANITIM FORMU. Dersin Kodu: CME 3002

Ders Adı Kodu Yarıyılı T+U Saati Ulusal Kredisi AKTS

Otomata Teorisi (BİL 2114)

MATM 133 MATEMATİK LOJİK. Dr. Doç. Çarıyar Aşıralıyev

HESAP. (kesiklik var; süreklilik örnekleniyor) Hesap sürecinin zaman ekseninde geçtiği durumlar

Manisa Celal Bayar Üniversitesi Yazılım Mühendisliği Bölümü YZM Biçimsel Diller ve Otomata Teorisi. Final Sınavı Soruları A KİTAPÇIĞI

Manisa Celal Bayar Üniversitesi Yazılım Mühendisliği Bölümü YZM Biçimsel Diller ve Otomata Teorisi. Final Sınavı Örnek Soruları A0 KİTAPÇIĞI

BLM 4811 MESLEKİ TERMİNOLOJİ II Salı , D-109 Dr. Göksel Biricik

BMT 206 Ayrık Matematik. Yük. Müh. Köksal GÜNDOĞDU 1

Otomata Teorisi (BİL 2114)

DENİZ HARP OKULU BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

Otomata Teorisi (BİL 2114)

İleri Diferansiyel Denklemler

Leyla Bugay Doktora Nisan, 2011

MAK 1005 Bilgisayar Programlamaya Giriş. BİLGİSAYARA GİRİŞ ve ALGORİTMA KAVRAMI

Kısmen insan davranışlarını veya sezgilerini gösteren, akılcı yargıya varabilen, beklenmedik durumları önceden sezerek ona göre davranabilen bir

8. HOMOMORFİZMALAR VE İZOMORFİZMALAR

8. HOMOMORFİZMALAR VE İZOMORFİZMALAR

İÇİNDEKİLER. Önsöz...2. Önermeler ve İspat Yöntemleri...3. Küme Teorisi Bağıntı Fonksiyon İşlem...48

! " # $ % & '( ) *' ' +, -. / $ 2 (.- 3( 3 4. (

BİLGİSAYAR MÜHENDİSLİĞİ

1. GRUPLAR. c (Birleşme özelliği) sağlanır. 2) a G için a e e a a olacak şekilde e G (e ye birim eleman denir) vardır.

Prof.Dr.Ünal Ufuktepe

Dilbilgisi ve Diller

C PROGRAMLAMA YRD.DOÇ.DR. BUKET DOĞAN PROGRAM - ALGORİTMA AKIŞ ŞEMASI

BM312 Ders Notları

1.GRUPLAR. c (Birleşme özelliği) sağlanır. 2) a G için a e e a a olacak şekilde e G. vardır. 3) a G için denir) vardır.

T I M U R K A R A Ç AY - H AY D A R E Ş C A L C U L U S S E Ç K I N YAY I N C I L I K A N K A R A

1 $/ " {ww R : w {a, b} * } ## S asa, S bsb S e#(3 * 5 $(6 )# (2 #$,(- (25 #5

MÜFREDAT DERS LİSTESİ

BÖLÜM 2 Biçimsel Dillerin Matematiksel Temelleri

KARAKTER DİZGİLERİ, BAĞINTILAR, FONKSİYONLAR KESİKLİ MATEMATİKSEL YAPILAR

EGE ÜNİVERSİTESİ FEN FAKÜLTESİ MATEMATİK BÖLÜMÜ ÖĞRETİM YILI BAHAR YARIYILI BÜTÜNLEME PROGRAMI

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

MATEMATİK BÖLÜMÜ BÖLÜM KODU:3201

TÜBİTAK-BİDEB. Lise Öğretmenleri(Fizik, Kimya, Biyoloji, Matematik) Proje Danışmanlığı Eğitimi Çalıştayı Lise-1(Çalıştay 2011) GRUBU PROJENİN ADI

olsun. Bu halde g g1 g1 g e ve g g2 g2 g e eşitlikleri olur. b G için a b b a değişme özelliği sağlanıyorsa

! " # $ % & '( ) *' ' +, $ $ - $ (. $- $ ( / $ % / $ 0 -( 1( $ (2- -(

Şimdi de [ ] vektörünün ile gösterilen boyu veya büyüklüğü Pisagor. teoreminini iki kere kullanarak

Derleyici Kuramı (Compiler Theory)

Temel Kavramlar. (r) Sıfırdan farklı kompleks sayılar kümesi: C. (i) Rasyonel sayılar kümesi: Q = { a b

Graf Veri Modeli. Düğümler kümesi. Kenarlar kümesi

Algoritma ve Programlamaya Giriş

Örnek...6 : Örnek...1 : Örnek...7 : Örnek...2 : Örnek...3 : Örnek...4 : Örnek...8 : Örnek...5 : MANTIK 2 MATEMATİKSEL ARAÇLAR AÇIK ÖNERMELER

EGE ÜNİVERSİTESİ FEN FAKÜLTESİ MATEMATİK BÖLÜMÜ ÖĞRETİM YILI BAHAR YARIYILI FİNAL PROGRAMI

KBÜ. TBP111 Bilgisayar Donanımı. Öğr. Gör. Dr. Abdullah ELEN KARABÜK ÜNİVERSİTESİ.

PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay.

DENİZ HARP OKULU BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

MUTLAK DEĞER Test -1

Chomsky Hiyerarşisi. Düzenli Diller ve Đfadeler 03/09/2014. Doç.Dr.Banu Diri

2. Klasik Kümeler-Bulanık Kümeler

Bölüm 2 Varlık-İlişki Veri Modeli: Araçlar ve Teknikler. Fundamentals, Design, and Implementation, 9/e

Programlama Dilleri 1. Ders 3: Rastgele sayı üretimi ve uygulamaları

Veri Bilim - Yapay Öğrenme Yaz Okulu, 2017 Matematiksel Temeller ve Vaka Çalışmaları

Grup Homomorfizmaları ve

SORU 1: En az iki elemana sahip bir X kümesi ile bunun P (X) kuvvet. kümesi veriliyor. P (X) üzerinde 0 ; A = 1 ; A

7. BAZI MATEMATİKSEL TEMELLER:

Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması. Mustafa Kemal Üniversitesi

Tanım Bir X kümesi üzerinde bir karakter dizgisi (string) X kümesindeki. boş karakter dizgisi (null string) denir ve l ile gösterilir.

5. Salih Zeki Matematik Araştırma Projeleri Yarışması PROJENİN ADI DİZİ DİZİ ÜRETEÇ PROJEYİ HAZIRLAYAN ESRA DAĞ ELİF BETÜL ACAR

Otomata Teorisi (BİL 2114)

10.Konu Tam sayıların inşası

T.C. ERCİYES ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ EĞİTİM ÖĞRETİM YILI DERS KATALOĞU

Esnek Hesaplamaya Giriş

T. C. E. Ü. FEN FAKÜLTESİ MATEMATİK BÖLÜMÜ Öğretim Yılı Bahar Dönemi Haftalık Ders Programı İkinci Öğretim

DERS 4 MİKROİŞLEMCİ PROGRAMLAMA İÇERİK

Olasılık Kuramı ve İstatistik. Konular Olasılık teorisi ile ilgili temel kavramlar Küme işlemleri Olasılık Aksiyomları

f(x) ve g(x) reel sayılarda tanımlı iki fonksiyon olmak üzere, x > k olacak şekilde bir k vardır öyle ki,

8.Konu Sonlu ve sonsuz kümeler, Doğal sayılar

Programlama Dilleri (COMPE 325) Ders Detayları

Bilgisayar Programlama MATLAB

BİLGİSAYAR PROGRAMLAMA MATLAB

Bil 2114 Otomata Teorisi Çalışma Soruları ve Cevapları III (Hafta 7,8,9)

FONKSİYONLAR. Örnek: (2x-2,y-3)=(10,-3) olduğuna göre x ve y sayılarını bulunuz.

14.12 Oyun Teorisi Ders Notları Seçim Teorisi

Cebir Notları. Gökhan DEMĐR, ÖRNEK : A ve A x A nın bir alt kümesinden A ya her fonksiyona

BİL-341 ALGORİTMALAR BÜYÜK O NOTASYONU AHMET ATAKAN atakanahmet@hotmail.com KIRGIZİSTAN-TÜRKİYE MANAS ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ

Sezgisel Kümeler Kuramı (Math 111) Birinci Vize Sorular ve Cevaplar

VERİ YAPILARI VE PROGRAMLAMA (BTP104)

EĞİTİM-ÖĞRETİM YILI MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ (İNGİLİZCE) BÖLÜMÜ DERS PROGRAMINDA YAPILAN DEĞİŞİKLİKLER

BAĞLAMDAN BAĞIMSIZ (CONTEXT-FREE) GRAMERLER (CFG) VE DİLLER (CFL)

DERS 2. Fonksiyonlar

MAT101 MATEMATİK I BÖLÜM 3 FONKSİYONLAR

! " # $ % & '( ) *' ' +, -. /) /) 0 # /) %, %, 1 2

MATM 133 MATEMATİK LOJİK. Dr. Doç. Çarıyar Aşıralıyev

MAT 302 SOYUT CEBİR II SORULAR. (b) = ise =

DÖNGÜLER (LOOPS) while(), do-while(), for(), foreach()

DERS BİLGİ FORMU. IV Türkçe Zorunlu Ders. Haftalık. Ders. Okul Eğitimi Süresi. Saati

Bu kısımda işlem adı verilen özel bir fonksiyon çeşidini ve işlemlerin önemli özelliklerini inceleyeceğiz.

1. Metrik Uzaylar ve Topolojisi

BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

Transkript:

Bilgisayar Bilimlerinde Hesaplama Kuramı Hüseyin Hışıl Bilgisayar Mühendisliği Bölümü Mühendislik Fakültesi Yaşar Üniversitesi 8 Mart 2012 / İzmir Hüseyin Hışıl (Yaşar Üniversitesi) Bilgisayar Bilimlerinde Hesaplama Kuramı 8 Mart 2012 / İzmir 1 / 38

Bilgisayar için en basit model Girdi Hesaplama Çıktı Hüseyin Hışıl (Yaşar Üniversitesi) Bilgisayar Bilimlerinde Hesaplama Kuramı 8 Mart 2012 / İzmir 2 / 38

Alfabe, sözcük, kurallı dil (formal language) Tanım Σ alfabesi : Sonlu sayıda elemana (karaktere) sahip küme Sözcük : ε (boş sözcük) de dahil olmak üzere Σ dan sıralı olarak seçilen sonlu sayıda eleman Kurallı dil : Σ üzerine tanımlı sözcüklerden oluşan küme Σ : Σ üzerine tanımlı tüm sözcüklerin oluşturduğu kurallı dil Σ n : Σ üzerine tanımlı n tane karakterden oluşan tüm sözcüklerin oluşturduğu kurallı dil Örnek Σ={a,b} olsun. Σ üzerine a ile başlayıp en fazla üç karakterden oluşan tüm sözcükleri içeren L 1 dili tanımlanmıştır. L 1 dilini belirtiniz. L 1 ={a,aa,ab,aaa,aab,aba,abb}. Hüseyin Hışıl (Yaşar Üniversitesi) Bilgisayar Bilimlerinde Hesaplama Kuramı 8 Mart 2012 / İzmir 3 / 38

Yeni dillerin türetilmesi Tanım Σ bir alfabe olsun. Σ üzerine tanımlanmış L ve K dilleri için; Birbirine bağlama : LK ={xy x L and y K}. Birleştirme : L K ={x x L or x K}. Kleene tamamlaması : L ={x x,l dilinden birbiriyle bağlanmış sonlu sayıda sözcük}. Hüseyin Hışıl (Yaşar Üniversitesi) Bilgisayar Bilimlerinde Hesaplama Kuramı 8 Mart 2012 / İzmir 4 / 38

Yeni dillerin türetilmesi Örnek L 1 ={,, }, L 2 ={, } olsun. 1 L 1 L 2 =? 2 L 1 L 2 =? 3 (L 1 L 2 ) =? Hüseyin Hışıl (Yaşar Üniversitesi) Bilgisayar Bilimlerinde Hesaplama Kuramı 8 Mart 2012 / İzmir 5 / 38

Yeni dillerin türetilmesi Örnek L 1 ={,, }, L 2 ={, } olsun. 1 L 1 L 2 =? 2 L 1 L 2 =? 3 (L 1 L 2 ) =? 1 L 1 L 2 ={,,,,, }. Hüseyin Hışıl (Yaşar Üniversitesi) Bilgisayar Bilimlerinde Hesaplama Kuramı 8 Mart 2012 / İzmir 5 / 38

Yeni dillerin türetilmesi Örnek L 1 ={,, }, L 2 ={, } olsun. 1 L 1 L 2 =? 2 L 1 L 2 =? 3 (L 1 L 2 ) =? 1 L 1 L 2 ={,,,,, }. 2 L 1 L 2 ={,,,, }. Hüseyin Hışıl (Yaşar Üniversitesi) Bilgisayar Bilimlerinde Hesaplama Kuramı 8 Mart 2012 / İzmir 5 / 38

Yeni dillerin türetilmesi Örnek L 1 ={,, }, L 2 ={, } olsun. 1 L 1 L 2 =? 2 L 1 L 2 =? 3 (L 1 L 2 ) =? 1 L 1 L 2 ={,,,,, }. 2 L 1 L 2 ={,,,, }. 3 (L 1 L 2 ) = {x x,l 1 L 2 dilinden birbiriyle bağlanmış sonlu sayıda sözcük}. Hüseyin Hışıl (Yaşar Üniversitesi) Bilgisayar Bilimlerinde Hesaplama Kuramı 8 Mart 2012 / İzmir 5 / 38

Hesaplayıcı (Finite state machine - FSM) Hesaplayıcının özellikleri : Kural bağımlı / Güdümlü (Deterministic) Araç / Düzenek / Makine (Machine) Aşama / Evre (State) Sonlu (Finite) Tanım Hesaplayıcı K Q : Sonlu sayıda eleman (evre) içeren bir küme, Σ alfabesi : Sonlu sayıda karakterden oluşan bir küme, δ : Q Σ Q şeklinde tanımlanmış bir fonksiyon, q 0 Q : başlangıç evresi, F Q : Sonlu sayıda bitiş evresi olmak üzere K :=(Q,Σ,δ,q 0,F) ile tanımlanan soyut bir makinedir. Hüseyin Hışıl (Yaşar Üniversitesi) Bilgisayar Bilimlerinde Hesaplama Kuramı 8 Mart 2012 / İzmir 6 / 38

Hesaplayıcı nasıl çalışır? Örnek δ parçalı fonksiyonu δ(q 0,0)=q 0, δ(q 0,1)=q 1, olmak üzere δ(q 1,0)=q 0, δ(q 1,1)=q 2, K =({q 0,q 1,q 2 },{0,1},δ,q 0,{q 1 }) δ(q 2,0)=q 2, δ(q 2,1)=q 1 olsun. K hesaplayıcısı 01 sözcüğünü kabul eder mi? 1 δ(q 0,0)=q 0, 2 δ(q 0,1)=q 1. q 1 bitiş evresi olduğu için 01 sözcüğü kabul edilir. Hüseyin Hışıl (Yaşar Üniversitesi) Bilgisayar Bilimlerinde Hesaplama Kuramı 8 Mart 2012 / İzmir 7 / 38

Hesaplayıcı nasıl çalışır? Örnek δ parçalı fonksiyonu δ(q 0,0)=q 0, δ(q 0,1)=q 1, olmak üzere δ(q 1,0)=q 0, δ(q 1,1)=q 2, K =({q 0,q 1,q 2 },{0,1},δ,q 0,{q 1 }) δ(q 2,0)=q 2, δ(q 2,1)=q 1 olsun. K hesaplayıcısı 110 sözcüğünü kabul eder mi? 1 δ(q 0,1)=q 1, 2 δ(q 1,1)=q 2, 3 δ(q 2,0)=q 2. q 2 bitiş evresi olmadığı için 110 sözcüğü kabul edilmez. Hüseyin Hışıl (Yaşar Üniversitesi) Bilgisayar Bilimlerinde Hesaplama Kuramı 8 Mart 2012 / İzmir 7 / 38

Hesaplayıcı nasıl çalışır? K hesaplayıcısı 10011101 sözcüğünü kabul eder mi? 0 0 q 0 0 q 1 1 q 2 1 1 q 0 1 q 1 0 q 0 0 q 0 1q 1 1q 2 1 q 1 0 q 0 1 q 1 Kabul edilir. Hüseyin Hışıl (Yaşar Üniversitesi) Bilgisayar Bilimlerinde Hesaplama Kuramı 8 Mart 2012 / İzmir 8 / 38

Serbest Hesaplayıcı (Non-deterministic FSM) Serbest hesaplayıcının özellikleri : Kural bağımsız / Güdümsüz / Serbest (Non-Deterministic) Sonlu Aşama / Evre Araç / Makine Tanım Serbest hesaplayıcı S δ : Q (Σ {ε}) 2 Q şeklinde tanımlanmış bir fonksiyon olmak üzere S :=(Q,Σ,δ,q 0,F) ile tanımlanan soyut bir makinedir. Not : 2 Q ifadesi Q kümesinin özaltkümesini temsil etmektedir. Hüseyin Hışıl (Yaşar Üniversitesi) Bilgisayar Bilimlerinde Hesaplama Kuramı 8 Mart 2012 / İzmir 9 / 38

Serbest hesaplayıcının (kural-bağımlı) hesaplayıcıdan farkı nedir? 1 δ nın değer kümesi Q dan seçilen bir eleman olarak değil Q nun bir altkümesi olarak verilmiştir. Örneğin, δ(q 1,a)={q 0,q 2 } 2 δ fonksiyonunun ikinci parametresi olarak ε verilebilir. Bu serbest hesaplayıcının karakter getirmeden bir evreden başka bir evreye geçebileceğine ya da aynı evrede kalmaya devam edebileceğine işaret eder. 3 /0 2 Q bulunulan evreden geçiş yapılabilecek hiçbir evre olmayabileceğini gösterir. 4 Verilen bir sözcük, bitiş evresine ulaşmanın bir yolu varsa kabul edilir. Hüseyin Hışıl (Yaşar Üniversitesi) Bilgisayar Bilimlerinde Hesaplama Kuramı 8 Mart 2012 / İzmir 10 / 38

Serbest hesaplayıcı nasıl çalışır? 0 0 q 0 q 1 q 2 1 1 ε Örnek Verilen serbest hesaplayıcı tarafından ε, 10, 1010, 101010 sözcükleri kabul edilir. 110, 10100 sözcükleri kabul edilmez. Hüseyin Hışıl (Yaşar Üniversitesi) Bilgisayar Bilimlerinde Hesaplama Kuramı 8 Mart 2012 / İzmir 11 / 38

Hesaplayıcı için genişletilmiş gösterim δ fonksiyonunun yardımı ile δ fonksiyonunu tanımlayalım. Tanım δ : Q Σ Q, δ (q,ε) = q, δ (q,wa) = δ(δ (q,w),a) [TEMEL] [ÖZYİNELEME] öyleki q Q,w Σ,a Σ şeklinde tanımlanmış bir fonksiyon olsun. Hüseyin Hışıl (Yaşar Üniversitesi) Bilgisayar Bilimlerinde Hesaplama Kuramı 8 Mart 2012 / İzmir 12 / 38

Hesaplayıcı için genişletilmiş gösterim Tanımladığımız δ fonksiyonunu ile K hesaplayıcısını kullanalım. δ (q,11001) = δ(δ (q 0,1001),1) = δ(δ(δ (q 0,001),1),1) = δ(δ(δ(δ (q 0,01),1),1),0) = δ(δ(δ(δ(δ (q 0,1),1),1),0),0) = δ(δ(δ(δ(δ(δ (q 0,ε),1),1),0),0),1) = δ(δ(δ(δ(δ(q 0,1),1),0),0),1) = δ(δ(δ(δ(q 1,1),0),0),1) = δ(δ(δ(q 2,0),0),1) = δ(δ(q 2,0),1) = δ(q 2,1) = q 1 (11001 sözcüğü kabul edilir.) Hüseyin Hışıl (Yaşar Üniversitesi) Bilgisayar Bilimlerinde Hesaplama Kuramı 8 Mart 2012 / İzmir 13 / 38

Hesaplayıcının kabul ettiği dil Kural-bağımlı ya da serbest M :=(Q,Σ,δ,q 0,F) hesaplayıcısının kabul ettiği dili tanımlayalım. Tanım (M hesaplayıcısının kabul ettiği dil) L(M) : = {w Σ : δ (q 0,w) F}. Hüseyin Hışıl (Yaşar Üniversitesi) Bilgisayar Bilimlerinde Hesaplama Kuramı 8 Mart 2012 / İzmir 14 / 38

Hesaplayıcıların eşdeğerliği Tanım M 1 ve M 2 hesaplayıcıları verilsin. L(M 1 )=L(M 2 ) ise M 1 ve M 2 eşdeğer hesaplayıcılar olarak nitelenir. Kuram S serbest hesaplayıcı ve L(S) verilsin. L(S) = L(M) olacak şekilde bir kural-bağımlı hesaplayıcı M vardır. Sonuç : Kural-bağımlı hesaplayıcı ve serbest hesaplayıcı eşdeğerdir. Hüseyin Hışıl (Yaşar Üniversitesi) Bilgisayar Bilimlerinde Hesaplama Kuramı 8 Mart 2012 / İzmir 15 / 38

Düzenli dil (Regular language) Tanım L bir dil olmak üzere eğer L dilini kabul eden bir hesaplayıcı tanımlanabiliyor ise L düzenli bir dildir. Not : p q şeklindeki mantıksal ifadeler matematiksel tanımlara özel olarak p q olarak yorumlanır. Hüseyin Hışıl (Yaşar Üniversitesi) Bilgisayar Bilimlerinde Hesaplama Kuramı 8 Mart 2012 / İzmir 16 / 38

Düzenli dili tanımlayan hesaplayıcı(lar) Örnek L:={awa: w {a,b} } verilsin. L dilinin düzenli olduğunu gösteriniz. a b q 1 b a a q 0 a q 2 q 3 b b Hüseyin Hışıl (Yaşar Üniversitesi) Bilgisayar Bilimlerinde Hesaplama Kuramı 8 Mart 2012 / İzmir 17 / 38

Hesaplayıcının kabul ettiği (düzenli) dil a a a b q 0 b q 1 b q 2 Örnek Şekilde verilen K hesaplayıcısının kabul ettiği (düzenli) dili bulunuz. L(K)=L(a b). Not : a b şeklinde bir anlatımı henüz tanımlamadık. Hüseyin Hışıl (Yaşar Üniversitesi) Bilgisayar Bilimlerinde Hesaplama Kuramı 8 Mart 2012 / İzmir 18 / 38

Düzenli anlatım (Regular expression) Tanım Σ bir alfabe olsun. 1 [TEMEL] /0, ε, a Σ düzenli anlatımdır. 2 [ÖZYİNELEME] Eğer r 1 ve r 2 düzenli anlatım ise (r1 r 2 ) ile gösterilen r 1 ya da r 2, (r1 r 2 ) ile gösterilen r 1 i takip eden r 2, (r 1 ) ile gösterilen değişken sayıda r 1 in birbirini takip etmesi anlatımları da düzenli anlatımdır. 3 [SINIRLAMA] Bu iki kural dışında kalan hiçbir anlatım düzenli anlatım değildir. Hüseyin Hışıl (Yaşar Üniversitesi) Bilgisayar Bilimlerinde Hesaplama Kuramı 8 Mart 2012 / İzmir 19 / 38

Düzenli anlatım ile tanımlanan diller Tanım Düzenli anlatım q ile tanımlanan L(q) dili aşağıda belirtilen kurallara göre oluşturulur. 1 [TEMEL] L(/0)= /0, L(ε)={ε}, a Σ,L(a)={a}. 2 [ÖZYİNELEME] 1 L(qr) = L(q)L(r), 2 L(q r)=l(q) L(r), 3 L(q )=(L(q)). Hüseyin Hışıl (Yaşar Üniversitesi) Bilgisayar Bilimlerinde Hesaplama Kuramı 8 Mart 2012 / İzmir 20 / 38

Düzenli anlatım ile tanımlanan diller Örnek {a,b} alfabesi üzerine tanımlanmış L(a b(a b) ) dilindeki sözcükleri örnekleyiniz. b, ab, abbb, abaaa, ababba. L(a b(a b) ) = L(a )L(b)L((a b) ) = (L(a)) L(b)(L(a b)) = (L(a)) L(b)(L(a) L(b))) = {a} {b}({a} {b}). Hüseyin Hışıl (Yaşar Üniversitesi) Bilgisayar Bilimlerinde Hesaplama Kuramı 8 Mart 2012 / İzmir 21 / 38

Düzenli anlatım, düzenli dil ve hesaplayıcıların ilişkisi Kuram r bir düzenli anlatım olsun. L(r) dilini kabul eden bir hesaplayıcı vardır. Dolayısıyla, L(r) düzenli bir dildir. Kuram T bir düzenli dil olsun. T = L(r) olacak şekilde bir düzenli anlatım vardır. Hüseyin Hışıl (Yaşar Üniversitesi) Bilgisayar Bilimlerinde Hesaplama Kuramı 8 Mart 2012 / İzmir 22 / 38

Genel bakış Geride bıraktığımız sunularda Kurallı ve düzenli dili tanımladık. Bilgisayar için soyut bir model olabileceğine inandığımız hesaplayıcıyı tanımladık. Hesaplama yapmanın anlamına dair sormak istediğimiz sorulara cevap araken mantık ilkelerini kullanabileceğimiz bir altyapı hazırladık. Hüseyin Hışıl (Yaşar Üniversitesi) Bilgisayar Bilimlerinde Hesaplama Kuramı 8 Mart 2012 / İzmir 23 / 38

Temel Kuramlar Kuram L/Σ, düzenli anlatımla ya da hesaplıcıyla tanımlanan düzenli bir dil olsun. Seçilen w Σ sözcüğü L dilinin elemanı olup olmadığını belirleyecek sonlu sayıda adımla ifade edilebilen bir yöntem (algoritma) vardır. Kanıt. L dilini tanımlayan hesaplayıcı ile w sözcüğünün kabul edilip edilmeğini sınanır. Hüseyin Hışıl (Yaşar Üniversitesi) Bilgisayar Bilimlerinde Hesaplama Kuramı 8 Mart 2012 / İzmir 24 / 38

Temel Kuramlar Kuram L/Σ herhangi bir düzenli dil olsun. L dilinin boş, sonlu veya sonsuz küme olduğunu sınacak bir algoritma vardır. Kanıt. L dilini tanımlayan hesaplayıcı geçiş diyagramı olarak temsil edilir. Eğer başlangıç evresinden bitiş evresine bir bağlantı bulunmuyorsa L = /0 kanıtlanmış olur. Eğer başlangıç evresinden bitiş evresine bir bağlantı bulunuyorsa L /0 kanıtlanmış olur. L /0 durumunda geçiş diyagramı bir döngü içeriyorsa L sonsuz kümedir; döngü içermiyorsa L sonlu kümedir. Hüseyin Hışıl (Yaşar Üniversitesi) Bilgisayar Bilimlerinde Hesaplama Kuramı 8 Mart 2012 / İzmir 25 / 38

Hayallerimizin yıkıldığı an L={a n b n : n 0} bir düzenli dil midir? Cevap : Düzenli dil değildir! Hüseyin Hışıl (Yaşar Üniversitesi) Bilgisayar Bilimlerinde Hesaplama Kuramı 8 Mart 2012 / İzmir 26 / 38

Hayallerimizin yıkıldığı an L={a n b n : n 0} bir düzenli dil midir? Cevap : Düzenli dil değildir! Olmayana ergi yöntemi ile ispatlayalım. 1 L dilinin düzenli olduğunu varsayalım. O halde M =(Q,a,b,δ,q 0,F) gibi tanımlabilecek bir hesaplayıcı vardır. Hüseyin Hışıl (Yaşar Üniversitesi) Bilgisayar Bilimlerinde Hesaplama Kuramı 8 Mart 2012 / İzmir 26 / 38

Hayallerimizin yıkıldığı an L={a n b n : n 0} bir düzenli dil midir? Cevap : Düzenli dil değildir! Olmayana ergi yöntemi ile ispatlayalım. 1 L dilinin düzenli olduğunu varsayalım. O halde M =(Q,a,b,δ,q 0,F) gibi tanımlabilecek bir hesaplayıcı vardır. 2 i = 1,2,3,... için δ (q 0,a i ) ifadesini inceleyelim. M hesaplayıcısında sonlu sayıda evre bulunmasına karşılık sınırsız sayıda i değeri bulunmaktadır. Hüseyin Hışıl (Yaşar Üniversitesi) Bilgisayar Bilimlerinde Hesaplama Kuramı 8 Mart 2012 / İzmir 26 / 38

Hayallerimizin yıkıldığı an L={a n b n : n 0} bir düzenli dil midir? Cevap : Düzenli dil değildir! Olmayana ergi yöntemi ile ispatlayalım. 1 L dilinin düzenli olduğunu varsayalım. O halde M =(Q,a,b,δ,q 0,F) gibi tanımlabilecek bir hesaplayıcı vardır. 2 i = 1,2,3,... için δ (q 0,a i ) ifadesini inceleyelim. M hesaplayıcısında sonlu sayıda evre bulunmasına karşılık sınırsız sayıda i değeri bulunmaktadır. 3 O halde m n olacak şekilde δ (q 0,a n )=q ve δ (q 0,a m )=q durumunun mutlaka oluşacaktır. Hüseyin Hışıl (Yaşar Üniversitesi) Bilgisayar Bilimlerinde Hesaplama Kuramı 8 Mart 2012 / İzmir 26 / 38

Hayallerimizin yıkıldığı an L={a n b n : n 0} bir düzenli dil midir? Cevap : Düzenli dil değildir! Olmayana ergi yöntemi ile ispatlayalım. 1 L dilinin düzenli olduğunu varsayalım. O halde M =(Q,a,b,δ,q 0,F) gibi tanımlabilecek bir hesaplayıcı vardır. 2 i = 1,2,3,... için δ (q 0,a i ) ifadesini inceleyelim. M hesaplayıcısında sonlu sayıda evre bulunmasına karşılık sınırsız sayıda i değeri bulunmaktadır. 3 O halde m n olacak şekilde δ (q 0,a n )=q ve δ (q 0,a m )=q durumunun mutlaka oluşacaktır. 4 M hesaplayıcısı a n b n sözcüğünü kabul ettiğine göre δ (q,b n )=q f F. Hüseyin Hışıl (Yaşar Üniversitesi) Bilgisayar Bilimlerinde Hesaplama Kuramı 8 Mart 2012 / İzmir 26 / 38

Hayallerimizin yıkıldığı an L={a n b n : n 0} bir düzenli dil midir? Cevap : Düzenli dil değildir! Olmayana ergi yöntemi ile ispatlayalım. 1 L dilinin düzenli olduğunu varsayalım. O halde M =(Q,a,b,δ,q 0,F) gibi tanımlabilecek bir hesaplayıcı vardır. 2 i = 1,2,3,... için δ (q 0,a i ) ifadesini inceleyelim. M hesaplayıcısında sonlu sayıda evre bulunmasına karşılık sınırsız sayıda i değeri bulunmaktadır. 3 O halde m n olacak şekilde δ (q 0,a n )=q ve δ (q 0,a m )=q durumunun mutlaka oluşacaktır. 4 M hesaplayıcısı a n b n sözcüğünü kabul ettiğine göre δ (q,b n )=q f F. O halde δ (q 0,a m b n )=δ (δ (q 0,a m ),b n )=δ (q,b n )=q f. Hüseyin Hışıl (Yaşar Üniversitesi) Bilgisayar Bilimlerinde Hesaplama Kuramı 8 Mart 2012 / İzmir 26 / 38

Hayallerimizin yıkıldığı an L={a n b n : n 0} bir düzenli dil midir? Cevap : Düzenli dil değildir! Olmayana ergi yöntemi ile ispatlayalım. 1 L dilinin düzenli olduğunu varsayalım. O halde M =(Q,a,b,δ,q 0,F) gibi tanımlabilecek bir hesaplayıcı vardır. 2 i = 1,2,3,... için δ (q 0,a i ) ifadesini inceleyelim. M hesaplayıcısında sonlu sayıda evre bulunmasına karşılık sınırsız sayıda i değeri bulunmaktadır. 3 O halde m n olacak şekilde δ (q 0,a n )=q ve δ (q 0,a m )=q durumunun mutlaka oluşacaktır. 4 M hesaplayıcısı a n b n sözcüğünü kabul ettiğine göre δ (q,b n )=q f F. O halde δ (q 0,a m b n )=δ (δ (q 0,a m ),b n )=δ (q,b n )=q f. M hesaplayıcısının a m b n sözcüğünü kabul etmesi bir çelişkidir. Hüseyin Hışıl (Yaşar Üniversitesi) Bilgisayar Bilimlerinde Hesaplama Kuramı 8 Mart 2012 / İzmir 26 / 38

Nereye vardık? Hesaplamanın doğasına ilişkin birçok soruyu cevaplayabilmesine karşın hesaplayıcılar, bilgisayarı soyut olarak modellemek için yetersizdir! Hüseyin Hışıl (Yaşar Üniversitesi) Bilgisayar Bilimlerinde Hesaplama Kuramı 8 Mart 2012 / İzmir 27 / 38

Peki şimdi ne olacak? Bilgisayarın soyut modeli var mıdır? Geliştirilen diğer modeller : Düzenli gramer. YETERSİZ Bağlam-bağımsız diller (Context-free languages). YETERSİZ Bellekli hesaplayıcılar (Pushdown automata). YETERSİZ... Turing makinesi. YETERSİZLİĞİ İSPATLANAMAMIŞTIR!... Daha fazla bilgi için bkz. Chomsky nin sınıflandırması. Hüseyin Hışıl (Yaşar Üniversitesi) Bilgisayar Bilimlerinde Hesaplama Kuramı 8 Mart 2012 / İzmir 28 / 38

Alan Turing (1912-1954) Matematik, mantık, kriptografi, hesaplama alanlarında çalışmış İngiliz bilimadamı http://upload.wikimedia.org/wikipedia/en/c/c8/alan_turing_photo.jpg Hüseyin Hışıl (Yaşar Üniversitesi) Bilgisayar Bilimlerinde Hesaplama Kuramı 8 Mart 2012 / İzmir 29 / 38

Turing Makinesi Tanım Turing Makinesi T Q : Sonlu sayıda eleman (evre) içeren bir küme, Γ alfabesi : Sonlu sayıda karakterden oluşan bir küme, Σ alfabesi : Sonlu sayıda karakterden oluşan bir küme öyleki Σ Γ { }, δ : Q Γ Q Γ {L,R} şeklinde tanımlanmış bir fonksiyon, F : özel olarak tanımlanmış boşluk karakteri, q 0 Q : başlangıç evresi, F Q : Sonlu sayıda bitiş evresi olmak üzere T :=(Q,Σ,Γ,δ,q 0,,F) ile tanımlanan soyut bir makinedir. Hüseyin Hışıl (Yaşar Üniversitesi) Bilgisayar Bilimlerinde Hesaplama Kuramı 8 Mart 2012 / İzmir 30 / 38

Turing Makinesi Denetim Birimi Okuma/Yazma Birimi Sonsuz Bellek (bant) Hüseyin Hışıl (Yaşar Üniversitesi) Bilgisayar Bilimlerinde Hesaplama Kuramı 8 Mart 2012 / İzmir 31 / 38

Turing Makinesi - Bilgisayar Benzerliği Turing Makinesi Γ δ q 0 Bilgisayar Olası atama değerleri Program Boot sector L, R İşlemci komutları Sözcük bandı Bellek ve Giriş/Çıkış Aygıtı Hüseyin Hışıl (Yaşar Üniversitesi) Bilgisayar Bilimlerinde Hesaplama Kuramı 8 Mart 2012 / İzmir 32 / 38

Turing Makinesi Nasıl Çalışır? {a,b} alfabesi üzerine tanımlanan {a n b n : n 1} dilini kabul eden Turing makinesi aşağıda örneklenmiştir : δ(q 0,a)=(q 1,x,R), δ(q 1,a)=(q 1,a,R), δ(q 1,y)=(q 1,y,R), δ(q 1,b)=(q 2,y,L), olmak üzere δ(q 2,y)=(q 2,y,L), δ(q 2,a)=(q 2,a,L), δ(q 2,x)=(q 0,x,R), δ(q 0,y)=(q 3,y,R), δ(q 3,y)=(q 3,y,R), δ(q 3, )=(q 4,,R). T :={{q 0,q 1,q 2,q 3,q 4 },{a,b},{a,b, x,y, },δ,q 0,{q 4 }}. T makinesini sınamak için aabb sözcüğünü kullanalım : q 0 aabb xq 1 abb xaq 1 bb xq 2 ayb q 2 xayb xq 0 ayb xxq 1 yb xxyq 1 b xxq 2 yy xq 2 xyy xxq 0 yy xxyq 3 y xxyq 3 xxyy q 4. Hüseyin Hışıl (Yaşar Üniversitesi) Bilgisayar Bilimlerinde Hesaplama Kuramı 8 Mart 2012 / İzmir 33 / 38

Hesaplama tanımı ve Church-Turing Tezi Tanım T bir Turing makinesi olsun. T ti bitiş evresive getiren bir sözcük için evreler arasında yapılan geçişlerin tamamına hesaplama denir. Church-Turing tezi. Mekanik olarak yapılabilen her hesaplamayı yapabilecek bir Turing makinesi vardır. Not : Church-Turing tezi hesaplamanın tanımı gereği bir tezden ziyade tanım hatta aksiyom olarak değerlendirilmektedir. Hüseyin Hışıl (Yaşar Üniversitesi) Bilgisayar Bilimlerinde Hesaplama Kuramı 8 Mart 2012 / İzmir 34 / 38

Turing Makinesi Neyi Hesaplayamaz? Kuram Bir Turing makinesinin verilen bir sözcük ile bitiş evresine ulaşıp ulaşamayacağını belirleyebilecek bir Turing makinesi yoktur. Not : Turing makinesinin sınırsız işlem gücüyle çözemeyeceği birçok problem tanımlanmıştır. Hüseyin Hışıl (Yaşar Üniversitesi) Bilgisayar Bilimlerinde Hesaplama Kuramı 8 Mart 2012 / İzmir 35 / 38

Diğer konular Hesaplama Analizi O(g(n)),Ω(g(n)), Θ(g(n)). Karmaşıklık Teorisi P, NP, NP-Bütün (NP-Complete), NP-Zor (NP-Hard) P sınıfı NP sınıfına eşdeğer midir? Hüseyin Hışıl (Yaşar Üniversitesi) Bilgisayar Bilimlerinde Hesaplama Kuramı 8 Mart 2012 / İzmir 36 / 38

NP-Bütün Prolemlerin Tanımlandığı Bazı Alanlar Graph theory (Graph coloring) Network design (Traveling salesman) Storage and retrieval (Dynamic storage allocation) Sequencing and scheduling (Multiprocessor scheduling) Mathematical programming (Knapsack) Algebra and number theory (Algebraic equations over any finite field.) Games and puzzles (Sudoku, Tetris) Logic (Boolean satisfiability) Automata and language theory (Reduction of incompletely specified automata) Program optimization (Register sufficiency for loops) Hüseyin Hışıl (Yaşar Üniversitesi) Bilgisayar Bilimlerinde Hesaplama Kuramı 8 Mart 2012 / İzmir 37 / 38

Kaynakça : Peter Linz, An Introduction to Formal Languages and Automata, Jones and Barlett Publishers, 2001. Hüseyin Hışıl (Yaşar Üniversitesi) Bilgisayar Bilimlerinde Hesaplama Kuramı 8 Mart 2012 / İzmir 38 / 38