Pertemuan 1 Pembuktian Formal dan Konsep TBO
Download
Report
Transcript Pertemuan 1 Pembuktian Formal dan Konsep TBO
Pertemuan 1
Konsep dalam Teori Otomata
dan Pembuktian Formal
Teori Bahasa dan Otomata (KOM208)
SKS: 3(3-0)
TIK, Subtopik dan Waktu Penyajian
Tinjauan Instruksional Khusus:
Subtopik:
Mahasiswa mengetahui gambaran umum teori otomata dan akan
dapat menjelaskan metode-metode pembuktian formal.
Pengantar Finite Automata
Representasi struktural
Pembuktian Deduktif
Pembuktian menggunakan teori himpunan, kontrapositif,
kontradiksi dan counterexample.
Pembuktian Induktif
Alfabet, string dan bahasa
Waktu penyajian: 2 x 150 menit
Pendahuluan
Teori otomata adalah studi tentang peralatan atau “mesin”
komputasi abstrak, yang dapat didefinisikan secara matematis.
Tujuan utama adalah mendefinisikan:
apa yang bisa dilakukan oleh komputer dan apa yang tidak
bagaimana komputasi dilakukan
Tipe paling sederhana dari mesin abstrak adalah finite automaton
atau finite state machine.
Prinsip yang mendasari mesin ini adalah sistem pada setiap saat
dalam salah satu dari sejumlah state berhingga dan bergerak
diantara state-state tersebut dalam merespon sinyal input
individual.
Kenapa perlu TBO?
Memberikan fondasi teori komputasi:
Decidability/Computability
Tractability/Complexity
Konsep bahasa secara formal:
Syntax
Grammar
Parsing
Manfaat/Aplikasi
Teknik Parsing/Compiler
Regular expression (regex) e.g.,
Searching/Information retrieval
Pengenalan Bahasa Alami
Simulasi komputasi (dengan automata)
Mathematical Background
Set theory
Relations and functions
Recursive definitions
Strings and languages
Proofs
Sets
Group of objects represented as a unit
May contain any type of object: numbers, symbols,
other sets,…
Set membership:
Non-membership:
Subset:
Proper subset
Empty set:
Infinite set contains infinitely many elements
E.g., set of integers {…-2, -1, 0, 1, 2,…}
Sets
Determine the union (), intersection (),
difference (-), complement, and power set P(X) =
2X of any given sets.
Prove the equality of sets X and Y: show every
element of X is an element of Y and vice versa
(i.e., show that X Y and Y X to show X = Y.)
If X is a set, the notations |X| and card(X) both
refer to the number of elements in X.
Cartesian Product and Relations
Cartesian product builds a set consisting of ordered pairs
of elements from two or more existing sets.
X Y = {[x, y] | x X and y Y}
A binary relation on sets X and Y is a subset of X Y.
An n-ary relation on sets X1, X2, ..., Xn is a subset of
X1 X2 ... Xn
Functions
A function from a set X to a set Y is a mapping of
elements of X to elements of Y such that each
element of X maps to exactly one element of Y.
f:XY
X is the domain of f.
The range of f : X Y is the set {y Y | y = f (x) for
some x X}.
A total function f from X to Y is a binary relation
on
X Y such that
i.
ii.
For each x X there is a y Y such that [x, y] f.
If [x, y] f and [x, z] f, then y = z.
Total Functions
f : X Y is one-to-one if each element of
X maps to a distinct element in the
range.
f : X Y is onto if the range is the entire
set Y.
Finite Automata (FA)
merupakan model yang berguna untuk macam-macam
perangkat keras dan perangkat lunak, diantaranya:
Perangkat lunak untuk merancang dan menguji perilaku rangkaian
digital.
Lexical analyzer dari sebuah kompilator yang membagi teks input ke
dalam unit-unit logik, seperti identifier, keyword dan pungtuasi.
Perangkat lunak untuk men-scan teks berukuran besar, seperti
koleksi web page, untuk menemukan adanya kata, frasa atau pola
yang lain.
Perangkat lunak untuk verifikasi sistem yang memiliki sejumlah
berhingga state yang berbeda, seperti protokol-protokol komunikasi
atau protokol untuk keamanan pertukaran data.
Contoh 1 Model FA Sederhana
Model switch on/off mengingat
apakah switch berada dalam state
“on” atau state “off”.
Push
off
on
Push
• Model memungkinkan user untuk menekan tombol yang
memiliki pengaruh berbeda tergantung pada keadaan
switch:
– Jika switch berada dalam state “off” maka setelah tombol ditekan
state berubah menjadi “on”.
– Jika switch berada dalam state “on” maka setelah tombol ditekan
state berubah menjadi “off”.
Komponen dalam FA
State dinyatakan oleh lingkaran, dalam Contoh 1 state diberi nama
“on” dan “off”.
Arc diantara state diberi label “input “ yang menyatakan pengaruh
eksternal pada sistem.
Dalam Contoh 1 kedua arc diberi label ‘push” yang menyatakan
user menekan tombol tertentu.
Start state atau initial state merupakan state dimana sistem berada
dalam keadaan awal.
Dalam Contoh 1 start state adalah off.
Selanjutnya, start state ditunjukan oleh kata start dan panah
menuju start state tersebut.
Final atau accepting state.
Dalam Contoh 1 state on dinyatakan sebagai final state.
Selanjutnya, final State dinyatakan dalam lingkaran ganda.
Contoh 2 Model FA Sederhana
• FA untuk mengenali kata “then”
• dapat dinyatakan sebagai bagian dari lexical analyzer.
t
t
h
th
e
the
n
then
Input dinyatakan oleh huruf.
Start state merupakan string kosong
Setiap state memiliki transisi pada huruf selanjutnya dari kata then
ke state yang menyatakan prefix selanjutnya yang lebih besar.
State “then” adalah accepting state.
Grammar
Grammar seringkali digunakan dalam perancangan perangkat lunak
yang memproses data dengan struktur rekursif.
Grammar digunakan dalam salah satu komponen kompilator yaitu
parser yang bekerja dengan struktur rekursif dari bahasa
pemograman seperti operasi aritmatika, dan kondisional.
Sebagai contoh aturan gramatikal
EE+E
menyatakan bahwa ekspresi dapat dibentuk dari dua ekspresi yang
dihubungkan dengan tanda +.
Ekspresi regular (1)
Ekspresi regular menyatakan struktur dari data,
khususnya string teks. Contoh:
[A – Z][a – z]*[ ] [A – Z] [A – Z]
menyatakan kata-kata yang diawali huruf kapital yang
diikuti oleh spasi dan 2 huruf kapital.
Ekspresi tersebut mengenali/menerima kata-kata,
diantaranya Ithaca NY, It NY, I NY
Ekspresi tersebut tidak menerima kata-kata berikut
ITHACA NY, Ithaca, ithaca NY, Ithaca ny, Ithaca23 NY,
Ithaca 1Y, Palo Alto CA
Ekspresi Regular (2)
Perhatikan ekspresi berikut
([A – Z][a – z]*[ ])*[ ] [A – Z] [A – Z]
Ekspresi tersebut menerima kata-kata, diantaranya
Palo Alto CA, Ithaca NY, I Thaca NY, Palo A CA
Ekspresi tersebut tidak menerima kata-kata: Palo Alto,
palo Alto CA, Palo AltoCA
Ekspresi Regular (3)
Dalam kedua ekspresi yang diberikan,
[A – Z] menyatakan range karakter dari huruf kapital “A” ke
“Z”
[ ] menyatakan karakter blank
simbol * menyatakan “sejumlah” ekspresi yang mendahului
Tanda kurung digunakan untuk mengelompokkan komponenkomponen dari ekspresi. Tanda kurung tidak menyatakan
karakter dalam teks.
Pembuktian Deduktif (1)
Pembuktian deduktif terdiri dari serangkaian
pernyataan yang memiliki kebenaran.
Pembuktian tersebut berawal dari pernyataan awal
yang dinamakan hipotesis menuju penyataan
kesimpulan.
Setiap langkah dalam pembuktian merupakan
Prinsip logika yang diterima
Fakta yang diberikan
Pernyataan sebelumnya dalam pembuktian deduktif
Kombinasi dari ketiga bentuk tersebut.
Pembuktian Deduktif (1)
Hipotesa dapat bernilai benar atau salah, khususnya
tergantung pada nilai parameternya.
Biasanya hipotesa terdiri dari beberapa pernyataan
yang independen yang dihubungkan oleh operator
logika AND.
Teorema yang dibuktikan dari hipotesa H untuk
kesimpulan C ditulis dalam pernyataan
IF H THEN C.
Contoh 3: pernyataan berikut dapat dibuktikan benar:
Jika x 4 maka 2x x2
Contoh 4
Buktikan bahwa teorema berikut benar
Jika x adalah penjumlahan dari kuadrat dari empat integer
positif, maka 2x x2
Bukti:
Langkah
Pernyataan
Justifikasi
1
x = a2 + b2 + c2 + d2
Diberikan
2
a 1, b 1, c 1, d 1
Diberikan
3
a2 1, b2 1, c2 1, d2 1
(2) dan sifat aritmatika
4
x4
(1), (3) dan sifat aritmatika
5
2x x2
Pernyataan dalam Contoh 1.3
Pembuktian Deduktif (2)
Dalam pembuktian pada Contoh 3 dan 4, digunakan
aturan logika modus ponens, yaitu jika diketahui H
benar dan diketahui
“IF H benar THEN C benar”
kita simpulkan bahwa C benar.
Bentuk “IF H THEN C” dalam teorema sering kali
dinyatakan dalam bentuk lain seperti
H implies C, H only IF C, C IF H
Notasi lain untuk “IF H THEN C” adalah H C.
Pembuktian Deduktif (3)
Bentuk lain yang sering dijumpai adalah “A IF and only
IF B”. Bentuk lain dari pernyataan ini adalah
“A IFF B”
A ekuivalen dengan B
Bentuk “A IFF B” terdiri dari dua pernyataan IF:
“IF A then B” and “IF B then A”.
Untuk membuktikan pernyataan tersebut benar, kita
harus membuktikan 2 pernyataan berikut:
“IF B then A” dan
“IF A then B”
Daftar Pustaka
John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman.
2001. Introduction to Automata Theory, Languange,
and Computation. Edisi ke-2. Addison-Wesley.