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

Ebat: px
Şu sayfadan göstermeyi başlat:

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

Transkript

1 İ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 ( ) 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

2 Ö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

3 İÇİ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 Durum İndirgeme Yöntemleri Asal uyumluların kombinezonlarını kullanarak durum indirgeme yöntemi Uyumlu çiftlerden ve kapalı yollardan yararlanarak durum indirgeme yöntemi Aşama-1: Bütün uyumlu çiftlerin C s 'nin ve C s nin elde edilmesi Aşama-2: Tüm kapalı yolların uyumlu çiftlerden yararlanılarak bulunması Aşama-3: Kapalı kümelerden ve maksimal uyumuzlardan yararlanılarak minimal kapalı örtünün elde edilmesi SRC (State Reduction and Covering) yöntemi 8 3. ASAL UYUMLULARIN KULLANILDIĞI TARAMA AĞACINA DAYALI İNDİRGEME YÖNTEMİ Yöntemde Kullanılan Tanımlar Durum İndirgemede İzlenecek Adımlar İndirgeme Yönteminin Adımları Tarama ağacında kullanılan budama kuralları İndirgeme Yönteminde Yapılan Değişiklikler YÖNTEMİN ÖRNEKLERE UYGULANMASI Örnek I Örnek II BİLGİSAYAR PROGRAMI GELİŞTİRİLMESİ SMST Programının Özellikleri ve Kullanılan Teknikler 29 2 iii

4 5.1.1.Geliştirilen programda kullanılan matrisler ve özellikleri Programda Kullanılan Veri Giriş Yapıları Durum geçiş tablosuna dayalı veri giriş yapısı Asal uyumlu bloklara dayalı veri Giriş Yapısı SMST Programının Dayandığı Algoritmanın Yapısı Asal uyumlular sınıfını bulan algoritmanın yapısı Asal uyumlular sınıfını kullanarak durum indirgemesi yapan algoritmanın yapısı Programın Performansını Test Eden Örnek Makine Geliştirilmesi Programın Kullanımı SMST Programının Örneklere Uygulanması Örnek I : Bençmark ex Örnek II Örnek III SONUÇLAR VE ÖNERİLER 54 KAYNAKLAR 57 ÖZGEÇMİŞ 59 iv

5 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

6 TABLO LİSTESİ Sayfa No Tablo 4.1 Örnek 4.1 e ilişkin kısmen belirli ardışıl makine Tablo 4.2 Örnek 4.1 e ilişkin C a sınıfı ve izleyicileri Tablo 4.3 Örnek 4.1 e ilişkin C a sınıfı ve C a nın kapalılık Tablo 4.4 Maksimal uyumsuz blokların ve durumlarının ağırlıkları Tablo 4.5 Tarama Ağacı ndaki adışıl sıralamanın oluşturulması (OGS) Tablo 4.6 Tarama Ağacı ndaki her bir yola ait örtme ve kapalılık durumu Tablo 4.7 Örnek 4.2 ye ilişkin kısmen belirli makine Tablo 4.8 Örnek 4.2 ye ilişkin C a sınıfı ve izleyicileri 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ı Tablo 4.10 Maksimal uyumsuz blokların ve durumlarının ağırlıkları Tablo 4.11 Tarama Ağacı ndaki ardışıl sıralamanın oluşturulması (OGS) 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 Tablo 5.2 Durum tablosu Tablo 5.3 Asal uyumlu bloklar ve izleyicileri Tablo 5.4 Geliştirilen örneğe ilişkin durum tablosu Tablo 5.5 Ex3 için durum tablosu Tablo 5.6 Örnek ye ilişkin durum tablosu Tablo 5.7 Örnek e ilişkin durum tablosu vi

7 Ş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 Şekil 4.2 Örnek 4.1 e ilişkin tarama ağacının ilk dört seviyesi Şekil 4.3 Tarama Ağacı ndan elde edilen minimal makine Şekil 4.4 Örnek 4.2 ye ilişkin tarama ağacının ilk iki seviyesi Şekil 4.5 Örnek 4.2 ye ilişkin tarama ağacının ilk üç seviyesi Şekil 4.6 Tarama Ağacı ndan elde edilen minimal makine Şekil 5.1 Tarama Ağacı nın temel yapısı Şekil 5.2 Budama işlemi Şekil 5.3 Budama sonrası yeni seviye oluşumu Şekil 5.4 Programın genel görünümü vii

8 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

9 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

10 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

11 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

12 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

13 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

14 (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 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

15 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

16 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] 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 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

17 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 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 de kuvvetli bağlıdır. Uyumlu çift yoksa verilen makine minimaldir 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

18 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] 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

19 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

20 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

21 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

22 (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

23 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

24 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

25 (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 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

26 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

27 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

28 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

29 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)=

30 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

31 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

32 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

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

34 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

35 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) =

36 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

37 Ş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

38 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

39 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

40 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

41 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

42 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, ,5, ,5, ,4, ,4, ,1, , , , , , 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

43 konularak oluşturulur. Matrisin boyutu (asal uyumlu sayısı durum sayısı) olarak hesaplanmaktadır 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

44 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

45 Ş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 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

46 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, ,- - -,- - 1,10 7,10 -,- 4 2,00 -,11 -,- - -,- - -,- 5 -,- - -,- - -,- - 8,- - 1,11 6 -,- - 7,- - -,10 -,10 -, ,- - 8,- - -,- - -,01 -,11 8 0,10 -,- - -,10 -,- - -,11.s 9.i 3.o 2.p

47 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

48 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

49 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, 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 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

50 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

51 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

52 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

53 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

54 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

55 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

56 Ş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 Ö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

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

BÖLÜM III: Şebeke Modelleri. Şebeke Kavramları. Şebeke Kavramları. Şebeke Kavramları. Yönlü Şebeke (Directed Network) Dal / ok 8.0.0 Şebeke Kavramları BÖLÜM III: Şebeke Modelleri Şebeke (Network) Sonlu sayıdaki düğümler kümesiyle, bunlarla bağlantılı oklar (veya dallar) kümesinin oluşturduğu yapı şeklinde tanımlanabilir ve (N,A)

Detaylı

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) 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) ir lojik fonksiyonun birçok cebirsel ifadesi vardır. (kz. kanonik açılımlar ve yalınlaştırılmış ifadeleri) Yalınlaştırmada amaç, belli bir maliyet

Detaylı

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

Lojik Fonksiyonların Yalınlaştırılması (İndirgenmesi) Lojik Fonksiyonların Yalınlaştırılması (İndirgenmesi) ir lojik fonksiyonun birçok cebirsel ifadesi vardır. (kz. kanonik açılımlar ve yalınlaştırılmış ifadeleri) Yalınlaştırmada amaç, belli bir maliyet

Detaylı

Ders Notlarının Creative Commons lisansı Feza BUZLUCA ya aittir. Lisans: http://creativecommons.org/licenses/by-nc-nd/3.0/

Ders Notlarının Creative Commons lisansı Feza BUZLUCA ya aittir. Lisans: http://creativecommons.org/licenses/by-nc-nd/3.0/ Eşzamanlı (Senkron) Ardışıl Devrelerin Tasarlanması (Design) Bir ardışıl devrenin tasarlanması, çözülecek olan problemin sözle anlatımıyla (senaryo) başlar. Bundan sonra aşağıda açıklanan aşamalardan geçilerek

Detaylı

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

Kısmen belirli ardışıl makinelerde durum indirgeme için yöntem geliştirme itüdergisi/d mühendislik Cilt:4, Sayı:2, 19-30 Nisan 2005 Kısmen belirli ardışıl makinelerde durum indirgeme için yöntem geliştirme Orhan UÇAR *, Ahmet DERVİŞOĞLU İTÜ Elektrik-Elektronik Fakültesi, Elektronik

Detaylı

Genel Graf Üzerinde Mutlak 1-merkez

Genel Graf Üzerinde Mutlak 1-merkez Genel Graf Üzerinde Mutlak 1-merkez Çözüm yöntemine geçmeden önce bazı tanımlara ihtiyaç vardır. Dikkate alınan G grafındaki düğümleri 1 den n e kadar numaralandırın. Uzunluğu a(i, j)>0 olarak verilen

Detaylı

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

(I) şimdiki. durum (S) belleği. saat. girşi ers Notlarının Creative Commons lisansı Feza BUZLUCA ya aittir. Lisans: http://creativecommons.org/licenses/by-nc-nd/3.0/ Eşzamanlı (Senkron) Ardışıl evreler (Synchronous Sequential Circuits) Ardışıl (sequential)

Detaylı

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

YZM ALGORİTMA ANALİZİ VE TASARIM DERS#9: AÇGÖZLÜ ALGORİTMALAR YZM 3207- ALGORİTMA ANALİZİ VE TASARIM DERS#9: AÇGÖZLÜ ALGORİTMALAR Aç Gözlü (Hırslı) Algoritmalar (Greedy ) Bozuk para verme problemi Bir kasiyer 48 kuruş para üstünü nasıl verir? 25 kuruş, 10 kuruş,

Detaylı

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

YZM YAPAY ZEKA DERS#4: BİLGİSİZ ARAMA YÖNTEMLERİ YZM 327 - YAPAY ZEKA DERS#4: BİLGİSİZ ARAMA YÖNTEMLERİ Bilgisiz Arama Stratejisi Sadece problem formülasyonundaki mevcut bilgiyi kullanır Durum bilgisinden yararlanmazlar Çözüme ulaşmak için hiçbir bilgi

Detaylı

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

VERİ MADENCİLİĞİ (Karar Ağaçları ile Sınıflandırma) Yrd.Doç.Dr. Kadriye ERGÜN VERİ MADENCİLİĞİ (Karar Ağaçları ile Sınıflandırma) Yrd.Doç.Dr. Kadriye ERGÜN kergun@balikesir.edu.tr İçerik Sınıflandırma yöntemleri Karar ağaçları ile sınıflandırma Entropi Kavramı ID3 Algoritması C4.5

Detaylı

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

Uzaktan Eğitim Uygulama ve Araştırma Merkezi JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java da Diziler Dizi Tanımlama ve İlk Değer Atama Dizi Elemanlarının Kullanılması Dizi İşlemleri Java da Diziler JAVA DA DİZİLER 4 Dizi; tek bir veri tipinde,

Detaylı

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Ş

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Ş 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Ş Veri Madenciliği : Bir sistemin veri madenciliği sistemi olabilmesi

Detaylı

VERİ YAPILARI VE PROGRAMLAMA

VERİ YAPILARI VE PROGRAMLAMA VERİ YAPILARI VE PROGRAMLAMA (BIP116) Yazar: Doç.Dr.İ.Hakkı.Cedimoğlu SAKARYA ÜNİVERSİTESİ Adapazarı Meslek Yüksekokulu Bu ders içeriğinin basım, yayım ve satış hakları Sakarya Üniversitesi ne aittir.

Detaylı

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ü

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ü 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ü Dersin Planı B+ Tree Temel bir veritabanı çalışma kodu Hash (Karma) Heap Ağaçlar

Detaylı

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

Temel Kavramlar. (r) Sıfırdan farklı kompleks sayılar kümesi: C. (i) Rasyonel sayılar kümesi: Q = { a b Bölüm 1 Temel Kavramlar Bu bölümde bağıntı ve fonksiyon gibi bazı temel kavramlar üzerinde durulacak, tamsayıların bazı özellikleri ele alınacaktır. Bu çalışma boyunca kullanılacak bazı kümelerin gösterimleri

Detaylı

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

Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması. Mustafa Kemal Üniversitesi Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması Ağaç, verilerin birbirine sanki bir ağaç yapısı oluşturuyormuş gibi sanal olarak bağlanmasıyla elde edilen hiyararşik yapıya sahip

Detaylı

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

Algoritma Geliştirme ve Veri Yapıları 10 Graf Veri Modeli. Mustafa Kemal Üniversitesi Algoritma Geliştirme ve Veri Yapıları 10 Graf Veri Modeli Graf, matematiksel anlamda, düğümler ve bu düğümler arasındaki ilişkiyi gösteren kenarlardan oluşan bir kümedir; mantıksal ilişki düğüm ile düğüm

Detaylı

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

Graf Veri Modeli. Düğümler kümesi. Kenarlar kümesi Graf Veri Modeli Graf, bir olay veya ifadenin düğüm ve çizgiler kullanılarak gösterilme şeklidir. Fizik, Kimya gibi temel bilimlerde ve mühendislik uygulamalarında ve tıp biliminde pek çok problemin çözümü

Detaylı

Ağaç (Tree) Veri Modeli

Ağaç (Tree) Veri Modeli Ağaç (Tree) Veri Modeli 1 2 Ağaç Veri Modeli Temel Kavramları Ağaç, bir kök işaretçisi, sonlu sayıda düğümleri ve onları birbirine bağlayan dalları olan bir veri modelidir; aynı aile soyağacında olduğu

Detaylı

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

Algoritma Geliştirme ve Veri Yapıları 3 Veri Yapıları. Mustafa Kemal Üniversitesi Algoritma Geliştirme ve Veri Yapıları 3 Veri Yapıları Veri yapısı, bilginin anlamlı sırada bellekte veya disk, çubuk bellek gibi saklama birimlerinde tutulması veya saklanması şeklini gösterir. Bilgisayar

Detaylı

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

10.Hafta Minimum kapsayan ağaçlar Minimum spanning trees (MST) 1 10.Hafta Minimum kapsayan ağaçlar Minimum spanning trees (MST) Kapsayan ağaç Spanning Tree (ST) Bir Kapsayan Ağaç (ST); G, grafındaki bir alt graftır ve aşağıdaki özelliklere sahiptir. G grafındaki tüm

Detaylı

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

KONU 4: DOĞRUSAL PROGRAMLAMA MODELİ İÇİN ÇÖZÜM YÖNTEMLERİ I KONU 4: DOĞRUSAL PROGRAMLAMA MODELİ İÇİN ÇÖZÜM YÖNTEMLERİ I 4.1. Dışbükeylik ve Uç Nokta Bir d.p.p. de model kısıtlarını aynı anda sağlayan X X X karar değişkenleri... n vektörüne çözüm denir. Eğer bu

Detaylı

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

köşe (vertex) kenar (edg d e) BÖLÜM 7 köşe (vertex) kenar (edge) Esk den Ank ya bir yol (path) Tanım 7.1.1: Bir G çizgesi (ya da yönsüz çizgesi) köşelerden oluşan bir V kümesinden ve kenarlardan oluşan bir E kümesinden oluşur. Herbir

Detaylı

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

Lineer Cebir. Doç. Dr. Niyazi ŞAHİN TOBB. İçerik: 1.1. Lineer Denklemlerin Tanımı 1.2. Lineer Denklem Sistemleri 1.3. Matrisler Lineer Cebir Doç. Dr. Niyazi ŞAHİN TOBB İçerik: 1.1. Lineer Denklemlerin Tanımı 1.2. Lineer Denklem Sistemleri 1.3. Matrisler Bölüm 1 - Lineer Eşitlikler 1.1. Lineer Eşitliklerin Tanımı x 1, x 2,..., x

Detaylı

Fonksiyon Optimizasyonunda Genetik Algoritmalar

Fonksiyon Optimizasyonunda Genetik Algoritmalar 01-12-06 Ümit Akıncı Fonksiyon Optimizasyonunda Genetik Algoritmalar 1 Fonksiyon Optimizasyonu Fonksiyon optimizasyonu fizikte karşımıza sık çıkan bir problemdir. Örneğin incelenen sistemin kararlı durumu

Detaylı

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

Algoritmalar. Heap Sort. Bahar 2017 Doç. Dr. Suat Özdemir 1 Algoritmalar Heap Sort Bahar 2017 Doç. Dr. Suat Özdemir 1 Heap Sort Heap Sort algoritması Merge Sort ve Insertion Sort algoritmalarının iyi özelliklerini bir arada toplar. Algoritma Insertion Sort gibi

Detaylı

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

ALGORİTMA ANALİZİ. Cumhuriyet Üniversitesi Bilgisayar Mühendisliği Bölümü ALGORİTMA ANALİZİ Cumhuriyet Üniversitesi Bilgisayar Mühendisliği Bölümü 2 Yürütme Zamanı (Running Time) Algoritmanın belirli bir işleme veya eyleme kaç kez gereksinim duyulduğunu gösteren bağıntıdır ve

Detaylı

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#8

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#8 ALGORİTMA VE PROGRAMLAMA I DERS NOTU#8 YZM 1105 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi 6. BÖLÜM 2 Çok Boyutlu Diziler Çok Boyutlu Dizi 3 Bir dizi aşağıdaki gibi bildirildiğinde

Detaylı

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

VERİ MADENCİLİĞİ (Kümeleme) Yrd.Doç.Dr. Kadriye ERGÜN VERİ MADENCİLİĞİ (Kümeleme) Yrd.Doç.Dr. Kadriye ERGÜN kergun@balikesir.edu.tr İçerik Kümeleme İşlemleri Kümeleme Tanımı Kümeleme Uygulamaları Kümeleme Yöntemleri Kümeleme (Clustering) Kümeleme birbirine

Detaylı

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

ELN1002 BİLGİSAYAR PROGRAMLAMA 2 ELN1002 BİLGİSAYAR PROGRAMLAMA 2 SIRALAMA ALGORİTMALARI Sunu Planı Büyük O Notasyonu Kabarcık Sıralama (Bubble Sort) Hızlı Sıralama (Quick Sort) Seçimli Sıralama (Selection Sort) Eklemeli Sıralama (Insertion

Detaylı

BLG311 Biçimsel Diller ve Otomatlar

BLG311 Biçimsel Diller ve Otomatlar BLG311 Biçimsel Diller ve Otomatlar Sonlu Durumlu Makineler A.Emre Harmancı Tolga Ovatman Ö.Sinan Saraç 2015 İçerik 1 Tanımlar ve Modeller (Mealy ve Moore) 2 Tanımlar ve Modeller (Mealy ve Moore) Hesaplayan

Detaylı

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

Ayrık Fourier Dönüşümü Ayrık Fourier Dönüşümü Tanım: 0 n N 1 aralığında tanımlı N uzunluklu bir dizi x[n] nin AYRIK FOURIER DÖNÜŞÜMÜ (DFT), ayrık zaman Fourier dönüşümü (DTFT) X(e jω ) nın0 ω < 2π aralığında ω k = 2πk/N, k =

Detaylı

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

Excel de Pivot Tablolar Tasarım ve Kullanımı FARUK ÇUBUKÇU EXCEL AKADEMİ Excel de Pivot Tablolar Tasarım ve Kullanımı Pivot tablolar; satışlar, siparişler gibi verileri gruplamayı, alt toplamlarını almayı ve filtreleme işlemleri yapmayı sağlayan

Detaylı

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

Algoritma Geliştirme ve Veri Yapıları 2 Veri Modelleri. Mustafa Kemal Üniversitesi Algoritma Geliştirme ve Veri Yapıları 2 Veri Modelleri Veri modelleri, veriler arasında ilişkisel ve sırasal düzeni gösteren kavramsal tanımlardır. Her program en azından bir veri modeline dayanır. Uygun

Detaylı

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

BİLGİSAYAR PROGRAMLAMA. Algoritma ve Akış Şemaları BİLGİSAYAR PROGRAMLAMA Algoritma ve Akış Şemaları Algoritma tanımı Algoritma özellikleri Algoritma tasarımı Akış şemaları Dallanma simgeleri Döngü simgeleri Akış şeması tasarımı Akış şeması örnekleri Konu

Detaylı

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,

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, TAMSAYILAR Z = {.., -, -, -, 0,,,, } kümesinin her bir elemanına tamsayı denir. Burada, + Z = {,,,...} kümesine, pozitif tamsayılar kümesi denir. Z = {...,,,,} kümesine, negatif tamsayılar kümesi denir.

Detaylı

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I ALGORİTMA VE PROGRAMLAMA I YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Diziler Dizi Nedir? Dizilerin Bildirimi Dizilere Başlangıç Değeri Verme Dizilerde Arama

Detaylı

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

ELN1002 BİLGİSAYAR PROGRAMLAMA 2 ELN1002 BİLGİSAYAR PROGRAMLAMA 2 VERİ YAPILARI Sunu Planı Kendini-gösteren Yapılar Dinamik Bellek Tahsisi Bağlı Listeler Yığınlar Kuyruklar Ağaçlar 1 Veri Yapıları Şu ana kadar, diziler, matrisler ve yapılar

Detaylı

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

VERİ YAPILARI. GRAPH LAR Düzce Üniversitesi Teknoloji Fakültesi ÖĞR.GÖR.GÜNAY TEMÜR 1 VERİ YAPILARI GRAPH LAR Düzce Üniversitesi Teknoloji Fakültesi ÖĞR.GÖR.GÜNAY TEMÜR 1 GRAPH (ÇİZGE - GRAF) Terminoloji Çizge Kullanım Alanları Çizge Gösterimi Komşuluk Matrisi Komşuluk Listesi Çizge Üzerinde

Detaylı

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

Graflar bilgi parçaları arasındaki ilişkileri gösterirler. Graflar (Graphs) Graf gösterimi Uygulama alanları Graf terminolojisi Depth first dolaşma Breadth first dolaşma Topolojik sıralama Yrd.Doç.Dr. M. Ali Akcayol Graflar Graflar bilgi parçaları arasındaki ilişkileri

Detaylı

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

İÜ AÇIK VE UZAKTAN EĞİTİM FAKÜLTESİ. Süreç İyileştirme Standardı Dök. No: AUZEF-SS-1.2-11 Yayın Tarihi:30.12.2015 Rev No:00 Rev Tarihi: Sayfa 1 / 12 1. AMAÇ İÜ AUZEF süreçlerinin kalite, verimlik ve etkinliğini arttırmak için yapılan sürekli iyileştirme çalışmalarında

Detaylı

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

Max - Min Heap Tree (Max ve Min Yığıt Ağaçları) Veri Yapıları ve Algoritmalar 2 - Mustafa EGE Ders Notları Max - Min Heap Tree (Max ve Min Yığıt Ağaçları) Veri Yapıları ve Algoritmalar 2 - Mustafa EGE Ders Notları Max - Min Heap Öncelikli kuyruk konusunu hatırlayın. Kuyruğa sonradan eklenmesine rağmen öncelik

Detaylı

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

KABA KÜME TEORİSİ (Rough Set Theory) Dr. Sedat TELÇEKEN KABA KÜME TEORİSİ (Rough Set Theory) Dr. Sedat TELÇEKEN Giriş Bilgi teknolojisindeki gelişmeler ve verilerin dijital ortamda saklanmaya başlanması ile yeryüzündeki bilgi miktarı her 20 ayda iki katına

Detaylı

Yrd. Doç. Dr. Caner ÖZCAN

Yrd. Doç. Dr. Caner ÖZCAN Yrd. Doç. Dr. Caner ÖZCAN BAĞLI LİSTELER Bağlı listeler konusuna çalışmanın bazı faydaları var. Bağlı listeler gerçek programlarda kullanılabilecek bir veri yapısıdır. Bağlı listelerin güçlü ve zayıf yönlerini

Detaylı

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

1. GİRİŞ Kılavuzun amacı. Bu bölümde; 1. GİRİŞ Bu bölümde; Kılavuzun amacı EViews Yardım EViews Temelleri ve Nesneleri EViews ta Matematiksel İfadeler EViews Ana Ekranındaki Alanlar 1.1. Kılavuzun amacı Ekonometri A. H. Studenmund tarafından

Detaylı

Zeki Optimizasyon Teknikleri

Zeki Optimizasyon Teknikleri Zeki Optimizasyon Teknikleri Tabu Arama (Tabu Search) Doç.Dr. M. Ali Akcayol Tabu Arama 1986 yılında Glover tarafından geliştirilmiştir. Lokal minimum u elimine edebilir ve global minimum u bulur. Değerlendirme

Detaylı

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

İkinci dersin notlarında yer alan Gepetto Marangozhanesi örneğini hatırlayınız. ISLE 403 YÖNEYLEM ARAŞTIRMASI DERS 3 NOTLAR DP Modellerinin Standart Biçimde Gösterimi: İkinci dersin notlarında yer alan Gepetto Marangozhanesi örneğini hatırlayınız. Gepetto Marangozhanesi için DP modeli

Detaylı

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

ÖNSÖZ ŞEKİL LİSTESİ TABLO LİSTESİ İÇİNDEKİLER ÖNSÖZ ii ŞEKİL LİSTESİ v TABLO LİSTESİ vii ÖZET viii SUMMARY ix BÖLÜM 1. GİRİŞ 1 1.1. YÜKLENİCİ FİRMALARDA İNŞAAT EKİPMANI YÖNETİMİ PROBLEMİNİN ÖNEMİ 1 1.2. PROBLEMİN TANIMLANMASI 3 1.3. YÜKLENİCİ

Detaylı

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

Yrd. Doç. Dr. A. Burak İNNER Bilgisayar Mühendisliği Yrd. Doç. Dr. A. Burak İER Bilgisayar Mühendisliği Algoritma Analizi İçerik: Temel Kavramlar Yinelemeli ve Yinelemesiz Algoritma Analizi Asimptotik otasyonlar Temel Kavramlar Algoritma: Bir problemin çözümüne

Detaylı

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

MONTAJ ÇİZİMİN ÖZELLİKLERİ VE GEREKLİ BİLGİLER. MONTAJ ÇİZİMİN ÖZELLİKLERİ VE GEREKLİ BİLGİLER. Montaj Çizimleri, tasarımı yapılan makine ya da mekanizma parçalarının işlev görecekleri konumlarda birbirine takılı haldeki çizimleridir. Parçaları birbirine

Detaylı

YZM YAPAY ZEKA DERS#6: REKABET ORTAMINDA ARAMA

YZM YAPAY ZEKA DERS#6: REKABET ORTAMINDA ARAMA YZM 3217- YAPAY ZEKA DERS#6: REKABET ORTAMINDA ARAMA Oyun Oynama Çoklu vekil ortamı-her bir vekil karar verirken diğer vekillerin de hareketlerini dikkate almalı ve bu vekillerin onun durumunu nasıl etkileyeceğini

Detaylı

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

GELİŞMİŞ ŞİFRELEME STANDARDI - AES GELİŞMİŞ ŞİFRELEME STANDARDI - AES Şifreleme algoritmalarına yapılan saldırılarda kullanılan yöntemin dayanıklı olması o algoritmanın gücünü gösterir. Aes in ortaya çıkışının temelinde Des şifreleme algoritmasının

Detaylı

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

ÜNİT E ÜNİTE GİRİŞ. Algoritma Mantığı. Algoritma Özellikleri PROGRAMLAMA TEMELLERİ ÜNİTE 3 ALGORİTMA PROGRAMLAMA TEMELLERİ ÜNİTE 3 ALGORİTMA GİRİŞ Bilgisayarların önemli bir kullanım amacı, veri ve bilgilerin kullanılarak var olan belirli bir problemin çözülmeye çalışılmasıdır. Bunun için, bilgisayarlar

Detaylı

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

Temel Bilgisayar Programlama Final Sınavı Çalışma Notları Diziler Temel Bilgisayar Programlama Final Sınavı Çalışma Notları (Dr. Övünç ÖZTÜRK, Dr. Tahir Emre KALAYCI) (İnşaat Mühendisliği ve Gıda Mühendisliği Grupları İçin) Diziler aynı türden bilgileri saklamak

Detaylı

Web Madenciliği (Web Mining)

Web Madenciliği (Web Mining) Web Madenciliği (Web Mining) Hazırlayan: M. Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Konular Denetimli Öğrenmenin Temelleri Karar Ağaçları Entropi ID3 Algoritması C4.5 Algoritması Twoing

Detaylı

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

VERİ YAPILARI LİSTELER. Yrd. Doç. Dr. Murat GÖK Bilgisayar Mühendisliği Bölümü YALOVA ÜNİVERSİTESİ VERİ YAPILARI LİSTELER Yrd. Doç. Dr. Murat GÖK Bilgisayar Mühendisliği Bölümü YALOVA ÜNİVERSİTESİ Bağlı Listeler Aynı kümeye ait veri parçalarının birbirlerine bellek üzerinde, sanal olarak bağlanmasıyla

Detaylı

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ı

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ı KTÜ Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü Sayısal Tasarım Laboratuarı SEVİYE MODLU ARDIŞIL DEVRELER - GENEL TANITIM Seviye modlu ardışıl devreler, kombinasyonal devrelere geri besleme özelliği

Detaylı

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

BLM-431 YAPAY ZEKA. Ders-3 Durum Uzayında Arama. Yrd. Doç. Dr. Ümit ATİLA BLM-431 YAPAY ZEKA Ders-3 Durum Uzayında Arama Yrd. Doç. Dr. Ümit ATİLA umitatila@karabuk.edu.tr http://web.karabuk.edu.tr/umitatilla/ Dersin Hedefleri Durum uzayı temsilini öğrenmek ve durum uzayında

Detaylı

23. Sistem denge denklemlerinin direkt kurulması

23. Sistem denge denklemlerinin direkt kurulması . Sistem denge denklemlerinin direkt kurulması. Sistem denge denklemlerinin direkt kurulması Sonlu elemanlar metodu el hesapları için değil, bilgisayarda yazılımlar ile kullanılması için geliştirilmiştir.

Detaylı

8.Konu Vektör uzayları, Alt Uzaylar

8.Konu Vektör uzayları, Alt Uzaylar 8.Konu Vektör uzayları, Alt Uzaylar 8.1. Düzlemde vektörler Düzlemdeki her noktası ile reel sayılardan oluşan ikilisini eşleştirebiliriz. Buna P noktanın koordinatları denir. y-ekseni P x y O dan P ye

Detaylı

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

YZM 5257 YAPAY ZEKA VE UZMAN SİSTEMLER DERS#6: GENETİK ALGORİTMALAR YZM 5257 YAPAY ZEKA VE UZMAN SİSTEMLER DERS#6: GENETİK ALGORİTMALAR Sınıflandırma Yöntemleri: Karar Ağaçları (Decision Trees) Örnek Tabanlı Yöntemler (Instance Based Methods): k en yakın komşu (k nearest

Detaylı

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

Dosya Sıkıştırma (File Compression) Kütük Organizasyonu 1 Dosya Sıkıştırma (File Compression) Kütük Organizasyonu İçerik Dosya sıkıştırma nedir? Dosya sıkıştırma yöntemleri nelerdir? Run-Length Kodlaması Huffman Kodlaması Kütük Organizasyonu 2 Dosya Sıkıştırma

Detaylı

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

Bitirme Ödevi Sunumu PLATFORM BAĞIMSIZ BENZETİM PROGRAMI. Danışman : Yrd.Doç.Dr. D Feza BUZLUCA Gökhan Akın ŞEKER Bitirme Ödevi Sunumu BERKELEY RISC I işlemcisi İÇİN PLATFORM BAĞIMSIZ BENZETİM PROGRAMI Danışman : Yrd.Doç.Dr. D Feza BUZLUCA 0495 0639 Sunum Planı Ödev konusu hakkında Berkeley RISC I işlemcisi hakkında

Detaylı

VEKTÖR UZAYLARI 1.GİRİŞ

VEKTÖR UZAYLARI 1.GİRİŞ 1.GİRİŞ Bu bölüm lineer cebirin temelindeki cebirsel yapıya, sonlu boyutlu vektör uzayına giriş yapmaktadır. Bir vektör uzayının tanımı, elemanları skalar olarak adlandırılan herhangi bir cisim içerir.

Detaylı

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

BLM-431 YAPAY ZEKA. Ders-5 Bilgili Arama Yöntemleri. Yrd. Doç. Dr. Ümit ATİLA BLM-431 YAPAY ZEKA Ders-5 Bilgili Arama Yöntemleri Yrd. Doç. Dr. Ümit ATİLA umitatila@karabuk.edu.tr http://web.karabuk.edu.tr/umitatilla/ Arama Grafları Eğer arama uzayı ağaç yapısından değil de graf

Detaylı

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

BULANIK MANTIK VE SİSTEMLERİ 2014 2015 BAHAR DÖNEMİ ÖDEV 1. Müslüm ÖZTÜRK 148164001004 Bilişim Teknolojileri Mühendisliği ABD Doktora Programı BULANIK MANTIK VE SİSTEMLERİ 2014 2015 BAHAR DÖNEMİ ÖDEV 1 Müslüm ÖZTÜRK 148164001004 Bilişim Teknolojileri Mühendisliği ABD Doktora Programı Mart 2015 0 SORU 1) Bulanık Küme nedir? Bulanık Kümenin (fuzzy

Detaylı

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

İÇİNDEKİLER. Önsöz...2. Önermeler ve İspat Yöntemleri...3. Küme Teorisi Bağıntı Fonksiyon İşlem...48 İÇİNDEKİLER Önsöz...2 Önermeler ve İspat Yöntemleri...3 Küme Teorisi...16 Bağıntı...26 Fonksiyon...38 İşlem...48 Sayılabilir - Sonlu ve Sonsuz Kümeler...56 Genel Tarama Sınavı...58 Önermeler ve İspat Yöntemleri

Detaylı

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

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 1 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 Sembol-tablosu problemi 2 Doğrudan erişim tablosu 3 4 Çözüm

Detaylı

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

Büyük Veri Analitiği (Big Data Analytics) Büyük Veri Analitiği (Big Data Analytics) M. Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Bu dersin sunumları, Mining of Massive Datasets, Jure Leskovec, Anand Rajaraman, Jeffrey David

Detaylı

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

Çanakkale Onsekiz Mart Üniversitesi. Bilgisayar Mühendisliği Bölümü Çanakkale Onsekiz Mart Üniversitesi Bilgisayar Mühendisliği Bölümü Skip List(Atlamalı Liste) Veri Yapısı Seminer-30.03.2007/SkipList 1 Temel İhtiyaçlar Nelerdir? 1. Bilgisayarda verileri belirli yapıda

Detaylı

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

VERİ TABANI YÖNETİM SİSTEMLERİ Melih BÖLÜKBAŞI VERİ TABANI YÖNETİM SİSTEMLERİ Melih BÖLÜKBAŞI Dersin Hedefleri Veri Tabanı Kullanıcıları Veri Modelleri Veri Tabanı Tasarımı İlişkisel VT Kavramsal Tasarımı (Entity- Relationship, ER) Modeli VT KULLANICILARI

Detaylı

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

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 1.GRUPLAR Tanım 1.1. G boş olmayan bir küme ve, G de bir ikili işlem olsun. (G, ) cebirsel yapısına aşağıdaki aksiyomları sağlıyorsa bir grup denir. 1), G de bir ikili işlemdir. 2) a, b, c G için a( bc)

Detaylı

KISITLI OPTİMİZASYON

KISITLI OPTİMİZASYON KISITLI OPTİMİZASYON SİMPLEKS YÖNTEMİ Simpleks Yöntemi Simpleks yöntemi iteratif bir prosedürü gerektirir. Bu iterasyonlar ile gerçekçi çözümlerin olduğu bölgenin (S) bir köşesinden başlayarak amaç fonksiyonunun

Detaylı

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.

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. 5.SUNUM 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. Günlük hayatta sıklıkla kullanılmakta olan olasılık bir olayın ortaya

Detaylı

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

Sözlük Kullanarak Türkçe için Kavram Madenciliği Metotları Geliştirme 1 Cem Rıfkı Aydın, 1 Ali Erkan, 1 Tunga Güngör, 2 Hidayet Takçı 1 Boğaziçi Üniversitesi, 2 Cumhuriyet Üniversitesi Sözlük Kullanarak Türkçe için Kavram Madenciliği Metotları Geliştirme AB 14 7 Şubat 2014

Detaylı

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I ALGORİTMA VE PROGRAMLAMA I Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Diziler Dizi Nedir? Dizilerin Bildirimi

Detaylı

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

Veritabanı Tasarımı ve Yönetimi. Uzm. Murat YAZICI Veritabanı Tasarımı ve Yönetimi Uzm. Murat YAZICI Veritabanı Tasarımı - Projenin tasarım aşamasında veritabanı tasarımı çok iyi yapılmalıdır. Daha sonra yapılacak değişiklikler sorunlar çıkartabilir veya

Detaylı

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

DENEY 3: DTMF İŞARETLERİN ÜRETİLMESİ VE ALGILANMASI DENEY 3: DTMF İŞARETLERİN ÜRETİLMESİ VE ALGILANMASI AMAÇ: DTMF işaretlerin yapısının, üretim ve algılanmasının incelenmesi. MALZEMELER TP5088 ya da KS58015 M8870-01 ya da M8870-02 (diğer eşdeğer entegreler

Detaylı

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. vardır. 3) a G için denir) vardır. 1.GRUPLAR Tanım 1.1. G boş olmayan bir küme ve, G de bir ikili işlem olsun. (G, ) cebirsel yapısına aşağıdaki aksiyomları sağlıyorsa bir grup denir. 1) a, b, c G için a ( b c) ( a b) c (Birleşme özelliği)

Detaylı

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.

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. 1. GRUPLAR Tanım 1.1. G boş olmayan bir küme ve, G de bir ikili işlem olsun. (G yapısına aşağıdaki aksiyomları sağlıyorsa bir grup denir., ) cebirsel 1) a b cg,, için a( bc) ( ab) c (Birleşme özelliği)

Detaylı

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

Bu kısımda işlem adı verilen özel bir fonksiyon çeşidini ve işlemlerin önemli özelliklerini inceleyeceğiz. Bölüm 3 Gruplar Bu bölümde ilk olarak bir küme üzerinde tanımlı işlem kavramını ele alıp işlemlerin bazı özelliklerini inceleyeceğiz. Daha sonra kümeler ve üzerinde tanımlı işlemlerden oluşan cebirsel

Detaylı

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

ICATT ÇEVİRİ UYGULAMASI SİSTEM MİMARİSİ VE VERİTABANI TASARIMI ICATT ÇEVİRİ UYGULAMASI SİSTEM MİMARİSİ VE VERİTABANI TASARIMI İÇİNDEKİLER 1. GİRİŞ 1.1. KAPSAM 1.2. SİSTEM ÖZETİ 1.3. DOKÜMAN ÖZETİ 2. ÇALIŞMA KONSEPTİ 2.1. Yeni Kullanıcı Oluşturmak 2.2. Şirket Bilgilerini

Detaylı

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

Proje/Sipariş/İş Emri (PSI) Bazında Maliyet Analizi Proje/Sipariş/İş Emri (PSI) Bazında Maliyet Analizi Amaç ve Fayda Bilindiği gibi mamul maliyetleri direkt hammadde (direkt ilk madde ve ambalaj), direkt işçilik ve genel üretim giderlerinden oluşmaktadır.

Detaylı

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

İKİ BOYUTLU ÇUBUK SİSTEMLER İÇİN YAPI ANALİZ PROGRAM YAZMA SİSTEMATİĞİ İKİ BOYUTLU ÇUBUK SİSTEMLER İÇİN YAPI ANALİZ PROGRAM YAZMA SİSTEMATİĞİ Yapı Statiği nde incelenen sistemler çerçeve sistemlerdir. Buna ek olarak incelenen kafes ve karma sistemler de aslında çerçeve sistemlerin

Detaylı

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

YAPILAR BİRLİKLER SAYMA SABİTLERİ/KÜMELERİ. 3. Hafta YAPILAR BİRLİKLER SAYMA SABİTLERİ/KÜMELERİ 3. Hafta YAPILAR Farklı veri tipindeki bilgilerin bir araya gelerek oluşturdukları topluluklara yapı (structure) denir. Yani yapılar, birbiriyle ilişkili değişkenlerin

Detaylı

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

Bit, Byte ve Integer. BIL-304: Bilgisayar Mimarisi. Dersi veren öğretim üyesi: Yrd. Doç. Dr. Fatih Gökçe Bit, Byte ve Integer BIL-304: Bilgisayar Mimarisi Dersi veren öğretim üyesi: Yrd. Doç. Dr. Fatih Gökçe Ders kitabına ait sunum dosyalarından adapte edilmiştir: http://csapp.cs.cmu.edu/ Adapted from slides

Detaylı

Algoritmalar ve Karmaşıklık

Algoritmalar ve Karmaşıklık Algoritmalar ve Karmaşıklık Ders 11 Algoritma Ayrık matematikte karşılaşılan bir çok problem sınıfı mevcuttur. Örneğin, verilen tamsayı grubu içindeki en büyük olanının bulunması, verilen bir kümenin bütün

Detaylı

BİÇİMSEL DİLLER VE OTOMATLAR

BİÇİMSEL DİLLER VE OTOMATLAR BİÇİMSEL DİLLER VE OTOMATLAR Hazırlayanlar: Prof.Dr. Emre HARMANCI Yard.Doç.Dr. Osman Kaan EROL İçindekiler: 1. Sonlu Durumlu Makinalar 1.1. Tanım ve modeller (Mealy ve Moore Modelleri) 1.2. Algoritmik

Detaylı

ISK116 - Bölüm 1. Grup Teknolojisi

ISK116 - Bölüm 1. Grup Teknolojisi ISK - Bölüm Grup Teknolojisi Grup Teknolojisi (GT) Grup teknolojisi benzerliklerden faydalanarak büyük ve karmaşık bir üretim sisteminin, küçük ve kolay kontrol edilebilir sistemlere dönüştürülmesi hedeflenmektedir.

Detaylı

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

3.2. DP Modellerinin Simpleks Yöntem ile Çözümü Primal Simpleks Yöntem 3.2. DP Modellerinin Simpleks Yöntem ile Çözümü 3.2.1. Primal Simpleks Yöntem Grafik çözüm yönteminde gördüğümüz gibi optimal çözüm noktası, her zaman uygun çözüm alanının bir köşe noktası ya da uç noktası

Detaylı

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

Algoritma Geliştirme ve Veri Yapıları 7 Liste ve Bağlantılı Liste. Mustafa Kemal Üniversitesi Algoritma Geliştirme ve Veri Yapıları 7 Liste ve Bağlantılı Liste Liste birbiriyle ilişkili verileri içeren bir kümedir, programlama açısından liste en basitinden bir dizi üzerinde tutulur. Dizi elemanları

Detaylı

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

Tanım 2.1. X boş olmayan bir küme olmak üzere X den X üzerine bire-bir fonksiyona permütasyon denir. 2. SİMETRİK GRUPLAR Tanım 2.1. X boş olmayan bir küme olmak üzere X den X üzerine bire-bir fonksiyona permütasyon denir. Tanım 2.2. boş olmayan bir küme olsun. ile den üzerine bire-bir fonksiyonlar kümesini

Detaylı

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

A { x 3 x 9, x } kümesinin eleman sayısı A { x : x 1 3,x } kümesinin eleman sayısı KÜMELER KÜMELER Küme, nesnelerin iyi tanımlanmış bir listesidir. Kümeyi oluşturan nesnelerin her birine kümenin elemanı denir. Kümeler genellikle A, B, C,... gibi büyük harflerle gösterilir. x nesnesi A kümesinin

Detaylı

ÜNİTE 1: TEMEL KAVRAMLAR

ÜNİTE 1: TEMEL KAVRAMLAR MATEMATİK ÜNİTE : TEMEL KAVRAMLAR Temel Kavramlar ADF 0 RAKAM Sayı oluşturmak için kullanılan sembollere... denir. 0 luk sayma düzenindeki rakamlar 0,,,... 8 ve 9 olup 0 tanedir. örnek a, b, c sıfırdan

Detaylı

Yrd. Doç. Dr. Caner ÖZCAN

Yrd. Doç. Dr. Caner ÖZCAN Yrd. Doç. Dr. Caner ÖZCAN BAĞLI LİSTELER Bağlı listeler konusuna çalışmanın bazı faydaları var. Bağlı listeler gerçek programlarda kullanılabilecek bir veri yapısıdır. Bağlı listelerin güçlü ve zayıf yönlerini

Detaylı

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

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 10. LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ Ders 10 LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ LINUX de Programlama LINUX işletim sistemi zengin bir programlama ortamı sağlar. Kullanıcılara sistemi geliştirme olanağı sağlar.

Detaylı

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

ELEKTRONİK ÇİZELGE. Hücreleri Biçimlendirme. Formülleri Kullanma. Verileri Sıralama. Grafik Oluşturma 1) HÜCRELERİ BİÇİMLENDİRME Hücreleri Biçimlendirme ELEKTRONİK ÇİZELGE Formülleri Kullanma Verileri Sıralama Grafik Oluşturma 1) HÜCRELERİ BİÇİMLENDİRME Elektronik Çizelge de sayıları; bin ayracı, yüzde oranı, tarih/saat ve para

Detaylı

İşletim Sistemlerine Giriş

İşletim Sistemlerine Giriş İşletim Sistemlerine Giriş Bellek Yönetimi (Memory Management) İşletim Sistemlerine Giriş - Ders10_02 1 Yazılım ile LRU Benzetimi Donanım kullanmadan LRU algoritmasının yazılım ile gerçekleştirimidir.

Detaylı

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

Ekle sekmesindeki Tablolar grubundaki Tablo seçeneği ile tablo oluşturulur. 4. EKLE SEKMESİ Ekle sekmesi Excel de tablo, grafik, köprü ve resim eklendiği sekmedir. 4.1. Tablolar Ekle sekmesindeki Tablolar grubundaki Tablo seçeneği ile tablo oluşturulur. Tablo oluşturulmak istenen

Detaylı

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

Sunum ve Sistematik 1. BÖLÜM: ÖNERMELER Sunum ve Sistematik. ÜNİTE: MANTIK KONU ÖZETİ Bu başlık altında, ünitenin en can alıcı bilgileri, kazanım sırasına göre en alt başlıklara ayrılarak hap bilgi niteliğinde konu özeti olarak sunulmuştur..

Detaylı