Chomsky Normal Form Örnekleri ile Çözümler
Chomsky normal formu (CNF), bir bağlam serbest dilbilgisinin (CFG) üretici bir biçimidir. CNF’de, her üretim kuralı aşağıdaki iki biçimden birinde olmalıdır:
- A → BC
- A → a
Burada A, B ve C değişkenlerdir ve a bir sonlu semboldür.
CNF, CFG’lerin analizini ve işlenmesini kolaylaştırır. Örneğin, bir CFG’nin CNF’de olup olmadığını belirlemek için polinom zamanlı bir algoritma vardır. Ayrıca, bir CFG’nin CNF’de olması durumunda, bu CFG’nin ürettiği dilin boş olup olmadığını belirlemek için polinom zamanlı bir algoritma vardır.
CNF Örnekleri
Aşağıdaki CFG, CNF’dedir:
S → AB
A → aA | b
B → cB | d
Bu CFG’nin üretim kuralları aşağıdaki gibidir:
- S → AB
- A → aA
- A → b
- B → cB
- B → d
Bu CFG’nin ürettiği dil, {a^n b^n c^n d^n | n ≥ 0} kümesidir.
Aşağıdaki CFG, CNF’de değildir:
S → AB
A → aA | b
B → c | d
Bu CFG’nin üretim kuralları aşağıdaki gibidir:
- S → AB
- A → aA
- A → b
- B → c
- B → d
Bu CFG’nin ürettiği dil, {a^n b^n c^m d^m | n, m ≥ 0} kümesidir.
CNF’ye Dönüştürme
Bir CFG’yi CNF’ye dönüştürmek için aşağıdaki adımlar izlenebilir:
- CFG’deki tüm üretim kurallarını aşağıdaki biçimlere getirin:
- A → BC
- A → a
- CFG’deki tüm değişkenleri yeniden adlandırın, böylece hiçbir değişken aynı ada sahip olmasın.
- CFG’deki tüm üretim kurallarını aşağıdaki biçimlere getirin:
- A → BC
- A → a
- A → B
- CFG’deki tüm üretim kurallarını aşağıdaki biçimlere getirin:
- A → BC
- A → a
- A → B
- A → ε
Burada ε boş dizgedir.