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

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

Otomata Teorisi (BİL 2114)

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

Sonlu Durum ve Turing Makineleri

BM312 Ders Notları

Otomata Teorisi (BİL 2114)

Otomata Teorisi (BIL 2114)

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

Otomata Teorisi (BİL 2114)

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

Otomata Teorisi (BİL 2114)

Otomata Teorisi (BİL 2114)

Otomata Teorisi (BİL 2114)

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

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

YZM Biçimsel Diller ve Otomata Teorisi. Ders#06

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

Formal Diller Ve Otomat Teorisi

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

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

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

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

BLG311 Biçimsel Diller ve Otomatlar

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

,$( -./(,$( 0$0$ (,$(

Esnek Hesaplamaya Giriş

Derleyici Kuramı (Compiler Theory)

Yazılım Mühendisliğine Giriş 2018 GÜZ

Bilgisayarların Gelişimi

Bilgisayar Bilimlerinde Hesaplama Kuramı

Düşünelim? Günlük hayatta bilgisayar hangi alanlarda kullanılmaktadır? Bilgisayarın farklı tip ve özellikte olmasının sebepleri neler olabilir?

Bilgisayar Programlama. 1.Hafta

Merkezi İşlem Birimi (CPU)

Örnek 4: Örnek Özyinelemeli fonksiyon örneği Bölüm 9. C++ programlama dilinde Nesne ve sınıf

(I) şimdiki. durum (S) belleği. saat. girşi

İŞLEMCİLER (CPU) İşlemciler bir cihazdaki tüm girdilerin tabii tutulduğu ve çıkış bilgilerinin üretildiği bölümdür.

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#8

Yrd. Doç. Dr. Caner ÖZCAN

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

Bilgisayar Mühendisliği Doktora Yeterlilik Yazılı Sınavı İçeriği

Dilbilgisi ve Diller

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

DONANIM Bahar Dönemi TEMEL BİLİŞİM TEKNOLOJİLERİ

Deney 6: Ardışıl Devre Analizi

3. Bölüm Algoritmalar

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-8 Dosya İşlemleri-1. Yrd. Doç. Dr. Ümit ATİLA

Donan m Donan m Birimleri:

BM-311 Bilgisayar Mimarisi

MİKROİŞLEMCİLER 1 Ders 1

ALGORİTMA VE PROGRAMLAMA I

(Random-Access Memory)

YZM 2116 Veri Yapıları

Temel Bilgi Teknolojileri -1

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

Doğu Akdeniz Üniversitesi Bilgisayar ve Teknoloji Yüksek Okulu Bilgi teknolojileri ve Programcılığı Bölümü DERS 1 - BİLGİSAYAR VE ÇEVRE ÜNİTELERİ

BELLEKLER. Kelime anlamı olarak RAM Random Access Memory yani Rastgele Erişilebilir Bellek cümlesinin kısaltılması ile oluşmuş bir tanımdır.

PROGRAMLAMAYA GİRİŞ DERS NOTLARI

Şekil. 64 Kelimelik Yığıtın Blok Şeması

İşletim Sistemi. BTEP205 - İşletim Sistemleri

1. Hafıza Depolama Araçları. 2. Hafıza Çeşitleri. 3. Hafıza Ölçümü. 4. Bilgisayar Performansı

Ders hakkında" İletişim" Bu derste" Bellek" 12/3/12. BBM 231 Zamanuyumlu dizisel devreler (synchronous sequential logic)"

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-11 Karakter Diziler. Yrd. Doç. Dr. Ümit ATİLA

Dr. Feza BUZLUCA İstanbul Teknik Üniversitesi Bilgisayar Mühendisliği Bölümü

GİRİŞ/ÇIKIŞ VE TANIMLAMA DEYİMLERİ

Matematikte Sonsuz. Mahmut Kuzucuoğlu. Orta Doğu Teknik Üniversitesi Matematik Bölümü İlkyar-2017

William Stallings Computer Organization and Architecture 9 th Edition

OTOMATİK KONTROL SİSTEMLERİ BLOK DİYAGRAM İNDİRGEME KURALLARI

VERİ YAPILARI DERS NOTLARI BÖLÜM 1 GİRİŞ. Yard. Doç. Dr. Deniz KILINÇ

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

BMB204. Veri Yapıları Ders 12. Dizgi Eşleme (String Matching) Algoritmaları İleri Veri Yapıları

Semantik (Semantics): ifadelerin, deyimlerin, ve program birimlerinin anlamı Sentaks ve semantik bir dilin tanımı sağlar

DONANIM KURULUMU. Öğr. Gör. Murat YAZICI. 1. Hafta.

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 10. LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ

Yrd. Doç. Dr. Caner ÖZCAN

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

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

Algoritma ve Programlama I

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

YZM ALGORİTMA ANALİZİ VE TASARIM DERS#1: ALGORİTMA KAVRAMI

VERİ YAPILARI. GRAPH LAR Düzce Üniversitesi Teknoloji Fakültesi ÖĞR.GÖR.GÜNAY TEMÜR 1

Bilgisayar Mühendisliğine Giriş

Metin KAPIDERE İnci Dürdane KURT

Günümüz bilgi toplumunda bilgisayar, her alanda kendine yer edinmiş ve insana, bir çok işlemde yardımcı olarak büyük kolaylık sağlamaktadır.

Bilgisayarların Çeşitleri:

OTOMATİK KONTROL SİSTEMLERİ TEMEL KAVRAMLAR VE TANIMLAR

BİLGİSAYARIN DONANIM BİRİMLERİ VE GÖREVLERİ

How to ASP Language. Elbistan Meslek Yüksek Okulu Güz Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU. Hafta V

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

İleri Yöneylem Araştırması Uygulamaları Tam Sayılı Programlama

OTOMATİK KONTROL SİSTEMLERİ TEMEL KAVRAMLAR VE TANIMLAR

Ders İçerik Bilgisi. Karmaşık Sistemlerin Tek Bir Transfer Fonksiyonuna İndirgenmesi

İşletim Sistemlerine Giriş

Internet Programming I. Hafta III. Elbistan Meslek Yüksek Okulu Güz Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU

Bilişim Teknolojileri

FRAKTAL VE FRAKTAL GEOMETRİ KAVRAMI

Algoritma Hazırlama. Programlama. nereden başlamalı? ALGORİTMA VE PROGRAMLAMA Öğr.Gör.Günay TEMUR

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

How to ASP Language. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU. 29 Eki. 1 Kas. 2013

BİÇİMSEL DİLLER VE OTOMATLAR

Transkript:

FORMEL DİLLER VE SOYUT MAKİNALAR Hafta 2

OTOMATA TEORİSİ Otomata teorisi (özdevinim kuramı ya da otomat teorisi), teorik bilgisayar biliminde soyut makineleri (ya da daha uygun bir deyimle soyut 'matematiksel' makineleri veya sistemleri) ve bu makineleri kullanarak hesaplama problemlerinin çözülebilmesini araştıran daldır. Bu soyut makinelere otomata denir. Otomata kelimesinin kökeni Yunanca αὐτόματα kelimesi olup "kendi kendine hareket eden" demektir. Otomatalar hesaplama teorisi, derleyici tasarımı ve çözümlemede (parsing) önemli bir rol oynamaktadır.

OTOMATA TEORİSİ Temelleri 20. yy da matematikçilerin insanın belirli özelliklerini taklit edebilen, özellikle de hesaplamaları daha güvenilir ve hızlı biçimde yapabilen, hem kuramsal hem de uygulamaya dökülmüş makineleri geliştirmeye başlaması ile atılmıştır. «Otomata» kelimesi «otomasyon» kelimesiyle yakın anlamda olup, belirli süreçlerin gerçekleştirimini sağlayan otomatikleştirilmiş işlemler bütününü ifade eder. Otomata Kuramı ise, «otomata» olarak adlandırılan basit makineler üzerinden gerçekleştirilen hesaplama işlemlerinin mantığıyla ilgilenir. Otomatalar sayesinde bilgisayar bilimciler makinelerin fonksiyonları nasıl hesaplayabildiği ve problemleri nasıl çözebildiğini anlama imkanı bulur. Daha da önemlisi, bir fonksiyonun hesaplanabilir (computable) olarak tanımlanması veya bir sorunun karar verilebilir (decidable) olup olmadığının anlaşılması bu teori ile mümkün olur.

Karmaşıklık CHOMSKY HİYERARŞİSİ 0 1 2 3 Özyinelemeli - Sayılabilir Diller : Turing Makinesi (Recursively Enumerable Languages : Turing Machine) Bağlama - Duyarlı Diller : Doğrusal Sınırlandırılmış otomatalar (Context Sensitive Languages : Linear Bounded Automata) Bağlam - Bağımsız Diller : Bas Bırak otomataları (Context Free Languages : Push Down Automata) Düzenli Diller : Sonlu - Durum otomataları (Regular Language : Finite State Automata) *(Dil : otomata)

HESAPLAMA CPU HAFIZA

HESAPLAMA GEÇİCİ BELLEK INPUT BELLEK CPU OUTPUT BELLEK PROGRAM BELLEK

OTOMATA GEÇİCİ BELLEK otomata CPU INPUT BELLEK OUTPUT BELLEK PROGRAM BELLEK

OTOMATA ÇEŞİTLERİ Otomatalar geçici bellek kullanım şekillerine göre sınıflandırılmıştır. 1. Sonlu otomata (Finite Automata): Bellek kullanmazlar. 2. Bas-Bırak otomata (Push-Down Automata): Yığıt (Stack) tipi bellek kullanır. 3. Turing Makineleri (Turing Machines): Rastgele Erişim Bellek (Random Access Memory) kullanır.

SONLU OTOMATA Bellek kullanmadığı için hesaplama gücü düşüktür. GEÇİCİ BELLEK INPUT BELLEK SONLU otomata OUTPUT BELLEK

BAS-BIRAK OTOMATA Hesaplama gücü orta düzeydedir. Programlama dili derleyicileri bu tip otomataya örnek verilebilir. YIĞIT Push, Pop INPUT BELLEK BAS-BIRAK otomata OUTPUT BELLEK

TURING MAKİNESİ Hesaplama gücü en yüksek otomatadır. RASTGELE ERİŞİMLİ BELLEK (Random Access Memory - RAM) INPUT BELLEK TURING MAKİNESİ OUTPUT BELLEK

OTOMATLARIN GÜÇLERİ Sonlu Otomata Bas-Bırak Otomata Turing Makinesi Az güç Yüksek güç Basit problemler Daha karmaşık 12 problemler

SONLU DURUM OTOMATLARI (FINITE STATE AUTOMATA) Turnike örneği: Sonlu durum otomatlarının basit bir örneği turnikelerdir.

SONLU DURUM OTOMATLARI (FINITE STATE AUTOMATA) Turnike Şimdiki Durum Girdi Sonraki Durum Çıktı Kapalı Kart bas Açık Açık konuma geç (kol itildiğinde geçilebilir durumdadır) Kolu it Kapalı Aynı durumda kal Kart bas Açık Aynı durumda kal Açık Kolu it Kapalı Kapalı konuma geç (turnikeden geçildikten sonra kol kilitli duruma geçer)

SONLU DURUM OTOMATLARI ÇALIŞMA MANTIĞI Bir sonlu durum otomatı makine şerit modeli ile ifade edilebilmektedir. Bir sonlu durum otomatı; girdi şeridi olarak da bilinen sonlu bir bellek, okuyucu başlık, sonlu sayıda ve boş olmayan durumlar, bir giriş alfabesi, durumlar arası geçişleri betimleyen bir geçiş fonksiyonu, bir başlangıç durumu ile sonlu sayıda durma durumundan oluşan soyut bir hesaplama aygıtıdır.

SONLU DURUM OTOMATLARI ÇALIŞMA MANTIĞI Girdi şeridi hücrelere bölünmüştür ve her bir hücre giriş alfabesine ait bir sembol barındırır. Okuyucu başlık, bir adımda şeritten tek bir sembolü okur. Geçiş fonksiyonu üzerinden bir sonraki durum belirlenir. Okuyucu başlık ya soldan sağa ya da sağdan sola okuma yapabilir. Okuyucu başlık şerit üzerinde yazma işlemi yapamaz ve geriye doğru gidemez. Bu nedenle bir sonlu durum otomatı o anda okumakta olduğu sembolden önceki sembolleri hatırlayamaz. Bu durum, sonlu durum otomatlarının en önemli kısıtıdır.

Bir otomat, (Q,, δ, q 0, F) şeklinde bir beşli olarak tanımlanır ve bu tanıma göre; Q sonlu sayıda elemana sahip bir durumlar kümesi, sonlu sayıda elemana sahip semboller kümesi (ya da alfabe), δ geçiş fonksiyonu, q 0 herhangi bir girdinin işlenmeye başlanacağı başlangıç durumu (q 0 Q). F, Q içindeki son durum(lar) kümesi (F Q). SONLU DURUM OTOMATLARI BİÇİMSEL TANIM

SONLU DURUM OTOMATI TÜRLERİ Sonlu Durum Otomatları Çıktı Üretmeyenler Çıktı Üretenler Deterministik Deterministik Olmayan Moore Makinesi Mealy Makinesi

DETERMİNİSTİK SONLU DURUM OTOMATI Deterministik sonlu durum otomatlarında (DFA) her bir giriş sembolü karşılığında içinde bulunulacak (yani geçilecek) durum belirlidir. Bir deterministik sonlu durum otomatı, (Q,, δ, q 0, F) şeklinde bir beşli olarak tanımlanır ve bu tanıma göre; Q sonlu sayıda elemana sahip bir durumlar kümesi, sonlu sayıda elemana sahip semboller kümesi (ya da alfabe), δ geçiş fonksiyonu (δ: Q Q), q 0 herhangi bir girdinin işlenmeye başlanacağı başlangıç durumu (q 0 Q). F, Q içindeki son durum(lar) kümesi (F Q).

DETERMİNİSTİK SONLU DURUM OTOMATI Şeritte bir giriş katarı vardır DFA çalışmaya başlangıç durumu ile başlar. Okuyucu kafa en sol hücrededir. DFA katarın tamamını okuyana kadar bir döngüye girer. Her adımda, DFA, geçiş fonksiyonuna göre okunan simgeye göre yeni bir duruma geçer. (Durum-s, simge) -> sonraki durum s o anki durum -okuyucu kafanın okuduğu simge Bütün katar okunduğunda eğer bir son durumda kalınmışsa katar kabul edilir.

DETERMİNİSTİK SONLU DURUM OTOMATI Giriş katarı okunduktan sonra, Eğer DFA son durumda ise, giriş katarı kabul edilir. Eğer DFA bir son durumda değilse, giriş katarı reddedilir. DFA nın dili: DFA tarafından kabul edilen bütün katarların kümesidir.

DETERMİNİSTİK SONLU DURUM OTOMATI Finite Control Read only Head

DETERMİNİSTİK SONLU DURUM OTOMATI Deterministik bir sonlu durum otomatı durum diyagramı adı verilen bir çizge ile ifade edilir. Bu çizgede: Düğümler durumları, Alfabeden bir sembolle etiketlenmiş olan kenarlar geçişleri, Kendisine gelen boş bir kenarla işaretli olan düğüm başlangıç durumunu, İç içe iki çember şeklinde işaretli olan düğüm ise son durumu ifade eder.

DETERMİNİSTİK SONLU DURUM OTOMATI ÖRNEK Q = {a, b, c}, = {0, 1}, q 0 ={a}, F={c}, ve örnek Geçiş fonksiyonu olan δ yandaki gibidir. Şimdiki Durum 0 girdisi için sonraki durum a a b b c a c b c 1 girdisi için sonraki durum

DETERMİNİSTİK SONLU DURUM OTOMATI ÖRNEK Yalnızca 3 ün katı olan ikili tabandaki sayıları kabul eden sonlu durum otomatı

DETERMİNİSTİK SONLU DURUM OTOMATI ÖRNEK İçerisinde çift sayıda b bulunduran tüm katarların kümesi.

? DETERMİNİSTİK SONLU DURUM OTOMATI ÖRNEK

DETERMİNİSTİK OLMAYAN SONLU DURUM OTOMATI Deterministik olmayan sonlu durum otomatlarında belirli bir giriş sembolü makinedeki herhangi bir durum kombinasyonuna geçişi sağlayabilir. Yani, makinenin belirli bir durumda belirli bir sembolle hangi duruma geçiş yapabileceği tam olarak bilinemez. Bir deterministik olmayan sonlu durum otomatı, (Q,, δ, q 0, F) şeklinde bir beşli olarak tanımlanır ve bu tanıma göre; Q sonlu sayıda elemana sahip bir durumlar kümesi, sonlu sayıda elemana sahip semboller kümesi (ya da alfabe), δ geçiş fonksiyonu (δ: Q { ε} 2 Q ), q 0 herhangi bir girdinin işlenmeye başlanacağı başlangıç durumu (q 0 Q), F, Q içindeki son durum(lar) kümesi (F Q).

DETERMİNİSTİK OLMAYAN SONLU DURUM OTOMATI ÖRNEK Şimdiki 0 girdisi için 1 girdisi için Q = {a, b, c} durum sonraki durum sonraki durum = {0, 1} a a, b b q 0 = {a} b c a, c F={c} c b, c c Geçiş fonksiyonu olan δ yandaki gibidir.

DETERMİNİSTİK OLMAYAN SONLU DURUM OTOMATI ÖRNEK İçinde 00 veya 11 barındıran katarlar örnek

DETERMİNİSTİK OLMAYAN SONLU DURUM OTOMATI ÖRNEK Sonu 101 ile biten katarlar örnek

MEALY VE MOORE MAKİNELERİ Sonlu durum otomatları her bir geçişe karşılık gelen çıktılara sahiptirler. Çıktı üreten iki tür sonlu durum makinesi vardır. 1. Mealy Makinesi 2. Moore Makinesi

MEALY MAKİNESİ Bir Mealy Makinesi, çıktısı mevcut girdinin yanı sıra mevcut duruma da bağlı bir sonlu durum otomatıdır. Bir Mealy makinesi (Q,, O, δ, X, q 0 ) şeklinde bir altılı olarak tanımlanır ve bu tanıma göre: Q sonlu sayıda elemana sahip bir durumlar kümesi. sonlu sayıda elemana sahip girdi semboller kümesi (ya da alfabe). O çıktı alfabesi olarak adlandırılan sonlu bir semboller dizisidir. δ girdi geçiş fonksiyonu (δ: Q Q) X çıktı geçiş fonksiyonu (X: Q O) q 0 herhangi bir girdinin işlenmeye başlanacağı başlangıç durumu (q 0 Q).

OUTPUT INPUT MEALY MAKİNESİ STATE X = 0 STATE NAME A/0 X = 1 B/1 X = 0 X = 0 Present State Input X Next State X = 1 X = 1 A (00) 0 C (10) State Output A (00) 0 B (01) 1 C (10) 0 C/0 1 B (01) B (01) 0 B (01) 1 C (10) C (10) 0 B (01) 1 A (00)

MEALY MAKİNESİ ÖRNEK

MOORE MAKİNESİ Bir Moore makinesi, çıktıları yalnızca mevcut duruma bağlı olan bir sonlu durum otomatıdır. A Moore makinesi, (Q,, O, δ, X, q 0 ) şeklinde bir altılı olarak tanımlanır ve bu tanıma göre: Q sonlu sayıda elemana sahip bir durumlar kümesi is a finite set of symbols called the input alphabet. O çıktı alfabesi olarak adlandırılan sonlu bir semboller dizisidir. δ girdi geçiş fonksiyonu (δ: Q Q) X çıktı geçiş fonksiyonu (X: Q O) q 0 herhangi bir girdinin işlenmeye başlanacağı başlangıç durumu (q 0 Q).

MOORE MAKİNESİ INPUT OUTPUT STATE X = 0/0 A X = 0/0 X = 1/1 B Present State Input X Next State Output X = 1/0 X = 0/1 X = 1/0 A (00) 0 C (10) 0 1 B (01) 1 C B (01) 0 B (01) 0 1 C (10) 0 C (01) 0 B (01) 1 1 A (00) 0

MOORE MAKİNESİ ÖRNEK