Tez Danışmanı : Prof. Dr. Ahmet DERVİŞOĞLU

Benzer belgeler
BÖLÜM III: Şebeke Modelleri. Şebeke Kavramları. Şebeke Kavramları. Şebeke Kavramları. Yönlü Şebeke (Directed Network) Dal / ok

Lojik Fonksiyonların Yalınlaştırılması (İndirgenmesi) F(A, B, C)= Σm(1,3,5,6,7) : 1. kanonik açılım = A'B'C + A'BC + AB'C + ABC' + ABC A B C F F= AB+C

Lojik Fonksiyonların Yalınlaştırılması (İndirgenmesi)

Ders Notlarının Creative Commons lisansı Feza BUZLUCA ya aittir. Lisans:

Kısmen belirli ardışıl makinelerde durum indirgeme için yöntem geliştirme

Genel Graf Üzerinde Mutlak 1-merkez

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

YZM ALGORİTMA ANALİZİ VE TASARIM DERS#9: AÇGÖZLÜ ALGORİTMALAR

YZM YAPAY ZEKA DERS#4: BİLGİSİZ ARAMA YÖNTEMLERİ

VERİ MADENCİLİĞİ (Karar Ağaçları ile Sınıflandırma) Yrd.Doç.Dr. Kadriye ERGÜN

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

127 - Twoing Algoritması ile Sınıflandırma Kalp Hastalığı Uygulaması MEHMET AKİF ERSOY ÜNİVERSİTESİ İLHAN UYSAL MEHMET BİLEN SAMİ ULUKUŞ

VERİ YAPILARI VE PROGRAMLAMA

BMB204. Veri Yapıları Ders 9. B+ Ağacı, Hash, Heap. Erdinç Uzun NKÜ Çorlu Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü

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

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

Algoritma Geliştirme ve Veri Yapıları 10 Graf Veri Modeli. Mustafa Kemal Üniversitesi

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

Ağaç (Tree) Veri Modeli

Algoritma Geliştirme ve Veri Yapıları 3 Veri Yapıları. Mustafa Kemal Üniversitesi

10.Hafta Minimum kapsayan ağaçlar Minimum spanning trees (MST)

KONU 4: DOĞRUSAL PROGRAMLAMA MODELİ İÇİN ÇÖZÜM YÖNTEMLERİ I

köşe (vertex) kenar (edg d e)

Lineer Cebir. Doç. Dr. Niyazi ŞAHİN TOBB. İçerik: 1.1. Lineer Denklemlerin Tanımı 1.2. Lineer Denklem Sistemleri 1.3. Matrisler

Fonksiyon Optimizasyonunda Genetik Algoritmalar

Algoritmalar. Heap Sort. Bahar 2017 Doç. Dr. Suat Özdemir 1

ALGORİTMA ANALİZİ. Cumhuriyet Üniversitesi Bilgisayar Mühendisliği Bölümü

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#8

VERİ MADENCİLİĞİ (Kümeleme) Yrd.Doç.Dr. Kadriye ERGÜN

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

BLG311 Biçimsel Diller ve Otomatlar

Ayrık Fourier Dönüşümü

Excel de Pivot Tablolar Tasarım ve Kullanımı

Algoritma Geliştirme ve Veri Yapıları 2 Veri Modelleri. Mustafa Kemal Üniversitesi

BİLGİSAYAR PROGRAMLAMA. Algoritma ve Akış Şemaları

TAMSAYILAR. 9www.unkapani.com.tr. Z = {.., -3, -2, -1, 0, 1, 2, 3, } kümesinin her bir elemanına. a, b, c birer tamsayı olmak üzere, Burada,

ALGORİTMA VE PROGRAMLAMA I

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

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

Graflar bilgi parçaları arasındaki ilişkileri gösterirler.

İÜ AÇIK VE UZAKTAN EĞİTİM FAKÜLTESİ. Süreç İyileştirme Standardı

Max - Min Heap Tree (Max ve Min Yığıt Ağaçları) Veri Yapıları ve Algoritmalar 2 - Mustafa EGE Ders Notları

KABA KÜME TEORİSİ (Rough Set Theory) Dr. Sedat TELÇEKEN

Yrd. Doç. Dr. Caner ÖZCAN

1. GİRİŞ Kılavuzun amacı. Bu bölümde;

Zeki Optimizasyon Teknikleri

İkinci dersin notlarında yer alan Gepetto Marangozhanesi örneğini hatırlayınız.

ÖNSÖZ ŞEKİL LİSTESİ TABLO LİSTESİ

Yrd. Doç. Dr. A. Burak İNNER Bilgisayar Mühendisliği

MONTAJ ÇİZİMİN ÖZELLİKLERİ VE GEREKLİ BİLGİLER.

YZM YAPAY ZEKA DERS#6: REKABET ORTAMINDA ARAMA

GELİŞMİŞ ŞİFRELEME STANDARDI - AES

ÜNİT E ÜNİTE GİRİŞ. Algoritma Mantığı. Algoritma Özellikleri PROGRAMLAMA TEMELLERİ ÜNİTE 3 ALGORİTMA

Temel Bilgisayar Programlama Final Sınavı Çalışma Notları

Web Madenciliği (Web Mining)

VERİ YAPILARI LİSTELER. Yrd. Doç. Dr. Murat GÖK Bilgisayar Mühendisliği Bölümü YALOVA ÜNİVERSİTESİ

SEVİYE MODLU ARDIŞIL DEVRELER 1- GENEL TANITIM. KTÜ Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü Sayısal Tasarım Laboratuarı

BLM-431 YAPAY ZEKA. Ders-3 Durum Uzayında Arama. Yrd. Doç. Dr. Ümit ATİLA

23. Sistem denge denklemlerinin direkt kurulması

8.Konu Vektör uzayları, Alt Uzaylar

YZM 5257 YAPAY ZEKA VE UZMAN SİSTEMLER DERS#6: GENETİK ALGORİTMALAR

Dosya Sıkıştırma (File Compression) Kütük Organizasyonu 1

Bitirme Ödevi Sunumu PLATFORM BAĞIMSIZ BENZETİM PROGRAMI. Danışman : Yrd.Doç.Dr. D Feza BUZLUCA Gökhan Akın ŞEKER

VEKTÖR UZAYLARI 1.GİRİŞ

BLM-431 YAPAY ZEKA. Ders-5 Bilgili Arama Yöntemleri. Yrd. Doç. Dr. Ümit ATİLA

BULANIK MANTIK VE SİSTEMLERİ BAHAR DÖNEMİ ÖDEV 1. Müslüm ÖZTÜRK Bilişim Teknolojileri Mühendisliği ABD Doktora Programı

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

6.Hafta Kıyım Fonksiyonu (Hashing), BST. Doğrudan erişim tabloları Çarpışmaları ilmekleme ile çözmek Kıyım fonksiyonu seçimi Açık adresleme

Büyük Veri Analitiği (Big Data Analytics)

Çanakkale Onsekiz Mart Üniversitesi. Bilgisayar Mühendisliği Bölümü

VERİ TABANI YÖNETİM SİSTEMLERİ Melih BÖLÜKBAŞI

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

KISITLI OPTİMİZASYON

Olasılık, bir deneme sonrasında ilgilenilen olayın tüm olaylar içinde ortaya çıkma ya da gözlenme oranı olarak tanımlanabilir.

Sözlük Kullanarak Türkçe için Kavram Madenciliği Metotları Geliştirme

ALGORİTMA VE PROGRAMLAMA I

Veritabanı Tasarımı ve Yönetimi. Uzm. Murat YAZICI

DENEY 3: DTMF İŞARETLERİN ÜRETİLMESİ VE ALGILANMASI

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.

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.

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

ICATT ÇEVİRİ UYGULAMASI SİSTEM MİMARİSİ VE VERİTABANI TASARIMI

Proje/Sipariş/İş Emri (PSI) Bazında Maliyet Analizi

İKİ BOYUTLU ÇUBUK SİSTEMLER İÇİN YAPI ANALİZ PROGRAM YAZMA SİSTEMATİĞİ

YAPILAR BİRLİKLER SAYMA SABİTLERİ/KÜMELERİ. 3. Hafta

Bit, Byte ve Integer. BIL-304: Bilgisayar Mimarisi. Dersi veren öğretim üyesi: Yrd. Doç. Dr. Fatih Gökçe

Algoritmalar ve Karmaşıklık

BİÇİMSEL DİLLER VE OTOMATLAR

ISK116 - Bölüm 1. Grup Teknolojisi

3.2. DP Modellerinin Simpleks Yöntem ile Çözümü Primal Simpleks Yöntem

Algoritma Geliştirme ve Veri Yapıları 7 Liste ve Bağlantılı Liste. Mustafa Kemal Üniversitesi

Tanım 2.1. X boş olmayan bir küme olmak üzere X den X üzerine bire-bir fonksiyona permütasyon denir.

A { x 3 x 9, x } kümesinin eleman sayısı A { x : x 1 3,x } kümesinin eleman sayısı KÜMELER

ÜNİTE 1: TEMEL KAVRAMLAR

Yrd. Doç. Dr. Caner ÖZCAN

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

ELEKTRONİK ÇİZELGE. Hücreleri Biçimlendirme. Formülleri Kullanma. Verileri Sıralama. Grafik Oluşturma 1) HÜCRELERİ BİÇİMLENDİRME

İşletim Sistemlerine Giriş

Ekle sekmesindeki Tablolar grubundaki Tablo seçeneği ile tablo oluşturulur.

Sunum ve Sistematik 1. BÖLÜM: ÖNERMELER

Transkript:

İSTANBUL TEKNİK ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ KISMEN BELİRLİ ARDIŞIL MAKİNELERDE DURUM İNDİRGEME YÖNTEMLERİNİN KARŞILAŞTIRILMASI VE BİLGİSAYAR PROGRAMI GELİŞTİRİLMESİ YÜKSEK LİSANS TEZİ Müh. Murat ŞİMŞEK (504981074) Tezin Enstitüye Verildiği Tarih : 24 Aralık 2002 Tezin Savunulduğu Tarih : 21 Ocak 2003 Tez Danışmanı : Prof. Dr. Ahmet DERVİŞOĞLU Diğer Jüri Üyeleri : Prof.Dr. Ertuğrul Eriş (Y.T.Ü) Doç.Dr. Ece Olcay Güneş OCAK 2003

ÖNSÖZ Yüksek lisans öğrenimim süresince ilgi ve yardımlarını gördüğüm, bilimsel çalışmanın önemini aşılayıp beni bu konuda çalışmaya yönlendiren değerli hocam Prof. Dr. Ahmet DERVİŞOĞLU na, desteklerini hep hissettiren aileme ve bana yardımlarını esirgememiş olan Müh. İ. Fatih GÜDÜK, Müh. Mustafa KÖSEM, Müh. Levent AKSOY ve Müh. Seden BEYHAN a teşekkürlerimi sunarım. Ocak 2003 Murat ŞİMŞEK ii

İÇİNDEKİLER KISALTMALAR TABLO LİSTESİ ŞEKİL LİSTESİ SEMBOL LİSTESİ ÖZET SUMMARY Sayfa No v vi vii viii ix x 1. GİRİŞ 1 2. DURUM İNDİRGEME YÖNTEMLERİNDEN BAZILARININ İNCELENMESİ 2.1. Genel Tanımlar 2 2.2. Durum İndirgeme Yöntemleri 4 2.2.1. Asal uyumluların kombinezonlarını kullanarak durum indirgeme yöntemi 4 2.2.2. Uyumlu çiftlerden ve kapalı yollardan yararlanarak durum indirgeme yöntemi 6 2.2.2.1. Aşama-1: Bütün uyumlu çiftlerin C s 'nin ve C s nin elde edilmesi 6 2.2.2.2. Aşama-2: Tüm kapalı yolların uyumlu çiftlerden yararlanılarak bulunması 7 2.2.2.3. Aşama-3: Kapalı kümelerden ve maksimal uyumuzlardan yararlanılarak minimal kapalı örtünün elde edilmesi 7 2.2.3. SRC (State Reduction and Covering) yöntemi 8 3. ASAL UYUMLULARIN KULLANILDIĞI TARAMA AĞACINA DAYALI İNDİRGEME YÖNTEMİ 11 3.1. Yöntemde Kullanılan Tanımlar 11 3.2. Durum İndirgemede İzlenecek Adımlar 13 3.3. İndirgeme Yönteminin Adımları 14 3.3.1. Tarama ağacında kullanılan budama kuralları 15 3.4. İndirgeme Yönteminde Yapılan Değişiklikler 16 4. YÖNTEMİN ÖRNEKLERE UYGULANMASI 17 4.1. Örnek I 17 4.2. Örnek II 24 5. BİLGİSAYAR PROGRAMI GELİŞTİRİLMESİ 29 5.1. SMST Programının Özellikleri ve Kullanılan Teknikler 29 2 iii

5.1.1.Geliştirilen programda kullanılan matrisler ve özellikleri 31 5.2. Programda Kullanılan Veri Giriş Yapıları 35 5.2.1. Durum geçiş tablosuna dayalı veri giriş yapısı 35 5.2.2. Asal uyumlu bloklara dayalı veri Giriş Yapısı 37 5.3. SMST Programının Dayandığı Algoritmanın Yapısı 39 5.3.1. Asal uyumlular sınıfını bulan algoritmanın yapısı 39 5.3.2. Asal uyumlular sınıfını kullanarak durum indirgemesi yapan algoritmanın yapısı 42 5.4. Programın Performansını Test Eden Örnek Makine Geliştirilmesi 44 5.5. Programın Kullanımı 45 5.6. SMST Programının Örneklere Uygulanması 46 5.6.1. Örnek I : Bençmark ex3 46 5.6.2. Örnek II 47 5.6.3. Örnek III 48 6. SONUÇLAR VE ÖNERİLER 54 KAYNAKLAR 57 ÖZGEÇMİŞ 59 iv

KISALTMALAR AS FSM ISSM MCC MI OGS SCC SRC ST ÜS : Alt Sınır : Finite State Machine (Sonlu Durumlu Makine) : İncompetely Specified Sequential Machine (Kısmen Belirli Ardışıl Makine) : Minimal Closed Cover (Minimal Kapalı Örtü) : Maksimal Uyumsuz : Ordered Generating Sequence (Ardışıl Sıralama Üretimi) : Strongly Connected Component (Kuvvetli Bağlı Bileşen) : State Reduction and Covering : Search Tree (Tarama Ağacı) : Üst Sınır v

TABLO LİSTESİ Sayfa No Tablo 4.1 Örnek 4.1 e ilişkin kısmen belirli ardışıl makine... 17 Tablo 4.2 Örnek 4.1 e ilişkin C a sınıfı ve izleyicileri... 18 Tablo 4.3 Örnek 4.1 e ilişkin C a sınıfı ve C a nın kapalılık... 19 Tablo 4.4 Maksimal uyumsuz blokların ve durumlarının ağırlıkları... 19 Tablo 4.5 Tarama Ağacı ndaki adışıl sıralamanın oluşturulması (OGS)... 20 Tablo 4.6 Tarama Ağacı ndaki her bir yola ait örtme ve kapalılık durumu... 22 Tablo 4.7 Örnek 4.2 ye ilişkin kısmen belirli makine... 24 Tablo 4.8 Örnek 4.2 ye ilişkin C a sınıfı ve izleyicileri... 24 Tablo 4.9 Örnek 4.2 ye ilişkin C a sınıfı ve C a nın kapalılık sınıfı... 25 Tablo 4.10 Maksimal uyumsuz blokların ve durumlarının ağırlıkları... 25 Tablo 4.11 Tarama Ağacı ndaki ardışıl sıralamanın oluşturulması (OGS)... 26 Tablo 4.12 Tarama ağacındaki her bir yola ait örtme ve kapalılık durumu 27 Tablo 5.1 Örnek 4.1 in örtme matrisi... 32 Tablo 5.2 Durum tablosu... 36 Tablo 5.3 Asal uyumlu bloklar ve izleyicileri... 38 Tablo 5.4 Geliştirilen örneğe ilişkin durum tablosu... 45 Tablo 5.5 Ex3 için durum tablosu... 46 Tablo 5.6 Örnek 5.6.2 ye ilişkin durum tablosu... 47 Tablo 5.7 Örnek 5.6.3 e ilişkin durum tablosu... 48 vi

ŞEKİL LİSTESİ Sayfa No Şekil 2.1 Kısmen belirli bir ardışıl makine... 3 Şekil 4.1 Örnek 4.1 e ilişkin tarama ağacının ilk üç seviyesi... 20 Şekil 4.2 Örnek 4.1 e ilişkin tarama ağacının ilk dört seviyesi... 21 Şekil 4.3 Tarama Ağacı ndan elde edilen minimal makine... 23 Şekil 4.4 Örnek 4.2 ye ilişkin tarama ağacının ilk iki seviyesi... 26 Şekil 4.5 Örnek 4.2 ye ilişkin tarama ağacının ilk üç seviyesi... 27 Şekil 4.6 Tarama Ağacı ndan elde edilen minimal makine... 28 Şekil 5.1 Tarama Ağacı nın temel yapısı... 33 Şekil 5.2 Budama işlemi... 34 Şekil 5.3 Budama sonrası yeni seviye oluşumu... 35 Şekil 5.4 Programın genel görünümü... 45 vii

SEMBOL LİSTESİ C a : Asal Uyumlular Sınıfı C s : Maksimal Uyumsuzlar Sınıfı C p : Uyumlu Çiftler Kümesi C s : Maksimal Uyumlular Sınıfı C : Maksimal Uyumlular Sınıfı ndan Elde Edilen Minimal Örtü nün Blok sayısı smö C u : Uyumlular Sınıfı C s : C s Sınıfındaki Blok Sayısı C t :Uyumlular Sınıfının Alt Sınıfı d i : i nci Durum D : Durum Kümesi F : Çıkış Fonksiyonu G : Geçiş Fonksiyonu I(B i ) : B i bloğunun İzleyici Sınıfı Φ(C i ) : C i sınıfına ait kapalılık sınıfı Φ(S i ) : S i Asal Uyumlu Kümesinin Genişletilmiş Kapalılık Sınıfı l i : Tarama Ağacındaki i nci Seviye m i : C i Uyumsuzlar Sınıfındaki En Büyük Bloğun İçerdiği Durum Sayısı m ö : Minimal Örtüdeki Blok Sayısı M i : C i Uyumsuzlar Sınıfındaki En Büyük Blok M : Mealy Makinesi n : Değişken Sayısı P i : i nci Kapalı Yol P a : Asal Uyumlulardan Oluşan Kapalı Yollar P p : Uyumlu Çiftlerden Oluşan Kapalı Yollar P s : Maksimal Uyumlulardan Oluşan Kapalı Yollar S : Asal Uyumlular Kümesi S i : Tarama Ağacında örtülen i nci durum X : Giriş Kümesi w() : Ağırlık Z : Çıkış Kümesi viii

KISMEN BELİRLİ ARDIŞIL MAKİNELERDE DURUM İNDİRGEME YÖNTEMLERİNİN KARŞILAŞTIRILMASI VE BİLGİSAYAR PROGRAMI GELİŞTİRİLMESİ ÖZET Sonlu durumlu makinelerde durum indirgemesi problemi ardışıl devrelerin karmaşıklığının azaltılması için önemlidir. Bu tezde, kısmen belirli ardışıl makinelerde durum indirgeme için Puri nin [10] algoritması ile ilgilenilmiştir. Algoritma iyileştirilerek etkili bir bilgisayar programı geliştirilmiştir. Puri nin algoritması, asal uyumluları kullanarak bir tarama ağacı oluşturmaktadır. Tarama ağacı maksimal uyumsuzlara bağlı olarak, elde edilen alt sınıra göre küçük tarama uzayından etkili bir şekilde oluşturulur. Ayrıca yöntemde kullanılan iki budama kriteri ile tarama uzayında daha fazla durumun elenmesi sayesinde sonlu durumlu makineye ait minimal kapalı örtü kolayca bulunabilmektedir. SMST ( State Minimization with Search Tree ) programı asal uyumlulardan veya durum tablosundan minimal makinenin bulunması için geliştirilmiştir. Program iki farklı alt programın birleşiminden meydana gelir. Birinci program, durum tablosundan maksimal uyumlular, maksimal uyumsuzlar ve asal uyumlular sınıfının bulunmasında kullanılır. Asal uyumlular sınıfını kullanan ikinci programla da minimal makine bulunur. SMST, C++ programlama dilinde Borland C++ Builder 4 kullanılarak geliştirilmiş ve 32 bitlik Windows programda derlenmiştir. Program tek çalıştırılabilir (*.exe) dosyadan oluşur ve derleme aşamasında sadece statik bağlayıcılar kullanıldığından herhangi bir DLL dosyaya gerek duyulmamaktadır. ix

COMPARİSON OF STATE REDUCTION METHODS IN INCOMPLETELY SPECIFIED SEQUENTIAL MACHINES AND DEVELOPING A COMPUTER PROGRAM SUMMARY The problem of state reduction in a finite state machine (FSM) is important to reduce the complexity of a sequential circuit. In this thesis Puri s algorithm for state minimization of incompletely specified sequential machines is concerned. The algorithm is improved and an efficient computer program is developed. Puri s algorithm constructs a search tree from prime compatibles. It efficiently builds up a relatively small search space by utilizing a tight lower bound derived from maximal incompatibles. In addition, the two pruning criteria of this method provide further state elimination in the search space so that minimal closed cover of finite state machine can be found easily. A computer program called SMST (State Minimization with Search Tree) has been developed in order to find minimal machine from prime compatible blocks or state table. The program is composed of two different subprograms. The first one is used to find maximal compatibles, maximal incompatibles and prime compatibles class from the state table. The minimal machine is found by the second one by using prime compatibles class. SMST has been developed in C++ by using Borland C++ Builder 4 and has been compiled as a 32 bits MS Windows program. As we have used only static linking during compilation stage, the program consists of a single executable file and it does not require any other DLL (dynamic link library) file. x

GİRİŞ Bu tezde, kısmen belirli bir ardışıl makineye ilişkin minimal eşdeğeri belirleyen Puri yöntemi incelenmiş, sonra da yöntem iyileştirilerek buna dayalı bir bilgisayar programı geliştirilmiştir. Program geliştirilirken etkili programlama teknikleri kullanılmış ve daha hızlı çalışması için yönteme yenilikler eklenmiştir. Minimal makine Ca asal uyumlular sınıfından yararlanılarak belirlenmiştir. Durum indirgemede amaç, verilen kısmen belirli ardışıl makineye eşdeğer olan ve durum sayısı minimum olan bir makine bulmaktır. Bunun için geliştirilen birçok algoritma mevcuttur. Durum indirgeme senkron ve asenkron ardışıl devrelerin tasarlanması ve karmaşıklığının azaltılmasında önemli bir adımdır. Bunun için geliştirilen algoritmalar, lojik sentez, durum kodlaması ve örtme problemlerinde de kullanılabilmektedir. İkinci bölümde, gerekli olan genel tanımlar ile durum indirgemesi ile ilgili bazı yöntemler incelenmiştir. Yöntemler incelenirken avantajlı yönleri ve eksik tarafları incelenmiştir. Üçüncü bölümde, geliştirilen programın temelini oluşturan Puri yönteminin daha iyi anlaşılması için gerekli tanımlar verilmiş ve yöntemin işleyişine değinilmiştir. Dördüncü bölümde, yöntemin anlaşılması ve etkinliğinin gösterilmesi için örnekler üzerinde yöntem daha detaylı şekilde incelenmiştir. Beşinci bölümde, geliştirilen bilgisayar programında kullanılan yenilikler ve kullanılan algoritmanın yapısı verilmiştir. Ayrıca programla ilgili detay bilgilere de bu bölümde değinilmiştir. Son bölümde ise, sonuçlara ve önerilere yer verilmiştir. Yapılan çalışmalardan elde edilen sonuçlara dayanarak ilerde yapılması gerekenlere de bu bölümde yer verilmiştir. 1

2. DURUM İNDİRGEME YÖNTEMLERİNDEN BAZILARININ İNCELENMESİ 2.1 Genel Tanımlar Bilindiği gibi Mealy tipi bir ardışıl makine M = { X, Z, D, F, G } biçiminde tanımlanabilir. Burada, X giriş kümesi, Z çıkış kümesi, D = { d 1, d 2,...d n } durum kümesi, F: X D Z çıkış fonksiyonu, G de G: X D geçiş fonksiyonudur. Bir ardışıl makinede d i durumunun 1- izleyicisi veya belirli bir durum için bir girişe karşılık düşen çıkış tanımlanmamış olabilir. Böyle bir makineye kısmen belirli ardışıl makine (ISSM : Incompletely Specified Sequential Machine) denir. Tanım 1: Makine d i durumunda iken I k = X 1, X 2,...X k giriş dizisi uygulandığında buna karşı düşen g ( I k-1, d i ) durum dizisi tanımlı ise I k, d i nin bir uygulanabilir giriş dizisidir denir; buna göre 1-uzunluklu her giriş dizisi uygulanabilir bir giriş dizisidir. Tanım 2: Kısmen belirli ardışıl makinede d i ve d j durumlarına ilişkin çıkış dizileri, uygulanabilir tüm giriş dizileri için uyumlu ise yani f ( I, d i ) f ( I, d j ) ise d i ve d j durumları uyumludur denir ve d i d j yazılır. d i nin uygulanabilir tüm giriş dizilerinin oluşturduğu küme A i ile gösterilecektir. Şekil2.1 deki makine için g(101,b)=c,a,- olduğuna göre I 3 =101 B nin bir uygulanabilir giriş dizisidir.şekil1.1 den, f(101,b)=0,1,- olduğu görülmektedir. Öte yandan g(10,c) dizisi tanımlı olmadığından I 3 =100 dizisi C nin uygulanabilir bir giriş dizisi değildir. 2

x d 0 1 A B,1 -,- B -,0 C,0 C A,1 B,0 Şekil 2.1 Kısmen belirli bir ardışıl makine Tanım 3: d i ve d j durumlarının uygulanabilir giriş dizilerinin oluşturduğu kümelerin arakesiti A ij olsun. Her I A ij için f(i,d i ) ve f(i,d j ) çıkış dizilerinin tanımlı olan karşılıklı elemanları eşit ise d i ve d j durumları uyumludur denir ve d i d j yazılır; karşılıklı elemanları tanımlı ise eşit olan f(i,d i ) ve f(i,d j ) dizilerine uyumlu dizi çifti denilecek ve f(i,d i ) f(i,d j ) yazılacaktır. f(i 4,d i ) = 1010 f(i 4,d j ) = 10-0 f(i 4,d k ) = 1-10 olsun. Tanım 2 gereğince d i d j ve d j d k olabilir fakat d i / dk dır. Yani, uyumluluk bağıntısı geçişlilik özelliğine sahip değildir. Tanım 4: Her I k A ij için f(i k,d i ) ve f(i k,d j ) çıkış dizileri uyumlu ise d i ve d j k-uyumludur denir ve d k i d j yazılır. Tanım 5: C D olan C kümesindeki tüm durum çiftleri uyumlu ise C ye bir uyumlular sınıfı denir; bu sınıfların oluşturduğu küme C u ile gösterilecektir. Tanım 6: C i bir uyumlular sınıfı ve C i C j olmak üzere C i C j olan bir C j uyumlular sınıfı yoksa C i ye bir maksimal uyumlular sınıfı denir. Maksimal uyumlular sınıflarının oluşturduğu kümeye son sınıf denilecek ve C s ile gösterilecektir. Tanım 7: C u uyumlular sınıfının bazı elemanlarının oluşturduğu C ö ={C 1, C 2,..,C k } kümesi, 3

(i) (ii) C 1 C 2... C k =D koşulunu sağlıyorsa C ö ye D durum kümesinin bir örtüsü denir. D nin, blok sayısı k dan az olan bir uyumlular örtüsü yoksa C ö ye D nin bir minimal örtüsü denir. (iii) C ö nün her bloğunun her 1-izleyicisi C ö nün bir bloğu tarafından içeriliyorsa C ö ye D nin kapalı bir örtüsü denir. Tanım 8:C u nun bir elemanının öz-izleyicileri:c u daki bir C i bloğunun tüm1-izleyici bloklarının oluşturduğu küme göz önüne alınsın. Bu küme içinden durum sayısı 1 olan ve C i tarafından içerilen bloklar çıkarılarak elde edilen kümeye, C i nin özizleyiciler kümesi denir ve I(C i ) ile gösterilir; I(C i ) de C j C k olan bir C j varsa C j de atılır. Tanım 9: Asal uyumlular sınıfı C a : Aşağıdaki biçimde oluşturulan C a kümesine asal uyumlular sınıfı denir. (i) C s nin her elemanı C a nın da elemanıdır. (ii) C s nin bir C i bloğunun bir alt-bloğu C ia olsun. I(C ia ) I(C i ) değilse C ia, C a nın bir elemanıdır. C s nin blokları ve bu blokların alt blokları C u yu oluşturduğuna göre, C a da bulunmayan bir C u bloğu C d, C s nin bir C i bloğunun alt bloğudur; öyle ki I(C d ) I(C i ) dir. 2.2 Durum İndirgeme Yöntemleri Bu kısımda, durum indirgeme yöntemlerinden bazıları incelenerek önemli özellikleri açıklanmıştır. 2.2.1 Asal uyumluların kombinezonlarını kullanarak durum indirgeme yöntemi C s nin bloklarının ve alt bloklarının öz-izleyicilerinden yararlanarak C a asal uyumlular sınıfı elde edilir. Minimal makinedeki durum sayısı m ise, C a sınıfı m bloklu en az bir kapalı örtü içereceğinden C a sınıfının bloklarından elde 4

edilebilen bir kapalı örtü ile minimal makine elde edilebilir. Bu şekilde C a sınıfının bloklarının 1 li, 2 li, 3 lü,...a lı kombinezonlarının (a: C a daki blok sayısı) kapalı örtü oluşturup oluşturmadığına bakılarak minimal makine elde edilebilir. Fakat C smö, C s sınıfındaki bloklardan oluşan minimal bir örtüdeki blok sayısı olmak üzere C a sınıfının 1, 2,... Csmö -1 li kombinezonlarının kapalı bir örtü oluşturup oluşturmadığını denemek gereksizdir. Çünkü bu kombinezonlar ile bir örtü oluşturulamayacağı açıktır. Bu durumda minimal makinedeki durum sayısı için bir alt sınır elde edilir. Bu alt sınır AS ile gösterilirse AS = C smö olur. Aynı şekilde k = min { (C s deki blok sayısı),(durum sayısı) } olmak üzere C a sınıfının k, k+1,..., a-1, a lı kombinezonlarının da kapalı bir örtü oluşturup oluşturmayacağını denemek gereksizdir. Bu durumda ise, minimal makinedeki durum sayısı için bir üst sınır elde edilir. Bu üst sınır ÜS ile gösterilirse ÜS = min { (C s deki blok sayısı),(durum sayısı) } olur. Eğer k C s deki blok sayısına eşit ise minimal makineyi elde etmek için C a bloklarının k lı kombinezonlarını almak gerekmez. Çünkü C s sınıfı kapalı bir örtü oluşturur. Diğer taraftan k durum sayısına eşit ise C a bloklarının k lı kombinezonlarını almak gerekmez; ele alınan makine minimaldir. Bazı makinelerde AS ile ÜS eşit çıkabilir. Böyle bir makine için indirgeme yapılmadan minimal makine elde edilir. Eğer ÜS=( C s deki blok sayısı ) ise C s indirgenmiş makineyi belirler. ÜS = (durum sayısı) indirgenmiş makine bütün durumların ayrı bir blok olarak alınması ile elde edilir. Bunlardan daha iyi bir üst sınır C s den bir minimal kapalı örtü elde edilerek bulunabilir. Böylece üst sınır, elde edilen minimal kapalı örtüdeki blok sayısı olur. Sonuç olarak C a sınıfı bloklarının AS,..., ÜS-1 li kombinezonlarına bakılarak minimal makine elde edilir. C a nın bloklarının bütün kombinezonlarını elde etmek uzun zaman aldığından ve fazla bellek gerektirdiğinden, blokların kombinezonları tek tek elde edilmelidir. Eğer herhangi bir blok kombinezonu için minimal bir kapalı örtü elde edilirse diğer kombinezonların elde edilmesine gerek olmadığından, zamandan ve bellekten kazanç sağlanır. 5

Bu yöntemin dezavantajları : (i) (ii) Alt sınırdan başlayarak üst sınırın bir eksiğine kadar tüm C a bloklarının kombinezonları alınacağı için C a blok sayısındaki artış çözüme ulaşmayı zorlaştırabilir. Üst sınırın veya alt sınırın büyük olması kombinezonların alınmasını zorlaştıracağından minimal makineyi bulmak da güçleşebilir. (iii) C a bloklarının sayısında bir indirgemenin olmaması yöntemin bir başka eksik yönüdür [8]. 2.2.2 Uyumlu çiftlerden ve kapalı yollardan yararlanarak durum indirgeme yöntemi Uyumlu çiftler yönteminde, asal uyumlular sınıfı oluşturulmaz. Uyumlu olan durum çiftleri ve bunlardan oluşan kapalı yollar bulunarak minimal makine elde edilir. Bu yöntemde minimal örtü bulunduğunda genellikle kapalılık koşulu da sağlandığından minimal makinenin bulunması, minimal örtünün bulunmasına indirgenmiş olur. Ayrıca minimal makinedeki durum sayısının alt ve üst sınırları da kullanılarak makine zamanı kısaltılır. Yöntemin aşamaları aşağıda verilmiştir. 1.Aşama-1: Bütün uyumlu çiftlerin, C s ve C s nin elde edilmesi. 2.Aşama-2: Tüm kapalı yolların uyumlu çiftlerden yararlanarak bulunması. 3.Aşama-3: Kapalı kümelerden ve maksimal uyumsuzlardan yararlanılarak minimal kapalı örtünün elde edilmesi. 2.2.2.1 Aşama-1: Bütün uyumlu çiftlerin, C s nin ve C s nin elde edilmesi Bu aşamada bütün uyumlu çiftler belirlenir. Ayrıca C s ve C s nin de belirlenmesi gerekmektedir. C s den C s ve C s den C s elde edilebilir. Fakat bu işlem uzun olduğu için her birinin ayrı ayrı bulunması daha etkili bir sonuç vermektedir [4]. C s nin en büyük bloğundaki durum sayısı minimal makinedeki durum sayısının alt sınırını oluşturur. Bu şekilde elde edilen minimal örtü 6

kapalı ise indirgeme işlemi biter ve minimal makinedeki durumlar bu örtünün blokları olarak alınır. Eğer minimal örtü kapalı değil ise minimal makinedeki durum sayısının üst sınırı belirlenir. Üst sınır durum sayısı ile C s deki blok sayısının minimumuna eşittir. Fakat C s den ağaç yapısı ile minimal kapalı örtü elde edilerek daha iyi bir üst sınır elde edilebilir. Üst sınır elde edildikten sonra alt sınıra bakılır. Eğer alt sınır ile üst sınır birbirine eşit ise indirgeme işlemi biter; minimal makinenin durumları, C s den elde edilen minimal kapalı örtüdeki bloklar olarak alınır. 2.2.2.2 Aşama-2: Tüm kapalı yolların uyumlu çiftlerden yararlanılarak bulunması Her bir uyumlu çift bir düğüm olacak şekilde bir graf çizilerek kuvvetli bağlı bileşenler bulunur ve graf basitleştirilir; bu graf çevre içermez. Bu şekilde graf indirgendikten sonra her bir uyumlu çiftten başlanarak kapalı yollar elde edilir. C u uyumlu kümesinin bir alt kümesi C t olsun, C t nin herhangi bir elemanından başlanarak izleyici bloklar ve onların izleyicileri belirlendiğinde C t nin tüm bloklarına ulaşıyorsa, C t nin blokları kuvvetli bağlıdır denir. C t nin blokları 1,2,3...,k olsun. Ortak elemanı olan 2 kuvvetli bağlı bileşen bulunmuşsa bunların birleşimi de kuvvetli bağlıdır: 1235 ve 4568 kuvvetli bağlı ise 1234568 de kuvvetli bağlıdır. Uyumlu çift yoksa verilen makine minimaldir. 2.2.2.3 Aşama-3: Kapalı kümelerden ve maksimal uyumsuzlardan yararlanarak minimal kapalı örtünün elde edilmesi Bu aşamada, Aşama-2 de elde edilen kapalı kümeler kullanılarak minimal kapalı örtü elde edilir. Bunun için maksimal uyumsuzlardan yararlanılır. En büyük maksimal uyumsuz bloğu seçilir. Eğer böyle birkaç tane blok varsa ağırlığı en küçük olan blok seçilir. Bir bloğun ağırlığı içerdiği durumların kapalı P kümelerinde görünme sayılarının çarpımıdır. Eğer ağırlıkları eşit olan maksimal uyumsuzlar var ise bu bloklardaki en az ağırlıklı durumların göründüğü P kümelerinin maliyetlerinin minimumu en büyük olan seçilir. Maksimal uyumsuz bloğu seçildikten sonra bu bloktaki durumlar ağırlıklarına göre dizilirler. Bu bloğun ilk durumundan başlamak üzere ağacın seviyeleri teker teker oluşturulur. Önce ilk durumu içeren kapalı P kümeleri, ağacın 1. 7

seviyesine yerleştirilir. Herhangi bir seviyeye üst sınıra eşit maliyetli P kümeleri yerleştirilmeden elenir. Her yeni seviye oluşturulduğunda ağaçtaki dalların budanmasına çalışılır [12]. 2.2.3 SRC ( Durum İndirgeme ve Örtme ) yöntemi SRC yöntemi ile C s den bir kapalı örtü bulunarak etkili bir üst sınıra ulaşılmış olur. Alt sınır ise çoğu yöntemde olduğu gibi maksimal uyumsuzlar içinde en fazla durumu içeren bloğun içerdiği durum sayısı ile belirlenmiştir. Yöntem, C a asal uyumlular sınıfının bloklarını kullanarak oluşturulan kapalı kümelerden, çeşitli yöntemler kullanarak bir örtü elde edilmesi ile minimal kapalı örtüye ulaşılmasını sağlar. Yöntemde kullanılan algoritmalar aşağıda verilmiştir. (i) Algoritma 1: Maksimal uyumlular sınıfı C s nin ve C s den bir minimal örtünün bulunması (ii) Algoritma 2: Uyumlu Çiftlerden oluşan kapalı yolların (P p ) bulunması, uyumlu sınıflardan oluşan kapalı yolların(p u ) bulunması ve asal uyumlu sınıflardan oluşan kapalı yolların(p a ) bulunması, maksimal uyumlu sınıflardan oluşan kapalı yolların(p s ) bulunması (iii) Algoritma 3: P p, P u, P a, P s kapalı yollar kümelerinden yararlanarak minimal kapalı örtünün elde edilmesi İlk algoritmada C s den elde edilen minimal örtüdeki blok sayısı minimal makinedeki durum sayısı için bir alt sınır oluşturur. İkinci algoritmada P s kümesinden elde edilen minimal kapalı örtüdeki blok sayısı minimal makinedeki durum sayısı için bir üst sınır oluşturur. Birçok durumda bu üst sınır minimal makinedeki durum sayısını vermektedir. Böyle bir durum oluşup oluşmadığını kontrol etmek için geliştirilen yöntem alt sınıra bakmaktadır. Eğer alt sınır üst sınıra eşit ise minimal makine C s nin bloklarından elde edilmekte ve P p, P u, P a kapalı yollar kümeleri oluşturulmamaktadır. Üçüncü algoritmada bir önceki adımda elde edilen P p, P u, P a, P s kapalı yolları kullanılır. Bu kümelerin herhangi birinden yararlanarak minimal kapalı örtünün elde 8

edilmesi mümkündür. Fakat P a kapalı yollar kümesi kullanılarak çok kısa sürede minimal kapalı örtü elde edilebilmektedir. Bu yöntemin adımları aşağıda verilmiştir. Adım 1: Verilen ardışıl devreye ilişkin durum tablosundan çiftler tablosunu kullanarak uyumlu ve uyumsuz durum çiftlerini belirle. Eğer bu işlem sonucunda uyumlu durum çifti elde edilemezse verilen ardışıl makine minimaldir. Eğer uyumsuz durum çifti elde edilemezse verilen makinedeki bütün durumlar eşdeğerdir ve minimal makinedeki durum sayısı bir dir ; makine bir kombinezonsal devre ile gerçekleştirilebilir. Adım 2: Uyumlu ve uyumsuz durum çiftlerinden yararlanarak maksimal uyumlular sınıfı(c s ) ve maksimal uyumsuzlar sınıfı algoritma [14] de verilen algoritmanın geliştirilmiş versiyonudur. C s yi elde et. Bu adımda kullanılan Adım 3: Maksimal uyumsuzlar sınıfının en büyük bloğu M i 'deki durum sayısı m i ve C s den yararlanarak minimal makinedeki durum sayısı için bir alt sınır (AS) elde edilir. C s den elde edilen bir minimal örtüdeki blok sayısı ve m i sayısından büyük olanı alt sınırı verir. Bu adımda ayrıca durum sayısı ve C s deki blok sayısından küçük olanı ile bir üst sınır (ÜS) elde edilir.yani üst sınır ÜS=minimum{n, C s } dir. Eğer alt sınır üst sınıra eşit ise minimal makine elde edilmiş olur. Bu durumda üst sınır durum sayısı n ye eşit ise minimal makinedeki durum sayısı n dir ve minimal makine n tane durumdan oluşur. Eğer alt sınır üst sınıra eşit ve üst sınır C s deki blok sayısına eşit ise minimal makine, C s nin bloklarından oluşur. Adım 4: Rho [12] yönteminde verilen algoritmaya benzer şekilde bir uyumluluk grafı oluştur. Fakat bu graftaki her düğüm bir uyumlu durum çifti yerine C s sınıfının bir bloğudur. Bu graftan Tarjan [13] algoritması kullanarak kuvvetli bağlı bileşenler kümesini (SCC) oluştur. Adım 5: Kuvvetli bağlı bileşenlerden Algoritma 2 yi kullanarak uyumlu çiftlerden oluşan kapalı yollar kümesini elde et. Bu kümenin elde edilmesi ile minimal kapalı örtü bulma problemi minimal örtü bulma problemine indirgenmiş olur. 9

Adım 6: Adım 5 te elde edilen minimal kapalı örtüdeki blok sayısından üst sınırı (ÜS) elde et. Eğer alt sınır üst sınıra eşit ise minimal makine elde edilmiş olur. Bu durumda Adım 5 te elde edilen minimal kapalı örtünün blokları minimal makinenin bloklarıdır. Adım 6 sonunda minimal makine elde edilemezse P p, P u, P a kapalı yollar kümeleri kullanılarak minimal makine oluşturulur. Adım 7: P p kapalı yollar kümesini elde etmek için düğümleri uyumlu çiftler olan uyumluluk grafı oluşturulur. Benzer şekilde P u kapalı yollar kümesini elde etmek için düğümleri uyumlu sınıflar olan uyumluluk grafı, P a kapalı yollar kümesini elde etmek için düğümleri asal uyumlu sınıflar olan uyumluluk grafı oluşturulur. Bu adımda elde edilen uyumluluk grafları ve Tarjan (1972) algoritması kullanılarak P p, P u, P a kapalı yollar kümeleri oluşturulur. Adım 8: Bir s i durumunu içeren kapalı yolların oluşturduğu küme S i olsun. Bütün durumlar için S i (i=1,2,,n) kümelerini elde et. Her bir S i kümesinden bir kapalı yol alarak oluşturulan kümenin bir minimal makine veya bir üst sınır oluşturup oluşturmadığını kontrol et. Üst sınır ve alt sınır kullanılarak pek çok kombinezon elenebilir ve böylece Algoritma 3 oldukça hızlandırılabilir. Bu adım Pp kapalı yollar kümesinin kullanılması durumunda çok uzun zaman sürebilir. Bunun iki ana nedeni vardır: (i) (ii) Uyumlu çiftlerden oluşan bir kapalı yolun maliyetinin belirlenmesi uzun süren bir işlemdir. Kapalı yollardan oluşan bir kümeye yeni bir kapalı yol eklendiğinde toplam kapalı yol maliyetinin belirlenmesi uzun süren bir işlemdir. Bu adımda P u kapalı yollar kümesinin kullanılması durumunda yukarıdaki iki zorlukla karşılaşılmadığından işlem süresi oldukça kısalır. Bununla birlikte bu adımda P a kümesinin kullanılması ile işlem süresi daha da azaltılabilir. Bunun nedeni C a kümesindeki blok sayısının C u kümesindeki blok sayısından az olması ve C a kümesindeki blokların C u kümesindeki blokların en büyükleri olmasıdır. 10

3. ASAL UYUMLULARIN KULLANILDIĞI TARAMA AĞACINA DAYALI İNDİRGEME YÖNTEMİ Bu bölümde, Puri nin [10] yönteminin geliştirilmesi ve eksikliklerinin giderilmesi ile oluşturulmuş olan indirgeme yöntemi ele alınmıştır. Önce yöntemde kullanılan tanımlar verilmiş, daha sonra da yöntemin çalışma şekli ve indirgemede kullanılan adımlara yer verilmiştir. 3.1 Yöntemde Kullanılan Tanımlar Tanım 1: p ve q durumları, ikisi için de uygulanabilir giriş dizileri için uyumlu çıkış dizileri üretiyorlar ise bu durumlar uyumludur denir. Eğer aynı giriş dizileri için farklı çıkış dizileri üretiyorlarsa bu durumlara uyumsuzdur denir. Tanım 2 : Her bir durum çifti için aynı giriş dizilerine karşı düşen çıkış dizileri uyumlu ise, Q durumlar kümesi uyumludur denir. Tanım 3 : C i uyumlusu C j uyumlusunun tüm durumlarını içeriyor ise, C i C J yi örter denir. Tanım 4 : Bir uyumlu blok başka bir uyumlu blok tarafında örtülmüyorsa bu blok maksimal uyumlu denir. Maksimal uyumluların oluçturduğu küme,c s, Maksimal Uyumlular Sınıfı (son sınıf) olarak adlandırılır. Bir uyumsuz blok başka bir uyumsuz blok tarafında örtülmüyorsa bu blok maksimal uyumsuz denir. Maksimal uyumsuzların oluşturduğu küme, Sınıfı olarak adlandırılır. C s, Maksimal Uyumsuzlar Tanım 5 : I girişi altında R uyumlular sınıfı Q uyumlular sınıfının sonraki durumlarını gösteriyorsa R ye Q nun I girişi altında izleyicisi denir.(implied) Tanım 6 : C i uyumlular sınıfının kapalılık sınıfı Φ(C İ ), C i yi izleyen uyumlular sınıfı kümesidir, şöyle ki; 11

(i) (ii) Her bir izleyici uyumlu birden fazla durum içerir. Her bir izleyici uyumlu C i tarafından içerilmez. (iii) Her bir izleyici uyumlu kapalılık sınıfının diğer bir elemanı tarafından içerilmez. Bir asal uyumlulnun öz izleyicilerinin de, kapalılık oluşuncaya kadar izleyicileri alındığında elde edilen kapalı kümeye Kapalılık Sınıfı denir. Tanım 7 : Eğer aşağıdaki şartları sağlayan bir C j uyumlular sınıfı bulunmuyor ise, C i uyumlular sınıfına Asal Uyumlu (Prime Compatible) denir. (i) (ii) C j, C i yi örter. Φ(C j ) kapalılık sınıfının her bir elemanı Φ(C i ) nin en az bir elemanı tarafından örtülür. Tanım 8 : S uyumlular kümesindeki C i uyumlusu ve onun alt kümeleri, S içersindeki bir başka uyumlu tarafından izlenmiyorsa C i ye izleyicisi olmayan (unimplied) denir. Tanım 9 : S in genişletilmiş kapalılık sınıfı Φ(S), S in izleyicilerinin oluşturduğu kümedir. Şöyle ki; (i) Herbir izleyici uyumlu birden fazla duruma sahiptir. (ii) Herbir izleyici uyumlu S in herhangi bir elemanı örtülmez. tarafından (iii) Her bir izleyici uyumlu Φ(S) in herhangi bir elemanı tarafından örtülmez. Tanım 10 : Eğer S i nin herbir uyumlusu S j nin en az bir uyumlusu tarafından örtülüyor ise S j, S i ye baskındır denir.(s i S j ) Tanım 11 : Bir uyumlular kümesi M makinesinin tüm durumlarını içeriyorsa, M makinesini örter denir. S in ağırlığı w(s), S in uyumluları tarafından örtülen 12

farklı durumların sayısını gösterir. Eğer S, M makinesini örtüyorsa, n makinenin durum sayısı olmak üzere w(s) = n olur. Tanım 12 : Eğer uyumlular kümesinin izleyicileri de küme içerisinde yer alıyorsa, küme kapalıdır denir ve S in genişletilmiş kapalılık sınıfı boş küme olur. ( Φ(S) = φ ) Tanım 13 : k uyumludan oluşan S kümesi Minimal Kapalı Örtü (MCC) olarak adlandırılır. Eğer; (i) Örtme koşulu : S kümesi M makinesinin durumlarını örtüyorsa w(s) = n dir. (ii) Kapalılık koşulu: S kümesi kapalıysa Φ(S) = φ dir. (iii) Minimum olma koşulu: k-1 ve daha az uyumludan oluşan bir küme hem örtme, hem de kapalılık koşullarını sağlamıyorsa. 3.2 Durum İndirgemede İzlenecek Adımlar (i) (ii) Uyumlu çiftlerin bulunması. Uyumlu çiftlerden yararlanarak, maksimal uyumlular sınıfı C s ve maksimal uyumsuzlar sınıfı C s nin bulunması (iii) (iv) (v) C s sınıfının alt blokları olan ve başka bir blok tarafından elenmesi mümkün olmayan asal uyumluların oluşturduğu asal uyumlular sınıfı C a nın bulunması. Asal uyumlular içinden örtme, kapalılık ve minimum olma şartlarını sağlayan bir kümenin belirlenmesi. Elde edilen indirgenmiş makinenin indirgenmemiş makine ile aynı işi yapmasının sağlanması. 13

3.3 İndirgeme Yönteminin Adımları (i) (ii) (iii) Asal uyumlular sınıfı oluşturulduktan sonra her bir asal uyumlu için kapalılık sınıfı Φ(C a ) oluşturulur. Bunun için her bir asal uyumlunun izleyicilerinin gittikleri bir sonraki uyumlu C a blokları bulunur ve kümeye dahil edilir. Bu izleyici uyumlulardan birbirini örten veya asal uyumlu tarafından örtülen olursa, bunlar kümeden çıkarılır. Bu işleme küme içinde başka izlenecek uyumlu blok kalmayana kadar devam edilir. Bu işlem sayesinde her bir C a bloğu kapalı bir küme haline gelmiş olur. Maksimal uyumsuzlar sınıfı içinden en fazla durumu içinde bulunduran bloklar seçilir. Minimal kapalı örtünün bulunacağı tarama ağacı (ST) bu bloklardan ağırlığı en küçük olana göre belirlenir. Maksimal uyumsuzdaki durum sayısı minimal makinede olması gereken en az asal uyumlu sayısını verir; bu da alt sınıra (AS) eşittir. Bu durumların örtülebilmesi ancak her bir durum için bir asal uyumlunun, minimal makinede olması ile mümkündür. Çünkü bu durumlar aynı blok içinde bulunamazlar. Maksimal uyumsuzlar içinden ağırlığı en küçük olan seçilir. Maksimal uyumsuz bloklarda görünen durumlardan her birinin C a bloklarında görünme sayılarının çarpımı ile ağırlık hesaplanır. Bu çarpım sonucu da o maksimal uyumsuzun ağırlığını w( C ) belirlenir. s Örnek : q 1,q 2,q 3 durumlarından oluşan Q maksimal uyumsuzu için ağırlık: w(q) = w(q 1 ) w(q 2 ) w(q 3 ) dir. (iv) Tarama Ağacı nda (ST) hangi durumların hangi seviyede örtüleceği belirlenir. Bunun için en küçük ağırlığa sahip maksimal uyumsuz seçilir. Tarama ağacının en üst seviyesine de ağırlığı en küçük olan durumu örten C a blokları yerleştirilir. Yukarıdan aşağıya, ağırlıkları küçükten büyüğe doğru olan durumları örten C a blokları Tarama Ağacı na yerleştirilir. Bu işleme ardışıl sıralama üretimi (OGS : Ordered Generating Sequence) denilmektedir. 14

(v) (vi) Tarama ağacının her bir seviyesinde kullanılacak iki budama kriteri bulunmaktadır. Bu kriterler tarama ağacı oluşumunda önemli bir yer tutar. Bunlar sayesinde tarama ağacındaki bazı dallar budanabilmektedir. Bu sayede, makine zamanı kısalmakta ve minimal kapalı örtüye ulaşmak için kontrol edilmesi gereken yollar azalmaktadır. Tarama ağacı oluşumu tamamlandığında her bir yol için örtme ve kapalılık durumları tespit edilir ve buna göre minimal kapalı örtü bulunur. Eğer tüm durumlar örtülmüş ise kapalılık için gereken uyumlular kümeye eklenir. Tüm durumlar örtülmemiş ise örtülecek durumları içeren C a blokları, izleyicileri ile birlikte kümeye eklenir. 3.3.1 Tarama ağacında kullanılan budama kuralları Kural 1: Durum 1.1: C i, C j nin içerdiği tüm durumları örtüyor ise, C j C i Durum 1.2: S j = {C 1, C 2...C j } nin genişletilmiş kapalılık sınıfı S i = { C 1, C 2...C i } nin kapalılık sınıfına baskın ise, Φ(S İ ) Φ(S J ) Kural 2: Durum 2.1: Eğer C i C j nin içerdiği tüm durumları örtmüyor, buna karşın örtülmeyen durumlar o seviyeye kadar oluşan uyumlular kümesi tarafından örtülüyorsa, Durum 2.2: C j izleyisi olmayan uyumlu ise, (unimplied) Durum 2.3: S j nin genişletilmiş kapalılık sınıfı kapalılık sınıfına baskınsa, Φ(S İ ) Φ(S J ) S i nin genişletilmiş Bu şartları sağlayan C j uyumlusu tarama ağacından elenir ve o dal budanmış olur. 15

3.4 İndirgeme Yönteminde Yapılan Değişiklikler Puri nin [10] yöntemindeki bazı eksiklikler yöntemin verimli şekilde çalışmasını engellemektedir. Bu yüzden programlama aşamasında bazı değişiklikler yapılmıştır. Bu değişiklikler maddeler halinde aşağıda sunulmuştur: (i) (ii) (iii) (iv) (v) Yöntem bir alt sınırdan başlayıp minimal makine bulunana kadar devam etmekte, tarama ağacı bitince tamamlayıcı unsurlar eklenmektedir. Yöntemin bir üst sınır (ÜS) kullanmaması bir eksiklik olarak görülmektedir. Bunu gidermek için, SRC yöntemindeki gibi C s den bir kapalı örtü bulunarak üst sınır bulunmuştur. C a bloklarının fazla olduğu makinelerde, makine zamanı çok arttığı için C a bloklarını azaltan başka yöntemler kullanılarak bu sorun çözülmüştür. Güncel yazılım teknikleri kullanılarak yöntemin hızlı çalışması sağlanmıştır. OGS sırasında, aynı ağırlığa sahip iki durumdan hangisinin ST de üstte yer alacağı yöntemde [10] belirtilmemiştir. Böyle iki durum oluştuğunda, birbirini örten bloklarda görünen durum ST de alt kısımda yer almış; böylece budanma şansı fazla olan OGS oluşturulmuştur. Tarama Ağacı tamamlandığında örtü oluşturmayan yollar için yeniden dallanma yapılmıştır. Bu işlem için Puri nin yönteminde asal uyumlu blokların kullanımı önerilmektedir. Oysa geliştirilen yöntemde kapalı yollar kullanılarak problem, örtü bulma problemine dönüştürülmüştür. Bulunan kapalı örtüler sıkıştırılarak üst sınır değeri güncellenmiş ve etkili bir budama yapılmıştır. 16

4. GELİŞTİRİLEN YÖNTEMİN ÖRNEKLERE UYGULANMASI Bu bölümde, yöntemin daha iyi anlaşılması ve örnekler üzerinde nasıl etki gösterdiğinin daha iyi görülmesi için iki örnek verilmiştir. 4.1 Örnek I Tablo 4.1 Örnek 4.1 e ilişkin kısmen belirli ardışıl makine Durumlar I 1 I 2 I 3 I 4 0 6,- -,0 3,0 1,0 1 -,- -,0 4,0 2,0 2 -,- -,0 5,0 0,0 3 0,- -,1 1,1 -,- 4 2,0 -,1 -,- -,- 5 -,- -,1 -,- 1,1 6 -,- 7,- -,1 -,0 7 -,- 8,- -,0 -,1 8 0,1 -,- -,1 -,1 SMCA programı kullanılarak bulunmuş olan C a blokları ve onun izleyicileri kullanılarak Tablo 4.2 oluşturulmuştur. 17

Tablo 4.2 Örnek 4.1 e ilişkin C a sınıfı ve izleyicileri Ca Blokları Ca Bloklarının İzleyicileri 0 (3,5,8) φ 1 (4,5,7) φ 2 (3,4,6) (0,2) 3 (3,4,5) (0,2) 4 (0,1,2) (3,4,5) 5 (0,1) (3,4,6) (1,2) 6 (0,2) (3,5,8) (0,1) 7 (1,2) (4,5,7) (0,2) 8 (3,6) φ 9 (4,6) φ 10 (0) φ 11 (1) φ 12 (2) φ 18

1.Adım: Asal uyumlular için kapalılık sınıfının oluşturulması. Tablo 4.3 Örnek 4.1 e ilişkin C a sınıfı ve C a nın kapalılık sınıfı C a Blokları C a nın Kapalılık Sınıfı Φ(C a ) 0 (3,5,8) φ 1 (4,5,7) φ 2 (3,4,6) (0,2) (3,5,8) (0,1) (1,2) (4,5,7) 3 (3,4,5) (0,2) (3,5,8) (0,1) (1,2) (4,5,7) 4 (0,1,2) (3,4,5) (3,5,8) (4,5,7) 5 (0,1) (3,4,6) (0,2) (3,5,8) (1,2) (4,5,7) 6 (0,2) (3,4,6) (0,1) (3,5,8) (1,2) (4,5,7) 7 (1,2) (3,4,6) (0,1) (3,5,8) (0,2) (4,5,7) 8 (3,6) φ 9 (4,6) φ 10 (0) φ 11 (1) φ 12 (2) φ 2.Adım : Maksimal uyumsuzlar içinden en fazla durumu örten bloklar seçilir. Örnek 4.1 için maksimal uyumsuz bloklar : (0,6,7,8) (1,6,7,8) (2,6,7,8) 3.Adım : Maksimal uyumsuz blokların ağırlıkları, Tablo4.4 de görüldüğü gibi durumların ağırlıkları tek tek hesaplandıktan sonra bu değerler çarpılarak bulunur. Tablo 4.4 Maksimal uyumsuz blokların ve durumlarının ağırlıkları Maksimal Uyumsuzlar (MI) Durumların Ağırlıkları w(q i ) Maksimal Uyumsuzların Ağırlıkları w(mi) (0,6,7,8) W(0) =4, w(6) = 3, w(7) = 1, w(8)=1 12 (1,6,7,8) W(1) =4, w(6) = 3, w(7) = 1, w(8)=1 12 (2,6,7,8) W(2) =4, w(6) = 3, w(7) = 1, w(8)=1 12 19

4.Adım : Tarama ağacında ardışıl sıralamanın oluşturulması (OGS) için seçilen maksimal uyumsuz(mi) bloğa göre ağırlığı en küçük olan durum ST nin en tepesine yerleştirilir. Bu durumdan başlanarak MI nın tüm durumları ST de örtülür. Tablo 4.5 OGS nin sıralamasını vermektedir. Tablo 4.5 Tarama Ağacı ndaki ardışıl sıralamanın oluşturulması (OGS) S i : OGS nin i. Durumu S i durumunu içeren Ca blokları 8 (3,5,8) 7 (4,5,7) 6 (3,4,6) (3,6) (4,6) 0 (0,1,2) (0,1) (0,2) (0) 5.Adım : Tarama ağacının oluşturulması ve budama kurallarına elenebilecek yollar varsa bunların elenerek ST nin budanması. göre Şekil 4.1. Örnek 4.1 e ilişkin tarama ağacının ilk üç seviyesi 20

Kural- 2 gereğince (4,6) bloğu, (3,6) bloğu tarafından elenmiştir. Ağacın bu dalı budanmıştır. Bu işlemle, diğer yolların minimal makineye gittiği kabul edilmiştir. Şekil 4.2 Örnek 4.1 e ilişkin tarama ağacının ilk dört seviyesi Kural-1 gereğince (0) bloğu, (0,1) bloğu tarafından elenmiştir. Bu eleme sonucunda tarama ağacında budama yapılmış ve ağaç basitleştirilmiştir. 6.Adım : Her bir yola ait örtme ve kapalılık durumlarının belirlenmesi ve gereken C a bloklarının eklenmesi bu aşamada gerçekleştirilir. Bunun için bu durumları gösteren Tablo 4.6 ya bakıldığında örtme ve kapalılık şartlarını sağlayan bloklar kolayca görülebilmektedir. 21

Tablo 4.6 Tarama ağacındaki her bir yola ait örtme ve kapalılık durumu Arama Ağacındaki Yollar Örtülen Durumlar S k Kapalılık Durumu Φ(S k ) (3,5,8) (4,5,7) (3,4,6) (0,1,2) 0,1,2,3,4,5,6,7,8 (3,4,5) (3,5,8) (4,5,7) (3,6) (0,1,2) 0,1,2,3,4,5,6,7,8 (3,4,5) (3,5,8) (4,5,7) (3,4,6) (0,1) 0,1,3,4,5,6,7,8 (1,2) (0,2) (3,5,8) (4,5,7) (3,4,6) (0,2) 0,2,3,4,5,6,7,8 (1,2) (0,1) (3,5,8) (4,5,7) (3,6) (0,1) 0,1,3,4,5,6,7,8 (1,2) (0,2) (3,5,8) (4,5,7) (3,6) (0,2) 0,2,3,4,5,6,7,8 (1,2) (0,1) (3,5,8) (4,5,7) (3,6) (0) 0,3,4,5,6,7,8 φ Sonuç : İndirgeme yöntemi ile bu örnek için iki minimal kapalı örtü bulunmuştur. 1.Minimal Makine : (3,5,8) (4,5,7) (3,4,6) (0,1,2) (3,4,5) 2.Minimal Makine : (3,5,8) (4,5,7) (3,6) (0,1,2) (3,4,5) SRC yöntemiyle elde edilen minimal makine: 0: [3,5,8] 1: [4,5,7] 2: [3,4,6] 3: [3,4,5] 4: [0,1,2] Görüldüğü gibi SRC nın verdiği minimal makine ile kullanılan yöntemin verdiği 1.minimal makine aynı blokları içermektedir. 22

Şekil 4.3 Tarama ağacından elde edilen minimal makine 23

4.2 Örnek II Tablo 4.7 Örnek4.2 ye ilişkin kısmen belirli makine Durumlar I 1 I 2 I 3 I 4 I 5 I 6 I 7 0 -,- 0,- 1,0 4,1 3,0 -,- 0,0 1 -,- 0,1 0,- -,- 0,- 3,1 1,0 2 6,0 -,- -,- -,- 0,1 3,1 1,0 3 0,- -,- 1,0 1,- -,- 4,- -,- 4 0,1 4,- 1,- -,- 0,- 4,- 1,- 5 -,- 6,0 5,1 7,1 -,1 2,- 1,0 6 5,0 6,0 -,- 4,1 -,- 2,1 -,- 7 0,1 4,- 1,- 1,0 3,1 4,0 0,1 Tablo 4.8 Örnek 4.2 ye ilişkin C a sınıfı ve izleyicileri C a blokları C a bloklarının izleyicileri 0 (0,1,3,4) φ 1 (3,4,7) (0,1,3,4) 2 (2,5,6) (3,4,7) (2,3) 3 (1,2,3) (0,1,3,4) (0,6) 4 (0,6) φ 5 (1,2) φ 6 (2,5) (2,3) 7 (2,6) (2,3) (5,6) 8 (3,7) φ 19 (5,6) (3,4,7) 10 (5) φ 24

1.Adım : Ca nın kapalılık sınıfı Φ(Ca) izleyicinin izleyicisi takip edilerek oluşturulur. Bu işleme izlenecek başka izleyici kalmayana (küme kapanana) kadar devam edilir. Tablo 4.9 Örnek 4.2 ye ilişkin C a sınıfı ve C a nın kapalılık sınıfı C a Blokları 0 (0,1,3,4) φ C a nın Kapalılık Sınıfı Φ(Ca) 1 (3,4,7) (0,1,3,4) 2 (2,5,6) (3,4,7) (2,3) (0,1,3,4) (0,6) 3 (1,2,3) (0,1,3,4) (0,6) 4 (0,6) φ 5 (1,2) φ 6 (2,5) (2,3) (0,1,3,4) (0,6) 7 (2,6) (2,3) (5,6) (0,1,3,4) (0,6) (3,4,7) 8 (3,7) φ 19 (5,6) (3,4,7) (0,1,3,4) 10 (5) φ 2.Adım :Örnek 4.2 ye ilişkin maksimal uyumsuz bloklar : (1,6,7) (1,5,7) (0,5,7) (0,2,7) 3. Adım: Maksimal uyumsuzların ağırlığı sahip oldukları duruma göre belirlenir. Tablo 4.10 Maksimal uyumsuz blokların ve durumlarının ağırlıkları Maksimal Uyumsuzlar (MI) Durumların Ağırlıkları w(q i ) Maksimal Uyumsuzların Ağırlıkları w(mi) (1,6,7) w(1) =3, w(6) = 4, w(7) = 2 24 (1,5,7) w(1) =3, w(5) = 4, w(7) = 2 24 (0,5,7) w(0) =2, w(5) = 4, w(7) = 2 16 (0,2,7) w(0) =2, w(2) = 5, w(7) = 2 20 25

5. Adım: Seçilen maksimal uyumsuza göre tarama ağacının ardışıl sıralaması üretilir. Tablo 4.11 bu sıralamayı ve ST de sırayla örtülecek C a bloklarını göstermektedir. Tablo 4.11 Tarama Ağacı ndaki ardışıl sıralamanın oluşturulması (OGS) S i : OGS nin i. Durumu S i durumunu içeren Ca blokları 0 (0,1,3,4) (0,6) 7 (3,4,7) (3,7) 5 (2,5,6) (2,5) (5,6) (5) 6. Adım: Tarama ağacı oluşturulur ve budama kriterlerine göre elenecek durumlar tesbit edilir. Şekil 4.4 Örnek 4.2 ye ilişkin tarama ağacının ilk iki seviyesi Kural-1 gereğince (3,7) bloğu, (3,4,7) bloğu tarafından elenir. Bu dal ST den budanır. Bu işlem diğer yollardan elde edilecek minimal kapalı örtünün, bu yol kullanıldığında elde edilecek minimal kapalı örtüye eşit veya daha iyi bir çözüm vereceği fikrine dayanarak gerçekleştirilmiştir. 26

Şekil 4.5 Örnek 4.2 ye ilişkin tarama ağacının ilk üç seviyesi Kural-1 gereğince (2,5) bloğu, (2,5,6) bloğu tarafından ve (5) bloğu, (5,6) bloğu tarafından elenir. 6.Adım: Her bir yola ait örtme ve kapalılık durumlarının belirlenmesi ve gereken C a bloklarının eklenmesi bu aşamada gerçekleştirilir. Örtme ve kapalılık bilgileri Tablo 4.12 den elde edilebilir. Tablo 4.12 Tarama ağacındaki her bir yola ait örtme ve kapalılık durumu Arama Ağacındaki Yollar Örtülen Durumlar S k Kapalılık Durumu Φ(S k ) (0,1,3,4) (3,4,7) (2,5,6) 0,1,2,3,4,5,6,7 (2,3) (0,6) (0,1,3,4) (3,4,7) (5,6) 0,1,3,4,5,6,7 φ (0,6) (3,4,7) (2,5,6) 0,2,3,4,5,6,7 (0,1,3,4) (2,3) (0,6) (3,4,7) (5,6) 0,3,4,5,6,7 (0,1,3,4) (0,6) (3,7) (2,5,6) 0,2,3,5,6,7 (0,1,3,4) (3,4,7) (2,3) (0,6) (3,7) (2,5) 0,2,3,5,6,7 (0,1,3,4) (2,3) (0,6) (3,7) (5,6) 0,3,5,6,7 (0,1,3,4) (3,4,7) (0,6) (3,7) (5) 0,3,5,6,7 φ 27

Sonuç : İndirgeme yöntemiyle bu örnek için bir minimal kapalı örtü bulunmuştur. Minimal Kapalı Örtü : (0,1,3,4) (3,4,7) (1,2) (5,6) SRC yöntemiyle elde edilen minimal makine: 0: [0,1,3,4] 1: [3,4,7] 2: [1,2] 3: [5,6] Bulunan sonuçlardaki minimal kapalı örtü ile SRC den elde edilen sonucun aynı olduğu görülmektedir. Şekil 4.6 Tarama ağacından elde edilen minimal makine 28

5. BİLGİSAYAR PROGRAMI GELİŞTİRİLMESİ Geliştirilen bilgisayar programında C++ programlama dili ve nesne yönelimli programlama teknikleri kullanılmıştır. Kullanılan bu programlama dili ile kodun kolay okunup anlaşılması, istenildiği zaman geliştirilmesi için değişikliklerin kolayca yapılması ve yapılabilecek programlama yanlışlarının en aza indirilmesi amaçlanmıştır. Programın görselliğinin arttırılması ve kullanımın kolay olması için Borland C++ Builder derleyici kullanılmıştır. Geliştirilen bilgisayar programına Tarama Ağacı ile Durum İndirgemesi yönteminin ingilizce kelime başlıkları kullanılarak SMST (State Minimization with Search Tree) adı verilmiştir. 5.1 SMST Programının Özellikleri ve Kullanılan Teknikler Program, iki tip veri giriş yapısını destekleyecek şekilde tasarlanmıştır. Birincisi, durum tablosunun belli kurallara uygun şekilde bir dosyaya aktarılması ile elde edilmektedir. İkincisi ise, maksimal durum içeren uyumsuz blokların ve asal uyumlular sınıfındaki blokların izleyici blokları ile birlikte belli kurallara uyarak bir dosyaya aktarılması ile elde edilmektedir. Bilgi girişi için durum tablosu kullanılır ise, başka bir programdan veya başka yollarla bulunan veriler kullanılmadan sonuca ulaşılabilir. Ancak bu durumda programa müdahale etme imkânı bulunmamaktadır. İkinci bilgi giriş yapısı kullanıldığında başka kaynaklardan yararlanarak yapılan iyileştirmeler, örneğin; asal uyumlu blokların azaltılması gibi, programa dahil edilebilir. Farklı algoritmalar kullanılarak asal uyumlular sınıfındaki blokların sayısı azaltıldığında [8], indirgenmiş bloklar ile sonuca ulaşılabileceği bu veri giriş yapısı kullanılarak gösterilebilir. Bu seçenek programa esneklik kazandırmakta ve gelecekte yapılacak geliştirme çabaları için kolaylık sağlamaktadır. 29

Asal uyumluları, izleyicilerini ve maksimum durum içeren uyumsuz blokları ifade etmek için durumları gösteren sayılar arasına virgül konulmaktadır. Ancak bu blokların bu şekilde hafıza bölgesinde depolanması verimli olmayacağından bu bloklar C dilinin standart veri tiplerinden işaretsiz tamsayı (unsigned int) tipinde tanımlanmakta ve içerdiği durumlar da o durumun numarasındaki bit, bir yapılarak aynı sayı içinde gösterilmektedir. Bu işlem sayesinde hızlı işlem yapılabilmekte ve gereken verilere kolayca ulaşılabilmektedir. SMST programında sürekli ihtiyaç duyulan verilerin depolanması ve istenildiğinde, verilere kolayca ulaşılması için matris yapısı kullanılmıştır. Bu matrisler oluşturulurken her matris için C++ sınıfları (class) kullanılmıştır. Bu sınıfların görevi matrislerin oluşturulması, kolayca erişimin sağlanması ve matrislere verilerin yüklenmesidir. Matrisler için gereken veri yapılarını tutan fonksiyonları kullanarak programın bu matrislere erişimini destekleyen sınıf yapısı programda önemli bir yer tutmaktadır. Programda kullanılan Tarama Ağacı nı oluşturma aşamasında, her seviyede örtülmesi amaçlanan durumlar tespit edilirken, Puri nin [8] makalesinde önerilen yöntemden yararlanılmıştır; fakat yöntemde iyileştirme yapılarak makine zamanı azaltılmıştır. Bu makalede, ağırlığı eşit olan iki örtülecek durumdan hangisinin üst seviyede hangisinin alt seviyede örtüleceği konusuna açıklık getirilmemiştir. Bu durum, karmaşıklığı azaltacak ve bu seviyelerdeki budama yapma olasılığını arttıracak şekilde çözülmüştür. SMST programı, bu şekildeki iki durumla karşılaştığında bu durumların, asal uyumlulardan elde edilen kapalı kümelerin kaç tanesinde örtüldüğüne bakarak, hangi durumun sayısı fazla ise onu üst seviyede örtmektedir. Böylece bu durumu örten asal uyumlu bloklar üst seviyede göründüğünden, alt seviyedeki blokların izleyicisi olsalar bile o seviyeye kadar olan genişletilmiş kapalılık sınıfı içinde yer almazlar. Genişletilmiş kapalılık sınıfının boş küme olması budama olasılığını yükseltmiş olur. Bu iyileştirmenin Tarama Ağacı ndaki yol sayısını ve buna bağlı olarak da problemin karmaşıklığını azaltacağı gösterilebilir. Ancak küçük ölçekli problemlerde bu iyileştirme makine zamanını azaltmasa bile, büyük ölçekli problemlerde budama olasılığını arttırdığı için makine zamanı azalabilir. 30

5.1.1 Geliştirilen programda kullanılan matrisler ve özellikleri Programda matris kullanılarak gereken verilere hızlı şekilde ulaşılması hedeflenmiştir. Bu hedef doğrultusunda, beş adet matris yapısı kullanılmıştır. Bu matrisler ; izleyici, örtme, kapalılık, durum örtme ve kapalılık sınıfında durum örtme olmak üzere sıralanabilir. Bu matrislerin işlevleri aşağıda verilmiştir. İzleyici matrisi : Her bir asal uyumlu bloğunun gittiği izleyicileri gösteren matristir. Satırlarında asal uyumlu bloklar, sütunlarında yine aynı bloklar bulunur. Her asal uyumlu bloğun satırında, izleyicilerinin bulunduğu sütuna bir konularak oluşturulur. Matrisin boyutu (asal uyumlu sayısı asal uyumlu sayısı) ile tespit edilmektedir. Örtme matrisi : Her bir asal uyumlu bloğunun hangi blokları örttüğünü gösteren matristir. Matrisin satırlarında ve sütunlarında asal uyumlu bloklar bulunmaktadır. Her asal uyumlu bloğun bulunduğu satırda, örttüğü asal uyumlu blokların bulunduğu sütuna bir konularak matris oluşturulur. Programın etkin çalışması için oldukça önemlidir. Tarama Ağacı oluşturulurken, budama işleminde yapılacak kıyaslamalar için ve her seviyede oluşan kümelerdeki bloklardan birbirini örtenler olduğunda, örtülen blokları kümeden çıkartmak amacı ile kullanılır. Ayrıca, hiçbir bloğu örtmeyen asal uyumlu blokların bilgisi de tutulmaktadır. Matrisin boyutu (asal uyumlu sayısı asal uyumlu sayısı) ile hesaplanmaktadır. Tablo 5.1 de, örnek 4.1 in asal uyumlu sınıfı için örtme matrisi oluşturulmuştur. 31

Tablo 5.1 Örnek 4.1 in örtme matrisi 3,5,8 4,5,7 3,4,6 3,4,5 0,1,2 0,1 0,2 1,2 3,6 4,6 0 1 2 3,5,8 0 0 0 0 0 0 0 0 0 0 0 0 0 4,5,7 0 0 0 0 0 0 0 0 0 0 0 0 0 3,4,6 0 0 0 0 0 0 0 0 1 1 0 0 0 3,4,5 0 0 0 0 0 0 0 0 0 0 0 0 0 0,1,2 0 0 0 0 0 1 1 1 0 0 1 1 1 0,1 0 0 0 0 0 0 0 0 0 0 1 1 0 0,2 0 0 0 0 0 0 0 0 0 0 1 0 1 1,2 0 0 0 0 0 0 0 0 0 0 0 1 1 3,6 0 0 0 0 0 0 0 0 0 0 0 0 0 4,6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 Kapalılık matrisi : Asal uyumlu blokların izleyicilerinin izleyicileri, izlenecek başka blok kalmayıncaya kadar tek bir kümeye dahil edilerek kapalılık sınıfı elde edilir. Bu matris, her bir bloğun kapalılık sınıfını tutup, gerektiğinde genişletilmiş kapalılık sınıfı için bu bilgilerin kullanılmasında kolaylık sağlar. Her bloğun kapalılık sınıfı, kapalılık kümesindeki bloklarının bulunduğu sütunlara bir konularak oluşturulur. Matrisin boyutu (asal uyumlu sayısı asal uyumlu sayısı) ile hesaplanmaktadır. Durum örtme matrisi : Her bir asal uyumlu bloğunun hangi durumları örttüğü bilgisini tutan matristir. Satırlarında asal uyumlu bloklar sütunlarında durumlar yer alır. Blok içinde gözüken durumlar ilgili sütun hizasına bir konularak gösterilir. Matrisin boyutu (asal uyumlu sayısı durum sayısı) olarak hesaplanmaktadır. Kapalılık sınıfında durum örtme matrisi : Kapalılık sınıflarında örtülen durumların bilgisini tutar. Her bir asal uyumlu blok bir kapalılık sınıfı oluşturduğundan, blokların bulunduğu satırlarda örttüğü durumların hizasına bir 32

konularak oluşturulur. Matrisin boyutu (asal uyumlu sayısı durum sayısı) olarak hesaplanmaktadır. 5.1.2 Tarama ağacını oluşturan dallanma yapısı SMST programında Tarama Ağacı nı oluşturan dallanma yapısı ağaç sınıfı adı verilen veri yapısı kullanılarak üretilmektedir. Ağaç sınıfı içinde her seviyedeki düğümlerin adresini tutan ve erişimi sağlayan gösterici veri tipi kullanılmaktadır. Gösterici, var olan veya sonradan üretilen verilerin yerini gösterir. Tarama Ağacı oluşturulurken her seviye için üretilecek yeni düğümler önceden belli olduğundan, bir seviye oluşturulduğunda bir sonraki seviye de bu seviyenin içinde oluşturulur(şekil 5.1). Şekil 5.1 Tarama Ağacı nın temel yapısı Budama işlemi her seviye oluşumunda oluşturulan bir sonraki seviyelere göre gerçekleştirilir(şekil 5.2). Budama işlemi tamamlandığında, her düğüme ulaşıp yeni seviyeyi oluşturacak olanların adresleri göstericiye aktarılır (Şekil 5.3). Düğümler içerisinde örtme bilgisi, kapalılık bilgisi hangi blokları içerdiği bilgisi gibi birçok veri bulunur. Bu yapı sayesinde, bir alt seviye oluşturulduğunda üst seviyedeki bilgiler alt seviyeye aktarılır. Tarama Ağacı tamamlandığında sadece en alt seviyeye bakmak yeterli olur. Tarama Ağacı 33

tamamlandığında kapalılık için gereken bloklar yola ilave edilir ve örtme şartı için gereken durumlar var ise, bu durumları örtmek için de dallanma işlemine o düğüm için devam edilir. Kapalı bir örtü bulunduğunda daha önce bulunan Şekil 5.2 Budama işlemi kapalı örtülerden daha az blok içeriyor ise, yeni bulunan kapalı örtüdeki blok sayısı üst sınır olarak alınır. Daha hızlı ve iyi bir üst sınır bulmak için sıkıştırma işlemi uygulanır. Bulunan kapalı örtüler için, bu kümenin örtemediği asal uyumlu bloklara bakılır. Bu asal uyumlu blokların kapalı örtünün kaç bloğunu elediği sayısından, asal uyumlunun kapalılık sınıfının eleman sayısı çıkarılır. Eğer çıkan sayı pozitif ise sıkıştırma işlemi için bu sayının en büyük olduğu asal uyumlu bloğu seçilir. Sıkıştırma neticesi kapalı örtünün blok sayısı, üst sınırdan küçük olmayacak ise bu işlem hiç yapılmamaktadır. Bu yöntem sayesinde programın daha hızlı ve etkin çalışması sağlanmıştır 34

Şekil 5.3 Budama sonrası yeni seviye oluşumu 5.2 Programda Kullanılan Veri Giriş Yapıları Programda iki veri girişi yapısı kullanılmaktadır. Birincisi, durum tablosunu diğeri ise, asal uyumlu blokları kullanmaktadır. Bu yapılar geniş anlamda alt başlıklar halinde incelenmiştir. 5.2.1 Durum tablosuna dayalı veri girişi yapısı Bu yapıda anahtar karakterler olarak durum sayısı için.s, giriş sayısı için.i, çıkış sayısı için.o ve durum tablosunun yazılı olduğu satır sayısı için de.p kullanılmıştır. Her bir anahtar karakterden sonra bir veya daha fazla boşluk bırakarak, gereken sayı değerleri yazılmaktadır. Yazılan giriş sayısı, durum tablosundaki girişleri elde etmek için gereken bit sayısını gösterir. Bu bit sayısı; durum tablosunda görünen sütun sayısının, iki tabanına göre alınan logaritmasının, kendisinden büyük veya eşit en yakın tamsayı değerine yuvarlatılması ile elde edilir. Yazılan çıkış sayısı da, istenen çıkış sayısını üretmek için gereken bit sayısı ile ifade edilmektedir. Bunlar tamamlanınca, durum tablosunun aynı dosyanın devamına eklenmesi işlemine başlanır. Önce giriş ve bir boşluk, sonra durum ve bir boşluk, daha sonra o giriş altında yazılan durumun gittiği bir sonraki durum ve bir boşluk, en son olarak da çıkış yazılarak satır tamamlanır. Girişler ve çıkışlar, daha önce verildiği sayıda bit ile kodlanarak yazılır. Durumlar, sıfırdan başlamak üzere tam sayıları kullanarak ve sayı atlamadan sıra ile ifade edilir. Eğer yazılan bu satırların 35

sayısı,.p karakterinden sonra verilen sayıdan fazla veya eksik olur ise programda hata meydana gelmektedir. Ayrıca bir giriş altında, gittiği bir sonraki durum ve ürettiği çıkışı belli olmayan durumlara ilişkin satırlar hiç yazılmamalıdır. Aşağıda, durum tablosu verilen kısmen belirli makinenin bu tabloya göre veri girişi yapısı verilmiştir. Bu giriş yapısı kullanılarak SMST programı ile durum indirgeme işlemi kolayca yapılmaktadır. Tablo 5.2 Durum tablosu Durumlar I 1 I 2 I 3 I 4 I 5 0 6,01 -,00 3,01 -,- - 1,01 1 -,- - 7,00 -,- - 8,01 2,01 2 -,- - 5,01 5,01 -,- - 0,- - 3 0,- - -,- - 1,10 7,10 -,- 4 2,00 -,11 -,- - -,- - -,- 5 -,- - -,- - -,- - 8,- - 1,11 6 -,- - 7,- - -,10 -,10 -,- - 7 -,- - 8,- - -,- - -,01 -,11 8 0,10 -,- - -,10 -,- - -,11.s 9.i 3.o 2.p 26 000 0 6 01 000 3 0 -- 000 4 2 00 000 8 0 10 001 0-00 001 1 7 00 001 2 5 01 36

001 4-11 001 6 7 -- 001 7 8 -- 010 0 3 01 010 2 5 01 010 3 1 10 010 6-10 010 8-10 011 1 8 01 011 3 7 10 011 5 8 -- 011 6-10 011 7-01 100 0 1 01 100 1 2 01 100 2 0 -- 100 5 1 11 100 7-11 100 8-11 5.2.2 Asal uyumlu bloklara dayalı veri girişi yapısı Bu yapıda ilk olarak.s karakterinden sonra boşluk bırakılır ve ardından durum sayısı yazılır..m karakterinden sonra da maksimum sayıda durumdan oluşan uyumsuzların sayısı verilir. Bu sayı kadar uyumsuz, her satıra bir tane gelecek şekilde yazıldıktan sonra.me karakteri ile bu işlemin tamamlandığı belirtilir..c karakterinden sonra asal uyumlu sayısı yazılır. Bu sayı kadar satırda, asal uyumlular ve aralarında boşluk bırakılarak bunların izleyicileri yazılır. Bu işlemin de tamamlandığı.ce karakteri konularak gösterilir. Verilen asal uyumlu sayısından fazla veya eksik satır verilir ise programda okuma hatası meydana gelmektedir. Alt kısımda, asal uyumlu blokları tablo şeklinde verilen kısmen belirli makinenin bu veri giriş yapısına göre dosyaya nasıl aktarılacağı gösterilmektedir. Bu örneğin durum sayısı dokuz ve maksimum durum içeren 37

uyumsuz blokları (0,6,7,8) oluşmaktadır. (1,6,7,8) ve (2,6,7,8) olmak üzere üç bloktan Tablo 5.3 Asal uyumlu bloklar ve izleyicileri Ca Blokları Ca Bloklarının İzleyicileri 0 (3,5,8) φ 1 (4,5,7) φ 2 (3,4,6) (0,2) 3 (3,4,5) (0,2) 4 (0,1,2) (3,4,5) 5 (0,1) (3,4,6) (1,2) 6 (0,2) (3,5,8) (0,1) 7 (1,2) (4,5,7) (0,2) 8 (3,6) φ 9 (4,6) φ 10 (0) φ 11 (1) φ 12 (2) φ.s 9.m 3 0,6,7,8 1,6,7,8 2,6,7,8.me.c 13 3,5,8 4,5,7 3,4,6 0,2 38

3,4,5 0,2 0,1,2 3,4,5 0,1 3,4,6 1,2 0,2 3,5,8 0,1 1,2 4,5,7 0,2 3,6 4,6 0 1 2.ce 5.3 SMST Programının Dayandığı Algoritmanın Yapısı Geliştirilen bilgisayar programı iki kısımdan oluşmaktadır. Bu kısımlar ayrı olarak geliştirilmiş daha sonra da tek program haline getirilmiştir. 5.3.1 Asal uyumlular sınıfını bulan algoritmanın yapısı i ) Durum tablosunun oluşturulması : Giriş yapısı olarak durum sayısı, giriş sayısı, çıkış sayısı ve tablonun verildiği satır sayısı ile birlikte makineye ait durum tablosunun verildiği dosyadan, okuma işlemi ile bu tablo oluşturulur. Okuma işlemi sırasında, satır satır okunan veri gerekli yerlerde saklanır. Birden fazla giriş için kullanılacak olan bilgi satırları, giriş bitlerinin bazılarına tire - işareti konularak oluşturulur. Bunlar tespit edilirken, tire konmuş giriş bitlerinden her biri için tüm alternatifler bulunup bunlara ait sütunlara aynı bilgiler kaydedilir. Tablonun her bir hücresi iki kısımdan oluşur. Birinci kısımda durumlar, ikinci kısımda da çıkışlar tutulur. Durumlar içinde belli olmayanlar var ise, bu bilgi de ayrıca saklanır. Çıkışlar bit dizileri şeklinde ve iki ayrı dizi şeklinde tutulur. Birinci bit dizisi içinde çıkışların değeri, ikinci bit dizisi içinde de belirli olan veya keyfi olan çıkış bitleri tutulur. ii ) Durumlar arasındaki uyumluluk ve uyumsuzluğun tespiti : Durumlar arasındaki uyumsuzluk tespit edilirken, önce tüm giriş değerleri için çıkış değerlerine bakılır. Bu işlem için durum tablosunun sütunları kullanılır. Aynı 39

sütun içinde uyumsuz durumlar var ise, bunlara ait durumlar da uyumsuz olacaktır. Bu uyumsuzluk bilgisi, yarı tanımlı bir uyumluluk matrisinde ilgili kısma sıfır konularak saklanır. Uyumluluk matrisinin satır ve sütunlarında aynı durumlar bulunur ve sadece köşegenin üst bölgesi kullanılır. Matris oluşturulurken her bir hücresine 2 değeri konur. Bu değer belirsizlik anlamına gelir. Uyumlu olduğu kesin olan durumlar için bir, uyumsuzluğu kesin olan durumlar için de sıfır değeri matrisin hücrelerine konulur. İki durumun uyumlu olması için aynı zamanda gittikleri bir sonraki durumlarının (izleyicilerinin) da uyumlu olması gerekmektedir. Bu şartın gerçekleştirilmesi için, uyumluluğu belirsiz her durum çiftine ait izleyiciler dizisi tutulur ve bunların uyumlu olup olmadıklarına bakılır. Her yeni uyumsuzluk tespitinde, matrisin ilgili hücresine sıfır konulur ve izleyici olarak bu durumlara giden başka durum çiftleri varsa onlarda uyumsuz olarak matrise yerleştirilir. Bu işleme, tespit edilecek uyumsuzluk kalmayana kadar devam edilir ve matriste hala 2 olarak görünen belirsiz hücrelere de bir konularak matrisin oluşumu tamamlanır. iii ) Maksimal uyumlu (C s ) ve maksimal uyumsuz( C ) blokların bulunması : Maksimal uyumlular sınıfını bulurken matriste her bir duruma ait uyumsuzluk sayısı bulunur. En fazla sayıda uyumsuzluğa sahip durumdan başlanarak tüm durumları kapsayan başlangıç kümesi iki parçaya ayrılır. Bu parçalardan biri uyumsuzluğu en fazla olan durum ve yanında onunla uyumlu olan durumlardan oluşur. Diğer parça ise, uyumsuzluğu fazla olan durum çıkarıldıktan sonra geriye kalan durumlardan oluşur. Bu işlem sonunda uyumsuzluğu en fazla olan durumun uyumsuzluk sayısı sıfır yapılır. Ayrıca bu durumla uyumsuzluğu olan diğer durumlar arasındaki uyumsuzluk bu aşamada halledildiği için bu durumların uyumsuzluk sayısı da bir eksiltilir. Bu işleme tüm durumların uyumsuzluk sayısı sıfır olana kadar devam edilir [4]. Daha sonra ortaya çıkan bloklardan birbirini örtenler var ise, bunlar içinden örtülen bloklar atılır. Böylece maksimal uyumlular sınıfı oluşturulmuş olur. Maksimal uyumsuzlar sınıfı oluşturulurken de benzer yapılar kullanılır. Parçalama işlemi için uyumluluk sayıları tespit edilir ve bu sayı hangi durum için en büyük değerde ise o durumdan başlanarak parçalama işlemi gerçekleştirilir. s 40

iv ) Asal uyumlular sınıfının bulunması : Asal uyumlular sınıfı bulunurken durum sayısına göre seviyeler oluşturulur. Bu seviyeler maksimal uyumlulardan ve varsa bir önceki seviyede türetilen asal uyumlu bloklarından oluşur. Seviyeler içinde asal uyumlu bloklar, izleyicileri, elenen blokların bilgisi tutulur. Bu bilgi asal uyumlu sayısı kadar dizi elemanı içinde özel sayı değerleri ile tutulur. Bu seviyelerin tamamı oluşturulunca seviyeler arasında eleme işlemine başlanır. Bu eleme işleminde iki kural kullanılır. Bu kurallar; a ) Kural 1: İki asal uyumlu olan i ve j bloklarından, i bloğu j bloğunun durumlarını örtüyor ve i bloğunun izleyici bloklarının tamamı aynı zamanda j bloğunun da izleyici blokları ise, j bloğu i bloğu tarafından elenir. Asal uyumlular sınıfı oluşturulurken j bloğu izleyiciler içinde görünüyor ise bunun yerine i bloğu yerleştirilir. b) Kural 2 : Kural 1 e göre aynı bloğu eleyebilen birden fazla asal uyumlu var ise, bu durumda elenecek bloğun izleyiciler içinde olup olmadığına bakılarak karar verilir. Eğer elenebilecek blok izleyiciler arasında görünmüyor ise elenir, görünüyorsa da aynen bırakılır. Bu iki eleme kuralından birincisine uyan bloklar olduğunda, elenen blok için seviye içinde ayrılan dizi elemanının değeri sıfır yapılır. Ayrıca bu blokla beraber eleyen blokta ayrı bir yapı içinde eşleşmiş olarak saklanır. İzleyiciler güncellenirken elenen blokla karşılaşıldığında bunun yerine onu eleyen blok konulur. İkinci eleme kuralına uyan bloklar olduğunda elenme ihtimali olan asal uyumluya ait dizi elemanına iki değeri konulur. İzleyiciler güncellenirken bu elenme ihtimali olan blok ile karşılaşılır ise, bu blok için ayrılan dizi elemanının değeri bir yapılır. Böylece elenmeden aynen asal uyumlu sınıfındaki yerini alır. İzleyicilerin güncelleme işlemi tamamlandığında halen duran iki değerine sahip dizi elemanları var ise, bunların ait olduğu bloklar asal uyumlular sınıfından çıkartılır. 41

5.3.2 Asal uyumlular sınıfını kullanarak durum indirgemesi yapan algoritmanın yapısı i ) Maksimal uyumsuzlardan yaralanarak tarama ağacının sıralamasının belirlenmesi : İlgili dosyadan alınan maksimal uyumsuzlar ve yine aynı dosyadan alınan asal uyumlular sınıfı kullanılarak Tarama Ağacı nın sıralaması oluşturulur. Bu sıralamada kullanılacak maksimal uyumsuz belli bir ağırlık hesabıyla tespit edilir. Bu hesap için maksimal uyumsuzun içinde yer alan durumların asal uyumlu bloklar içinde görünme sayıları bulunur. Maksimum sayıda duruma sahip uyumsuzlar içinde her bir maksimal uyumsuz için bir sayı değeri ortaya çıkar. Bu sayı da, maksimal uyumsuz içindeki durumların ağırlıklarının çarpımı ile elde edilir. Bu sayı değeri en küçük olan maksimal uyumsuz bloğa göre sıralama belirlenir. Tarama Ağacı ndaki seviyelerin hangi durumu örterek başlayacağı, sıralamayı belirleyen maksimal uyumsuza bağlıdır. Maksimal uyumsuzun durumları içinde en az ağırlığa sahip durumu örten asal uyumlular ile Tarama Ağacı başlar ve sırası ile en az ağırlıklı durumlar örtülerek devam eder. Tarama Ağacı nın seviye sayısını maksimal uyumsuzun durum sayısı belirler ve bu aynı zamanda minimal kapalı örtü için alt sınır oluşturur. ii ) Asal uyumlular sınıfına ait izleyiciler matrisinin oluşturulması : Asal uyumlular sınıfı ilgili dosyadan alınır ve tek bir veri yapısı içinde tutulur. Bu yapı bir sayı veya sayı dizisi şeklindedir. Bu dizinin boyutunu indirgenecek makinedeki durum sayısı belirler. Her bir sayı içinde en çok 32 durum tutulabileceği için bu sayının üstündeki her duruma sahip makinede sayı dizileri kullanılır. Asal uyumlu bloğunun içindeki durumlar, o durumun sayı değerini gösteren bit bir yapılarak tutulur. Tüm asal uyumlular ve izleyicileri aynı veri yapısında tutulduğundan yapılacak işlemler kolayca yapılabilir. Bu yapıdan yaralanarak izleyiciler matrisi oluşturulur. Bu matrisin satırlarında ve sütunlarında asal uyumlu bloklar bulunur. İzleyiciler belirlenirken ilgili sütunlara bir konulur. Bu tip matrislerin kullanımı asal uyumluların kendisinin veya izleyicilerinin değil, onların matriste bulundukları koordinat numaralarının kullanımı kolaylığını sağlar. 42

iii ) Asal uyumlulara ilişkin kapalılık sınıfının oluşturulması : İzleyiciler matrisinden yararlanılarak bulunur. Ama daha önce asal uyumluların içerdiği durumları tutan matris ve bu matris kullanılarak da asal uyumlu blokların diğer bloklardan hangilerini örttüğü bilgisini tutan örtme matrisi oluşturulur. Bu matris sayesinde, izleyici blokların izleyicileri de kapalılık kümesine dahil edilirken diğer bloklar tarafından örtülen bloklar kolayca bulunup kümeden çıkartılabilir. Kümeye ilave edilecek izleyici kalmadığı anda kapalılık sınıfı o asal uyumlu için oluşturulmuş olur. Kapalılık sınıfı kullanılarak bu sınıfın örttüğü durumları gösteren matris oluşturulur. Puri 'nin yönteminde eksik bırakılan, aynı ağırlığa sahip durumlardan hangisinin sıralama oluşturulurken daha önce örtüleceği bilgisine bu matris ile açıklık getirilmektedir. Çünkü; bir durum kapalılık kümelerinden hangisinde daha fazla görünüyor ise, o durumun daha bir önceki seviye içinde örtülmesi Tarama Ağacı ndaki budama olasılığını arttırmaktadır. iv ) Tarama ağacının oluşturulması : Tarama ağacı oluşturulurken iki ayrı yapı kullanılmıştır. Birincisi, ağacı oluşturan yapı ikincisi de düğümleri oluşturan yapıdır. Düğümler içinde yeni seviyeler için düğümler türetilir ve daha sonra budama kriterlerine bakılarak budama işlemi uygulanır. Budanmayan düğümler aynen ağacı oluşturan yapıya aktarılır ve yeni seviye bu düğümler tarafından oluşturulur. Düğümler içinde her seviyeye ait asal uyumlular, kapalılık şartı için gerekli bloklar ve örtülen durumlara ait bilgiler bulunur. Bu bilgilere her yeni seviye oluşumunda yeni bilgiler ilave edilir. Tarama Ağacı tamamen oluştuğunda elde edilmiş olan düğümler içinde gereken tüm bilgiler olduğu için diğer seviyelerdeki düğümler yeni seviye oluştuğunda yok edilir. Böylece hafızanın etkin kullanımı ve kaynakların gereksiz tüketiminin önüne geçilmiş olur. v ) Minimal kapalı örtünün bulunması : Tarama Ağacı tamamlandığında elde edilen düğümlere ilişkin kapalılık şartını sağlayan bloklar, düğümün diğer bloklarının içine eklenir. Örtülen durumlar yeniden belirlenir. Kapalılık şartını sağlamış olan bu düğümler içinde örtü olanlar var ise, bunlardaki blok sayısı üst sınır oluşturur. Üst sınır(üs) alt sınıra(as) eşit ise veya alt sınıra eşit kapalı bir örtü yok iken ÜS = AS + 1 ise bu durumda minimal makine 43

bulunmuş olur ve programdan çıkılır. Bu iki durumda sağlanmıyor ise, örtü şartını sağlamak üzere her düğüm için yeni dallanmalar yapılır. Bu dallanmalar o düğüm için kapalı örtü bulana kadar sürdürülür. Bulunan minimal kapalı örtü (MCC) ÜS den daha küçük blok sayısına sahip ise yeni ÜS bu düğümün blok sayısı olur. Bu işleme tüm düğümler için bakılır ve en sonunda elde edilen ÜS, MCC nin blok sayısını belirler. Ayrıca örtü bulunma aşamasında sıkıştırma işlemi uygulanarak ÜS nin daha iyi olması sağlanmıştır. Bu işlem için MCC yi oluşturan kümeye ilave edilecek herhangi bir asal uyumlu bloğun, blok sayısını azaltıp azaltmadığı bilgisine bakılır. Azaltan blok kümeye ilave edilir ve bu işleme blok sayısı azalmayana kadar devam edilir. 5.4 Programın Performansını Test Eden Örnek Makine Geliştirilmesi Geliştirilen bilgisayar programı temelde dallanma yöntemine dayandığı için dallanma sayısını arttıran ve kapalılık kümelerindeki blok sayısının fazla olduğu örneklerde zorlanması beklenebilir. Bu durumlar dikkate alınarak buna uygun bir örnek geliştirme yöntemi kullanılmıştır. Örnek geliştirilirken, makinenin durum sayısına göre maksimal uyumsuz blokların sayısı ve hangi durumlardan oluşacağı daha önceden belirlenir. Bir maksimal uyumsuzda görünen durumun, diğer bloklarda görünmemesi gerekir. İzleyiciler oluşturulurken maksimal uyumsuzlar diğer maksimal uyumsuzlara gidecek şekilde durum tablosu oluşturulur. Bu izleyici oluşumu kapalılık kümelerindeki blok sayısını arttırmaktadır. Örnek olarak 8 durumlu bir makine ele alındığında (Tablo 5.4), maksimal uyumsuzlar (2,7), (0,6), (1,5), (3,4) olarak tespit edilebilir. Bu örnek için (2,7) (0,6), (2,7) (3,4), (3,4) (0,6) blokları karşılıklı olarak birbirlerini izlerler ise oluşan problem istenen yapıya ulaşmış olur. Problemin yapısına bakıldığında kapalılık sınıfının her bloğundaki blok sayısı örtülen durum sayısından fazla olduğu görülebilir. Bu durum diğer problemlerde görülmediği için özel bir durum oluşturmaktadır. Ayrıca diğer dikkat çeken bir husus da, kural 2 ye göre elenemeyen asal uyumlu blok sayısının diğer problemlere göre daha fazla olmasıdır. Bu durum problemde ele alınan asal uyumluların birbirine çok benzedikleri ve aynı özellikleri gösterdiklerinin bir kanıtı olarak kabul edilebilir. Ayrıca benzer yapı kullanılarak problem daha fazla durum için yeniden oluşturulabilir. Asal 44

uyumlu sayısının arttırılması için maksimal uyumsuz sayısının arttırılması ve ayrıca karmaşıklığın arttırılması için de uyumsuzların mümkün olduğunca birbirini izlemesi gerekmektedir. Tablo 5.4 Geliştirilen örneğe ilişkin durum tablosu Durum I 1 I 2 I 3 I 4 0 2,1 -,- 4,- -,- 1 -,- -,- -,- -,1 2 6,- 3,1 -,- -,- 3 -,- 7,- 0,0 -,- 4 -,- 2,- 6,1 -,- 5 -,- -,- -,- -,0 6 7,0 -,- 3,- -,- 7 0,- 4,0 -,- -,- 5.5 Programın Kullanımı Pogramın metin kısmına yazılarak veya herhangi bir metin dosyası kullanılarak program için gerekli yapıda giriş dosyası oluşturulabilir. Oluşturulan bu dosya load kısmına mouse ile tıklanarak programa yüklenir(şekil 5.4). Bu yükleme işleminden sonra eğer durum tablosu üzerinden indirgeme yapılacak ise reduce from state table kısmına tıklanır. Eğer asal uyumlular kullanılarak indirgeme yapılacak ise reduce from Ca blocks kısmına tıklanır. Elde edilen sonuçların görülmesi için show result kısmı kullanılabilir. Ayrıca dosya açma, dosya kapatma, kopyalama gibi seçenekler için butonlar bulunmaktadır. 45

Şekil 5.4 Programın genel görünümü 5.6 SMST Programının Örneklere Uygulanması Bu kısımda SMST programının örnekler üzerinde nasıl sonuçlar verdiği üzerinde durulmuştur. Sonuçlar sadece bloklar ve diğer istatistik bilgileri şeklindedir. Bunun sebebi programdan elde edilen çıkış yapısında birçok detay bilginin olmasıdır. Aşağıda üç örnek için programdan elde edilen sonuçlar verilmektedir. Örnekler Pentium Celeron işlemcili 256 MB RAM a sahip makinede çözülmüştür. 5.6.1 Örnek I : Bençmark ex3 Tablo 5.5 Ex3 için durum tablosu Durumlar I 1 I 2 I 3 I 4 0 -,-- -,-- -,-- -,-- 1 2,-- 4,01 3,-- 0,10 2 6,-- 9,-- 0,-- 0,-- 3 0,-- 0,-- 8,-- 7,-- 4 2,-- 1,-- 5,-- 6,-- 5 0,-- 0,-- 6,-- 0,-- 6 1,00 0,-- 0,11 2,-- 7 5,11 2,-- 0,-- 0,-- 8 5,-- 0,-- 1,00 0,-- 9 5,-- 3,-- 0,-- 0,-- 46