💡

Otomata Teorisi - Flashcard Koleksiyonu

Tüm modüllerdeki önemli kavramları interaktif kartlarla öğrenin

59
Toplam Flashcard
0
İncelenen
0%
İlerleme

📚 Modül 1: Giriş ve Temel Kavramlar

Modül 1 - Temel Kavramlar
Otomata Teorisi Nedir?
Hesaplama modellerini ve bunların güçlerini inceleyen bilgisayar biliminin teorik dalıdır. Makinelerin ve algoritmaların çözebileceği problemleri matematiksel olarak tanımlar.
Modül 1 - Alfabe
Alfabe (Σ) Tanımı
Kelimelerin üretiminde kullanılan birimlerin sonlu kümesidir. Örnek: Σ = {0,1} ikili sistem alfabesi, Σ = {a,b,c} üç harfli alfabe.
Modül 1 - Kelime
Kelime (Word) Nedir?
Alfabeden seçilen sonlu sayıdaki sembolün bir araya gelmesinden oluşur. Örnek: Σ={a,b} için kelimeler: a, b, aa, ab, ba, bb, aaa, vb.
Modül 1 - Boş Kelime
Epsilon (ε) Nedir?
Boş kelimeyi temsil eder. Hiçbir sembol içermeyen kelimedir. Uzunluğu 0'dır: |ε| = 0.
Modül 1 - Dil
Biçimsel Dil Tanımı
Bir alfabe üzerinden üretilmiş kelimelerin kümesidir. Üretim kuralları tanımlanmışsa "biçimsel (formal) dil" denir.
Modül 1 - Otomat Türleri
Sonlu Otomatlar
Sınırlı bellek kapasitesine sahip otomatlar. Düzenli dilleri tanımlar. DFA (Deterministik) ve NFA (Non-deterministik) türleri vardır.
Modül 1 - Otomat Türleri
Pushdown Otomatlar
Yığıt (stack) belleğe sahip otomatlar. Bağlamdan bağımsız (context-free) dilleri tanırlar. Sonlu otomatlardan daha güçlüdür.
Modül 1 - Otomat Türleri
Turing Makineleri
En güçlü otomat modeli. Tüm hesaplanabilir problemleri çözebilir. Sonsuz bant belleğe sahiptir. Recursively enumerable dilleri tanır.
Modül 1 - Uygulama
Derleyici Tasarımı
Otomatlar programlama dillerinin yapılarının tanınmasında kullanılır. Lexical analysis ve parsing işlemlerinde temel rol oynar.
Modül 1 - Uygulama
Veritabanı Arama
Düzenli ifadeler ve otomatlar metin arama, pattern matching ve veri doğrulama işlemlerinde kullanılır.
Modül 1 - Felsefe
Dil ve Anlam
Bilgisayar gerçekten 'anlayabilir' mi? Otomata teorisi dilleri biçimsel olarak ele alır: alfabe, kelime, dil, kabul edici. Makine anlamdan ziyade yapıyı kontrol eder.
Modül 1 - Chomsky Hiyerarşisi
Dil Sınıfları
Type 3: Regular (Sonlu otomatlar), Type 2: Context-Free (Pushdown), Type 1: Context-Sensitive, Type 0: Recursively Enumerable (Turing).

🔄 Modül 2: Düzenli İfadeler

Modül 2 - Temel
Düzenli İfade Nedir?
Dil tanımlayıcı ifadedir. Düzenli ifadelerle tanımlanan diller "düzenli diller (regular languages)" olarak adlandırılır.
Modül 2 - Operatör
Kleene Star (*)
0 veya daha fazla tekrarı ifade eder. Örnek: a* = {ε, a, aa, aaa, aaaa, ...}
Modül 2 - Operatör
Kleene Plus (+)
1 veya daha fazla tekrarı ifade eder. Örnek: a+ = {a, aa, aaa, aaaa, ...}. a+ = aa* ile eşdeğerdir.
Modül 2 - Operatör
Birleşim (|)
İki ifadeden birini seçer. Örnek: (a|b) = {a, b}, (0|1)* = tüm ikili dizgiler
Modül 2 - Operatör
Birleştirme (Concatenation)
İki ifadeyi arka arkaya ekler. Örnek: ab = "a ardından b", (a|b)(0|1) = {a0, a1, b0, b1}
Modül 2 - Özel Semboller
Boş Dil (∅)
Hiçbir kelime içermeyen dil. ∅ ≠ {ε}. Boş dil hiçbir kelime kabul etmez, {ε} sadece boş kelimeyi kabul eder.
Modül 2 - Özellikler
Kapalılık Özellikleri
Düzenli diller birleşim, birleştirme, yıldız, kesişim ve tümleme işlemlerine kapalıdır.
Modül 2 - Örnek
x* İfadesi
Σ = {x} için L = {ε, x, xx, xxx, xxxx, ...}. x sembolünün 0 veya daha fazla tekrarı.
Modül 2 - Örnek
(ab)* İfadesi
Σ = {a,b} için L = {ε, ab, abab, ababab, ...}. ab deseninin 0 veya daha fazla tekrarı.
Modül 2 - Uygulama
Derleyicilerde Kullanım
Token tanıma (lexical analysis) işlemlerinde kullanılır. Anahtar kelimeler, değişkenler, sayılar gibi yapıları tanımlar.
Modül 2 - Uygulama
Metin İşleme
Bul/değiştir, veri doğrulama (e-posta, telefon), form validasyonları gibi alanlarda kullanılır.
Modül 2 - Kural
Düzenli İfade Kuralları
r ve s düzenli ifadeler ise: (r)(s)=rs, (r)|(s)=r+s, (r)* düzenli ifadelerdir. ε ve ∅ temel düzenli ifadelerdir.
Modül 2 - Teori
Pomping Lemma
Bir dilin düzenli olmadığını kanıtlamak için kullanılır. Her düzenli dil için bir pomping uzunluğu p vardır.
Modül 2 - Karar
Üyelik Problemi
Verilen kelimenin düzenli dilde olup olmadığını belirleme. Düzenli diller için karar verilebilir (decidable).
Modül 2 - Denklik
RE ve Otomatlar
Her düzenli ifade bir sonlu otomata dönüştürülebilir. Her sonlu otomat bir düzenli ifadeye dönüştürülebilir. İki gösterim eşdeğerdir.

🤖 Modül 3: Sonlu Otomatlar

Modül 3 - Temel
Sonlu Otomat Nedir?
Durumları içeren küme ve dışsal girdilere göre durumlar arası geçişlerden oluşur.
Modül 3 - DFA
DFA Özelliği
Deterministik Finite Automata. Her durum için her girdi için tam olarak bir geçiş vardır.
Modül 3 - NFA
NFA Özelliği
Non-Deterministik. Bir durumdan aynı girdi için birden fazla geçiş veya ε-geçişleri olabilir.
Modül 3 - Biçimsel Tanım
DFA'nın 5 Bileşeni
M = (Q, Σ, δ, s, F): Q=durumlar, Σ=alfabe, δ=geçiş fonksiyonu, s=başlangıç, F=kabul durumları
Modül 3 - Gösterim
Geçiş Diyagramı
Durumlar yuvarlak, başlangıç okla, kabul durumları çift çember, geçişler etiketli oklarla gösterilir.
Modül 3 - Gösterim
Geçiş Tablosu
Satırlar durumlar, sütunlar girdi sembolleri, hücreler hedef durumları gösterir.
Modül 3 - Teori
NFA'dan DFA'ya
Subset construction algoritması ile her NFA'nın eşdeğer DFA'sı vardır (üssel durum artışı ile).
Modül 3 - Chomsky
Type 3 Diller
Regular Languages - Sonlu otomatlar tarafından tanınan diller.
Modül 3 - Chomsky
Type 2 Diller
Context-Free Languages - Pushdown otomatlar tarafından tanınan diller.
Modül 3 - Chomsky
Type 0 Diller
Recursively Enumerable - Turing makineleri tarafından tanınan diller.
Modül 3 - Tasarım
Otomat Tasarımı
1. Dili tanımla 2. Alfabeyi belirle 3. Durumları tanımla 4. Geçişleri çiz 5. Başlangıç seç 6. Kabul durumlarını belirle
Modül 3 - Uygulama
Kullanım Alanları
Derleyici lexical analysis, metin işleme, ağ güvenliği, biyoinformatik, doğal dil işleme.
Modül 3 - Özellikler
Regular Diller Kapalı mı?
Evet, birleşim, birleştirme, yıldız, kesişim ve tümleme altında kapalıdır.
Modül 3 - Karar
Üyelik Problemi
Karar verilebilir. Verilen kelimenin dilde olup olmadığı DFA simülasyonu ile belirlenebilir.
Modül 3 - Minimizasyon
State Minimization
Eşdeğer durumları birleştirerek otomat optimize edilir. Daha hızlı çalışma, az bellek, kolay anlama.
Modül 3 - Örnek
Basit DFA
M = (Q={q₀,q₁,q₂}, Σ={a,b}, δ, s=q₀, F={q₂}) - a ile başlayan dizgileri kabul eder.

🎯 Modül 4: Pratik Örnekler

Modül 4 - Örnek 1
3'e Bölünebilirlik
3 durum (mod 3): q₀ (kalan 0), q₁ (kalan 1), q₂ (kalan 2). Başlangıç ve kabul: q₀.
Modül 4 - Örnek 2
Aynı Sembol Başlangıç/Bitiş
5 durum: başlangıç, 0-başladı-bitti, 1-başladı-bitti, 0-başladı 1-bitti, 1-başladı 0-bitti.
Modül 4 - Örnek 3
n+m=3 Koşulu
L = {aaa, aab, abb, bbb}. Toplam 3 sembol, önce a'lar sonra b'ler.
Modül 4 - Örnek 4
Ardışık Sembol Yok
00 ve 11 içermez. 4 durum: başlangıç, son 0, son 1, red. Geçerli: ε, 0, 1, 01, 10, 010, 101.
Modül 4 - Örnek 5
En Çok İki 'a'
4 durum: 0a (kabul), 1a (kabul), 2a (kabul), 3+a (red). 'b' durumu değiştirmez.
Modül 4 - Örnek 6
aⁿbᵐ, n,m ≥ 1
En az bir a, ardından en az bir b. b'den sonra a yok. Geçerli: ab, aab, abb, aaabbb.
Modül 4 - Uygulama
E-posta Validasyonu
@ tam olarak bir kez, . işareti @'den sonra en az bir kez. Format: kullanici@domain.com
Modül 4 - Uygulama
Lexical Analysis
Token tanıma: anahtar kelimeler, değişkenler, sayılar, operatörler, string literaller.
Modül 4 - Uygulama
TCP Protokolü
CLOSED → SYN_SENT → ESTABLISHED → FIN_WAIT → CLOSED. Girdi: SYN, ACK, FIN paketleri.
Modül 4 - Uygulama
DNA Analizi
Alfabe: {A,C,G,T}. Start: ATG. Stop: TAA, TAG, TGA. Gen bölgelerini tanımlar.
Modül 4 - Tasarım
Tasarım Adımları
1. Dili netleştir 2. Örnekler oluştur 3. Durumları tanımla 4. Geçişleri çiz 5. Test et 6. Optimize et
Modül 4 - Hatalar
Sık Yapılan Hatalar
Eksik geçişler, başlangıç belirtmemek, kabul durumları yanlış, red durumundan çıkış, boş kelime unutma.
Modül 4 - Optimizasyon
State Minimization
Gereksiz durumları birleştir. Daha hızlı çalışma, az bellek, kolay anlama.
Modül 4 - Test
110₂ (6₁₀) Test
6 mod 3 = 0. q₀ →1→ q₁ →1→ q₀ →0→ q₀ (kabul). 3'e bölünür!
Modül 4 - Pratik
Red Durumu
Artık kabul durumuna ulaşılamayacak geçersiz dizgiler için. Tüm girdi kendine döner.
Modül 4 - Karşılaştırma
Tablo vs Diyagram
Tablo: Sistematik, hesaplamaya uygun. Diyagram: Görsel, anlaması kolay, ilişkiler net.