ĠSTANBUL TEKNĠK ÜNĠVERSĠTESĠ FEN BĠLĠMLERĠ ENSTĠTÜSÜ
YÜKSEK LĠSANS TEZĠ Serdar KEÇĠCĠ
Anabilim Dalı : Bilgisayar Mühendisliği Programı : Bilgisayar Mühendisliği TLPLAN-C: SÜREKLĠ DEĞĠġKENLERLE EġZAMANLI PLANLAMA VE ÇĠZELGELEME
ĠSTANBUL TEKNĠK ÜNĠVERSĠTESĠ FEN BĠLĠMLERĠ ENSTĠTÜSÜ
YÜKSEK LĠSANS TEZĠ Serdar KEÇĠCĠ
(504081528)
Tezin Enstitüye Verildiği Tarih : 04 Mayıs 2010 Tezin Savunulduğu Tarih : 10 Haziran 2010
Tez DanıĢmanı : Yrd. Doç. Dr. Sanem SARIEL TALAY (ĠTÜ)
Diğer Jüri Üyeleri : Prof. Dr. Nadia ERDOĞAN (ĠTÜ) Yrd. Doç. Dr. Esra ERDEM (SÜ) TLPLAN-C: SÜREKLĠ DEĞĠġKENLERLE
ÖNSÖZ
Çalışmalarımın her aşamasında bana desteklerini esirgemeyen, danışmanım Sanem SARIEL TALAY’a teşekkürlerimi sunarım. Ayrıca desteklerini her zaman yanımda hissettiğim değerli aileme de teşekkürlerimi sunarım.
ĠÇĠNDEKĠLER Sayfa ÖNSÖZ ...v ĠÇĠNDEKĠLER ... vii KISALTMALAR ... ix ÇĠZELGE LĠSTESĠ ... xi
ġEKĠL LĠSTESĠ... xiii
ÖZET... xv SUMMARY ... xvii 1. GĠRĠġ ...1 2. PLANLAMA ...3 2.1 Giriş ... 3 2.2 Planlama... 3
2.3 Planlama Ortamının İfade Edilmesi ... 4
2.3.1 Planlama domeni ...4 2.3.2 Planlama problemi ...5 2.3.3 Blok problemi...6 2.4 Planlama Dilleri... 7 2.4.1 STRIPS ...8 2.4.2 ADL ...9 2.4.3 PDDL ...9 2.5 Planlama Yöntemleri ...10
2.5.1 İleri durum uzayı arama yöntemi ... 10
2.5.2 Geri durum uzayı arama yöntemi ... 11
2.5.3 Kısmi sıralı planlama yöntemi ... 12
2.5.4 Hiyerarşik görev ağı planlama yöntemi ... 12
2.5.5 Grafik planlama ... 13
3. ÇĠZELGELEME... 15
3.1 Giriş ...15
3.2 Çizelgeleme ...15
3.2.1 Problemin temsili ... 18
3.2.1.1 Başlama zamanı seçimi 18 3.2.1.2 Aksiyon sıralama 19 4. EġZAMANLI PLANLAMA VE ÇĠZELGELEME ... 21
4.1 Giriş ...21
4.2 Eşzamanlı Planlama ve Çizelgeleme Problemlerinin Temsil Edilmesi ...21
4.2.1 PDDL 2.1 ... 21
4.2.1.1 Sayısal ifadeler 22
4.2.2.1 Sayısal ifadeler 28 4.2.2.2 Sürekli ve paralel aksiyonların modellenmesi 29
4.3 Eşzamanlı Planlama ve Çizelgeleme Yöntemleri ... 30
4.3.1 Ayrık Planlama ve Çizelgeleme ... 30
4.3.2 Sıralı Planlama ve Çizelgeleme ... 32
4.3.3 Birleşik Planlama ve Çizelgeleme ... 34
4.3.3.1 ILP tabanlı planlama 34 4.3.3.2 SAT tabanlı planlama 36 4.3.3.3 DEP yöntemi 37 5. SÜREKLĠ DEĞĠġĠMLER ĠÇEREN PLANLAMA PROBLEMLERĠ ... 39
5.1 Giriş ... 39
5.1.1 Ayrık değişimler ... 39
5.1.2 Sürekli değişimler ... 40
5.1.3 PDDL+ ... 41
6. TLPlan-C : SÜREKLĠ DEĞĠġKENLERLE EġZAMANLI PLANLAMA VE ÇĠZELGELEME ... 43
6.1 Giriş ... 43
6.2 TLPlan Yöntemi... 43
6.3 Sürekli Değişim İçeren Örnek Problem Tanımı ... 46
6.4 TLPlan-C ... 47
6.4.1 Süreklilik Modeli ... 48
6.4.2 Genişletilmiş ileri zincir algoritması ... 52
6.5 Optimal Çözüm ... 55 6.6 Örnek Senaryo ... 55 7. DENEYSEL SONUÇLAR ... 59 7.1 Giriş ... 59 7.2 Çözüm stratejileri ... 59 7.2.1 En iyi-öncelikli strateji ... 59
7.2.2 En iyi öncelikli strateji ile birlikte sezgisel fonksiyonların kullanımı ... 61
7.2.3 Derinlik öncelikli strateji ... 63
7.2.4 Ölçeklenebilirlik ... 65
8. TARTIġMA VE ĠLERĠ ÇALIġMALAR ... 69
KISALTMALAR
ADL : Action Definition Language DEP : Decision Epoch Planning HTN : Hierarchical Task Network ILP : Integer Linear Programming IP : Integer Programming
LP : Linear Programming
PDDL : Planning Domain Definition Langugage POP : Partial Order Planning
ÇĠZELGE LĠSTESĠ
Sayfa Çizelge 2.1 : Boyama problem operatörleri ... 5 Çizelge 2.2 : Blok probleminde yeralan operatörler ... 7 Çizelge 2.3 : STRIPS,ADL ve PDDL karşılaştırması. [3][5] ...10
Çizelge 7.1 : Eniyi öncelikli yöntemi için deney sonuçları ...60 Çizelge 7.2 : Derinlik öncelikli yöntem için ölçme sonuçları ...64
ġEKĠL LĠSTESĠ
Sayfa
ġekil 2.1 : Boyama problemi için başlangıç durumu ... 4
ġekil 2.2 : Blok problemi için problem domeni ... 6
ġekil 2.3 : Blok probleminin başlangıç ve hedef durumu temsilleri... 7
ġekil 2.4 : Blok domenindeki örnek bir aksiyonun STRIPS ile temsili ... 8
ġekil 2.5 : Blok domenindeki örnek bir aksiyonun ADL ile temsili ... 9
ġekil 2.6 : Blok domenindeki örnek bir aksiyonun PDDL ile temsili ... 9
ġekil 2.7 : İleri durum uzayı arama yöntemi ...11
ġekil 2.8 : Geri durum uzayı arama yöntemi ...11
ġekil 2.9 : Boyama problem için örnek bir hiyerarşik görev ağı ...12
ġekil 4.1 : Sayısal ifadelerin kullanıldığı örnek bir problem domeni ...23
ġekil 4.2 : Örnek bir süreli aksiyon ...24
ġekil 4.3 : Planlama ölçütünün kullanıldığı örnek problem domeni ...25
ġekil 4.4 : Paralel yürütülen aksiyonlar içeren örnek bir plan...27
ġekil 4.5 : TLplan dilinde fonksiyonların kullanım ...28
ġekil 4.6 : TLplan dilinde aksiyon temsili ...29
ġekil 4.7 : Crickey3 planlayıcısının çalışma yapısı ...30
ġekil 4.8 : Örnek bir zamana göre kısıtlı ağ ...33
ġekil 4.9 : SAT tabanlı planlama mimarisi ...36
ġekil 5.1 : Ayrık değişimler içeren örnek bir aksiyon ...40
ġekil 5.2 : Proses temsili içeren örnek bir problem domeni ...41
ġekil 6.1 : Depo problem domeni ...46
ġekil 6.2 : TLPlan-C mimarisi ...48
ġekil 6.3 : Depo domeni için örnek bir senaryo ...55
ġekil 6.4 : TLPlan tarafından oluşturulan çözüm ...58
ġekil 6.5 : TLPlan-C tarafından oluşturulan optimal çözüm. ...58
ġekil 7.1 : TLPlan-C ile sezgisel fonksiyonların kullanımının analizi ...63
ġekil 7.2 : Derinlik öncelikli strateji ile bulunan çözümlerin maliyet grafiği ...65
ġekil 7.3 : Problem boyutuna göre çözüm süresi grafiği ...66
TLPLAN-C: SÜREKLĠ DEĞĠġKENLERLE EġZAMANLI PLANLAMA VE ÇĠZELGELEME
ÖZET
Yapay zeka konusunda son yıllarda kaydedilen gelişmeler, problem çözme algoritmalarının, kurgulanmış basit bulmacaların yanında gerçekçi problemler için de çözüm sunabilmelerini sağlamaktadır. Ancak, bir problemin çözülebilmesi için önce biçimsel olarak tanımının doğru bir şekilde yapılması gerekmektedir. Dolayısıyla, problem çözme için algoritmalar tasarlamanın yanında uygun modelleme yöntemleri konusunda geniş bir araştırma alanı oluşmuş ve bu konuda yapılan araştırmalar ile problemlerin daha gerçekçi bir şekilde temsil edilmesi sağlanmıştır.
Bir etmenin gerçekçi bir problemi çözebilmesi ve karmaşık hedef durumlarına ulaşabilmesi için planlama yapması gerekmektedir. Planlama kısaca, modellenen bir problem ve problem ortamı için problem tanımında verilen kurallar göz önüne alınarak, hedefe ulaştıracak aksiyon dizisinin bulunmasıdır.
Etmenler aksiyonları yürütürken bazı kaynaklara ihtiyaç duyabilirler. Buna bağlı olarak, çizelgeleme, aksiyonlara kaynak kısıtlarını ihlal etmeyecek şekilde yürütme zamanı atanması işidir.
Planlama aşamasında seçilen aksiyonların kaynak atamaları, belirlenen bir amaç fonksiyonunu eniyileyecek şekilde yapılır. Özellikle kaynak kısıtlarının bulunduğu problemlerin çözüm kalitesi hem planlamanın hem de çizelgelemenin başarımına bağlıdır. Bu konudaki genel yaklaşım, planlama ve çizelgeleme adımlarının ardı sıra yürütülmesidir. Fakat, aynı problemi çözen birbirinden farklı birçok aksiyon dizisi olabileceğinden, ve her aksiyon dizisi için farklı bir çizelgeleme yapılabileceğinden, farklı başarımlı sonuçlar elde edilebilir. Eniyi sonuçların alınabilmesi ve kaynakların etkin şekilde atanabilmesi için planlama ile çizelgelemenin eşzamanlı yürütülmesi gerekmektedir. Bu gereklilikten dolayı, geliştirilen birleştirilmiş planlama ve
yürütür. Bu sistemler, zamanla doğrudan ilişkili olduğundan, zaman değerleriyle ilgili olan problemlerin de modellenmesi mümkündür.
Eş zamanlı planlama ve çizelgeleme sistemleri, zamana bağlı olarak modellenmesi gereken değişimleri genellikle ayrık değişimler olarak modellerler. Fakat birden çok etmenin bulunduğu, değişikliklerin sürekli olduğu ve değişen değerlerin birbiriyle ilişki içerisinde bulunduğu ortamlarda, ayrık modelleme ile geçerli bir çözüm oluşturulamayabilir.
Bu çalışmada, zamanla ilgili kısıtların ele alınabilmesi için birleşik bir planlama ve çizelgeleme sistemi kullanılarak, ayrık değişimlerle birlikte sürekli değişimleri de göz önüne alan bir model önerilmiş ve bu modeli kullanarak paylaşılan kaynak kısıtları içeren problemleri çözecek bir planlayıcı geliştirilmiştir. Bu planlayıcı literatürde Tlplan olarak önerilmiş planlayıcı sistemine bir takım iyileştirmeler eklenerek geliştirilmiştir. Geliştirilen TLPlan-C sisteminde, karmaşık kaynakların temsilinin önerilen süreklilik modeli yardımıyla yapılması sağlanmıştır. TLPlan-C zaman kısıtlarının bulunduğu, sürekliliğin modellenmesinin gerekli olduğu problemlerde eniyi çözümleri oluşturmaktadır.
TLPLAN-C: AN EXTENDED TEMPORAL PLANNER FOR MODELING CONTINUOUS CHANGE
SUMMARY
Recent advancements in artificial intelligence research enable reasoning methods to solve real world problems as well as trivial problems. However, in order to solve a realistic problem efficiently, a correct formal representation of the problem is needed. Therefore, new problem respresentation techniques are also under research to model realistic problem constraints.
An agent constructs a plan to achieve its goals in a complex problem domain. Briefly, planning is finding a sequence of actions to reach a goal state from an initial state by considering the defined rules in the domain definition.
Agents may also require some resources while executing actions in a constructed plan. Accordingly, scheduling is the process of assigning start times to the actions, so that all resource constraints in the domain definition are met.
An objective function is optimized when the resource assignments are made in the scheduling process. The overall solution quality for resource-constrainted problems depends on the performance of both planning and scheduling processes. Traditionally, “first plan, and then schedule” approach is employed as two consequtive processes. However, the quality of the solution may be affected by both the selected sequence of actions and the schedule of this sequence. Planning and scheduling should be integrated in order to assign the resources effectively and find optimal solutions. Integrated planning and scheduling systems simulatenously select actions and assign resources. As these systems also deal with time, they are able to solve problems involving temporal constaints.
solution for problems with shared resources and multiple agents, where changes are continuous and interrelated.
In this thesis, a novel realistic continuous planning model to handle temporal constraints is proposed, and an integrated planning and scheduling system, TLPlan-C, is developed. TLPlan-C has been developed as an extension to an existing temporal planner, TLPlan. This integrated system models continuous changes as well as discrete changes in planning problems. TLPlan-C generates optimal solutions for the problems that have complex resource constraints for which continuous changes should be modeled.
1. GĠRĠġ
Son zamanlarda yapay zeka araştırmaları, akıllı etmen sistemleri tasarlanmasını mümkün kılacak yöntemler üzerinde yoğunlaşmaktadır. Bir sistemin akıllı olabilmesi için, öncelikle mevcut durumda, hedef koşulları sağlamak için yürütülmesi gereken aksiyonların seçilebilmesi gereklidir. Aksiyon seçimi, planlama yöntemleri ile gerçekleştirilmektedir. İlk kullanılan planlama sisteminden bu yana, yalnızca basit problemlerin değil, daha karmaşık, gerçek problemlerin çözümünü de öngören sistemler geliştirilmiştir.
Gerçek dünyadaki problemlerin birçoğundaki önemli faktörlerden birisi de zamandır. Buna bağlı olarak akıllı bir sistemin tasarlanmasında ikinci gereksinim, seçilen aksiyonların, yürütülme zamanlarının belirlenmesidir. Birçok problemde, hangi aksiyonların yürütüleceğinin yanı sıra, seçilen aksiyonların ne zaman yürütüleceği de çözümün kalitesi üzerinde doğrudan etkilidir. Örneğin ay üzerinde, astronotlar ve robotlar tarafından yürütülen bir görevde, robotların enerji seviyelerinin ve astronotların oksijen kaynaklarının zamanla azalmasından dolayı, aksiyonların zamanlaması ve toplam görev süresi hayati önem taşımaktadır. Dolayısıyla, planlama kadar, aksiyonların ne zaman yürütüleceğine karar veren çizelgeleme sistemleri de, gerçek problemlerin çözümünde önem kazanmıştır.
Plan kalitesinin yürütülen aksiyonların maliyetiyle birlikte zaman değerlerine de bağlı olduğu gerçekçi problemlerde, eniyilemenin yapılabilmesi, hem planlama hem de çizelgelemeyle doğrudan ilişkilidir. Dolayısıyla, yüksek kalitede çözümlerin oluşturulabilmesi için planlama ve çizelgelemenin birlikte yürütülmesi gereklidir. Planlama ve çizelgelemenin eşzamanlı olarak gerçekleştirilmesinin, çözümün kalitesi ve çözülebilen problem çeşitliliği üzerinde önemli olumlu etkileri vardır. Böylelikle planlama problemlerinde, zaman değerleriyle doğrudan ilişkili aksiyonların tanımı ve zamana bağlı koşulların ele alınması sağlanabilmektedir.
Planlama yapılırken, problemin basitleştirilmesi için genellikle anlık değişimler kullanılır. Diğer bir deyişle değişimler gerçek dünyadaki gibi sürekli olarak değil, aksiyon yürütüldüğünde bir anda meydana gelecek şekilde modellenir. Örneğin bir hareket aksiyonu, etmen ilk konumundan son konumuna aksiyon yürütüldüğünde bir anda hareket edecek şekilde temsil edilir. Halbuki etmen gerçek dünyada, ilko konumdan son konuma hareket ederken, aradaki tüm noktalardan geçerek belli bir zaman içerisinde ulaşır. Bu anlık değişimin aksine sürekli bir değişimdir. Bazı gelişmiş problemlerin çözümü için bunun planlama probleminde anlık olarak modellenmesi problem çözüm kalitesini düşürür veya çözümü olanaksız hale getirir. Buna örnek olarak birbirleriyle çarpışmadan hareket etmek durumunda olan birden çok etmenin, ortak bir yol üzerinde hareketi verilebilir. Bu problemde, etmenlerin hareketi boyunca, konum bilgilerindeki değişim, sürekli değişim olarak gözönüne alınmadığı sürece, çarpışmaların engellendiği geçerli bir çözüm bulunması mümkün değildir.
Eşzamanlı planlama ve çizelgelemenin avantajlarını kullanılarak, içerisinde sürekli değişkenlerin de bulunduğu problemlerin çözümü için, TLPlan-C planlayıcısı geliştirilmiştir. TLPlan-C sisteminde, sürekli değişimleri modelleyebilmek için, bir süreklilik modeli, ve bu model kullanılarak, eşzamanlı planlama ve çizelgelemenin geçekleştirilmesi için, genişletilmiş bir ileri zincir yöntemiyle planlama algoritması geliştirilmiştir.
II. bölümde, klasik planlamada yer alan temel kavramların tanımı verilmiştir. III. bölümde çizelgeleme konusu ele alınarak, çizelgeleme yöntemleri incelenmiştir. IV. bölümde eşzamanlı planlama ve çizelgeleme yöntemleri açıklanarak, bu yöntemler karşılaştırılmıştır. V. bölümde planlamada sürekli değişmler örneklendirilmiştir. VI. bölüm yeni geliştirilen, sürekli değişkenler kullanarak eşzamanlı planlama ve çizelgeleme yapılmasını öngören TLPlan-C yöntemi açıklanmış ve örnek problem çözümleri verilmiştir. VII. bölümde TLPlan-C ve TLPlan için örnek problemler için deneysel sonuçlar verilmektedir. Son olarak VIII. bölümde sonuçlar tartışılmakta ve ileri çalışmalardan bahsedilmektedir.
2. PLANLAMA
2.1 GiriĢ
Bu bölümde planlama konusuna giriş olarak, planlama tanımı ile birlikte en basit planlama alt yapısını sunan klasik planlama konusu incelenmiştir. Klasik planlama konusu, diğer gelişmiş planlama yöntemlerinin temelini oluşturur.
2.2 Planlama
Yapay zeka yöntemleri konusunda yakın geçmişte önemli gelişmeler kaydedilmiştir. Daha karmaşık problemlerin ifade edilmesi ve çözülmesi, yeni algoritmalar ve ifade yöntemleri vasıtasıyla sağlanmıştır. Gerçek dünyadaki problemlerin ifade edilerek çözülmesini öngören yöntemlerden birisi de planlamadır. Planın tanımı şu şekilde verilebilir
“Plan, dünyanın belirtilen bir başlama durumunu, belirtilen hedef koşullarını sağlayan bir dünya durumuna dönüştüren operatör kompozisyonudur.” [1]
Planlama konusunda uğraşılan planlama problemleri çeşitlilik gösterir. Bir paketi bir şehirden bir başka şehre götürürken izlenmesi gereken yol ya da yatırım yapılırken maksimum kazanç minimum risk için yapılması gereken tercihler birer planlama örneğidir.
Planlama probleminde amaç bir hedef kümesini gerçekleştirmek, soyut bir işi yapmak ya da bir amaç fonksiyonunu optimize etmek gibi birçok tercihi kapsayabilir. Planlama problemleri kendi içinde birçok özelleşmiş problem barındırır. Bu problemler yol planlaması, ardışıl planları sıralama, üretim planlaması ve çizelgeleme gibi problemlerdir [2].
2.3 Planlama Ortamının Ġfade Edilmesi
Planlama ile bir problem çözülmeden önce, problem ortamının ve problemin, üzerinde otonom akıl yürütme yöntemleri uygulanabilecek bir yapıda ifade edilmesi gerekmektedir. Problem ortamı planlama domeni ve problem tanımı olmak üzere iki öğeden oluşur. Planlama domeni, problemin yürütüldüğü gerçek dünya ortamını modeller. Problem tanımı ise bu model üzerinde başlanacak olan durumunun ve erişilmek istenen hedef durumunun tanımını içerir.
2.3.1 Planlama domeni
Planlama domeni gerçek dünyadaki ortamı modellerken, gerçek dünyadaki olası değişik halleri modelleyebilecek bir durum yapısı kullanır. Gerçek dünyadaki değişiklikler, planlamadaki durumlar arası geçiş ile modellenir. Bu geçişi sağlayan yapı ise operatörlerdir. Domen temsilinde genel olarak, nesneler, ifadeler, operatörler, olmak üzere 3 farklı öğe vardır.
Örneğin kapı, merdiven tavan gibi nesnelerin boyanması gereken bir boyama probleminde [4], ortamdaki nesneler kapı, merdiven, fırça, boya ve tavandır. Planlamada ortamın durumunu temsil etmek için birinci-dereceden mantık gösterimini (first-order logic) kullanılır. Bu gösterime göre nesnelerin başlangıçtaki durumları Şekil 2.1’deki gibi ifade edilebilir.
kuru(kapı) kuru(merdiven) kuru(tavan) ⌐boyalı(kapı) ⌐boyalı(merdiven) ⌐boyalı(tavan)
ġekil 2.1: Boyama problemi için başlangıç durumu
Ayrıca ortamda değişiklik yapmak için bazı operatörlerin tanımlanması gerekir. Her operatörün ortama uygulanabilmesi için ön koşullarının sağlanmış olması gerekir ve her operatörün ortam üzerinde bir etkisi vardır. Ortamda mümkün olan operatörler Çizelge 2.1 :’de gösterilmiştir.
Çizelge 2.1 : Boyama problem operatörleri
Operatör Ön KoĢul Etki
firca-al el-bos ⌐(el-bos)
firca-elde
firca-boya firca-elde firca-boyali
tavan-boya firca-elde kuru(merdiven) firca-boyali ⌐kuru(tavan) boyali(tavan) ⌐(firca-boyali) kapı-boya firca-elde firca-boyali ⌐kuru(kapı) boyali(kapı) ⌐(firca-boyali) merdiven-boya firca-elde firca-boyali ⌐kuru(merdiven) boyali(merdiven) ⌐(firca-boyali)
firca-birak firca-elde el-bos
Operatörler için ön koşul ve etkiler dışında yürütme maliyeti de belirtilebilir. Maliyet her operatör için farklı olabilir. Örneğin fırçayı boyaya batırmak gibi kolay bir işin maliyeti 1 birim iken tavanı boyamak gibi daha zor bir işin maliyeti 5 birim olabilir. Planlama sırasında bu maliyetler göz önünde bulundurularak, en az maliyetli plan oluşturulması amaçlanabilir.
2.3.2 Planlama problemi
Planlama probleminin temsilinde iki temel nokta bulunmaktadır. Bunlardan birincisi başlangıç durumu, ikincisi ise hedef durumudur. Bir önceki bölümde verilen boyama problemi göz önünde bulundurulursa başlangıç ve hedef durumlarını aşağıdaki gibi tanımlayabiliriz.
Başlangıç durumu: { kuru(kapi), kuru(merdiven), kuru(tavan), ⌐boyali(kapi), ⌐boyali(merdiven), ⌐boyali(tavan), el-bos }
Burada amaç daha önceki bölümde verilen operatörler kullanılarak başlangıç durumunda bulunan ortamı hedef duruma dönüştüren operatör dizisinin bulunmasıdır. Örnek çözüm aşağıda verilmiştir. Bu örnekteki aksiyonlar parametre almadığından, aksiyon isimlerinin yanında gösterilen parantezler boştur.
1: firca-al( ) 2: fırca-boya( ) 3: kapı-boya( ) 4: fırca-boya( ) 5: tavan-boya( ) 6: fırca-boya( ) 7: merdiven-boya( ) 2.3.3 Blok problemi
Blok problemi en temel planlama problemlerinden biridir. Problem temsilinin çok karmaşık olmamasına karşın, problemin çözüm uzayı oldukça geniştir. Şekil 2.2’de blok problemi için bir başlangıç ve hedef durumu gösterilmektedir. Bu örnek problemde amaç, hedef durumunu gerçekleştirmek için robot kolunun yapması gereken aksiyon dizisinin bulunmasıdır.
ġekil 2.2 : Blok problemi için problem domeni
Problemin başlangıç durumu ve sonuç durumu Şekil 2.3’ deki ifadelerle temsil edilir. Bu domende yer alan operatörler de Çizelge 2.2 :’de gösterilmiştir.
ġekil 2.3 : Blok probleminin başlangıç ve hedef durumu temsilleri Çizelge 2.2 : Blok probleminde yeralan operatörler
Operatör Ön Koşul Etki
(pickup x) (ontable x) (clear x) (empty) ⌐(ontable x) ⌐(clear x) ⌐(empty) (hold x)
(putdown x) (hold x) ⌐(hold x)
(ontable x) (clear x) (empty) (takeoff x y) (on x y) (clear x) (empty) ⌐(on x y) ⌐(clear x) ⌐(empty) (clear y) (hold x) (puton x y) (hold x) (clear y) ⌐(hold x) ⌐(clear y) (on x y) (clear x) (empty) 2.4 Planlama Dilleri
ADL (Action Description Language)
PDDL (Planning Domain Definition Language)
Dilleridir. Bu diller kullanılarak planlama domeni ve planlama problemi tanımlanır. 2.4.1 STRIPS
Bu dilde temel olarak durumlar ve aksiyonlar, nesneler ve aralarındaki ilişkiler kullanılarak temsil edilir.
Durumların temsili için planlayıcılar ortamı mantıksal koşullara ayrıştırır ve bir durumu olumlu önermelerin birleşimi olarak temsil eder [3]. Örneğin daha önce bahsedilen boyama probleminde bir durum STRIPS dilinde kuru(kapi) Λ kuru(merdiven) şeklinde, nesnelerle ilgili ilişki ve özelliklerin “VE” bağlacı ile bağlanmasıyla ifade edilebilir. Probleme temsilindeki başlangıç ve hedef koşulları da durumlar cinsinden temsil edilir. Ör: boyali(kapi) Λ boyali(merdiven). Hedef tanımı tüm durum tanımlarını içermeyebilir. Yalnızca problemde gerekli olan hedef koşulları için tanımlama yapılır.
Bir aksiyonun temsili 3 bölümden oluşur.
Aksiyon ismi ve parametre listesi: Aksiyona verilen belirtici isim ve ilgili nesnelerin parametre olarak ifadesidir. Ör: goto(agent, from, to)
Ön koşul: Olumlu önermelerin birleşiminden oluşur. Aksiyonun yürütülebilmesi için bu koşulların sağlanmış olması gerekir.
Etki: Aksiyon yürütüldüğünde ortamın nasıl etkileneceğini belirtir. Olumlu veya olumsuz önermelerden oluşur.
Şekil 2.4’de bir aksiyonun STRIPS dilindeki temsili yer almaktadır. 2.4.2 ADL
Bu dil STRIPS dilinin genişletilmiş hali olarak düşünülebilir. Strips dilinde olduğu gibi durumlar ve aksiyonlar, nesneler ve aralarındaki ilişkiler kullanılarak temsil edilir.
ġekil 2.5 : Blok domenindeki örnek bir aksiyonun ADL ile temsili
Şekil 2.5’de ADL dilinde örnek bir aksiyon temsili verilmiştir. ADL dilinde STRIPS diline ek olarak, negatif önkoşullar, denklik koşulları, “VEYA” operatörü ve , gibi operatörler de kullanılabilir. ADL, STRIPS diline göre daha karmaşık temsilleri ele alabilir.
2.4.3 PDDL
PDDL, Planlama problemleri için standart bir dil yaratma çabası sonucu ortaya çıkmıştır.
ġekil 2.6 : Blok domenindeki örnek bir aksiyonun PDDL ile temsili
Şekil 2.6’da takeoff aksiyonunun PDDL dili ile temsili verilmiştir. PDDL dilinin çeşitli versiyonları vardır. Zamanla ilgili ifadelerin de yer aldığı PDDL 2.1, daha sonraki bölümlerde ayrıntılı olarak incelenmiştir.
Çizelge 2.3 : STRIPS,ADL ve PDDL karşılaştırması. [3][5]
STRIPS Dili ADL Dili PDDL Dili
Kapalı ortam varsayımı: Bahsedilmeyen önermeler yanlış kabul edilir.
Açık ortam varsayımı: Bahsedilmeyen önermeler bilinemez kabul edilir.
Kapalı ortam varsayımı: Bahsedilmeyen önermeler yanlış kabul edilir.
Sadece olumlu önermeler: Fakir Λ Yaşlı Olumlu ve olumsuz önermeler: Fakir Λ ⌐Yaşlı Olumlu ve olumsuz önermeler:
and ( Fakir ) ( not ( Yaşlı ) )
A Λ ⌐B :
A’yı ekle, B’yi çıkar.
A Λ ⌐B :
A ve ⌐B’yi ekle, ⌐A ve B’yi çıkar.
and ( A ) ( not ( B ) ) A ve ⌐B’yi ekle, ⌐A ve B’yi çıkar. Amaç cümlesi ve içermez. Amaç cümlesi ve içerir. Amaç cümlesi ve içerir.
Amaç cümlesi Λ’lerden oluşur. V içermez. Amaç cümlesi Λ ve V içerir. Amaç cümlesi Λ ve V içerir. Değişkenlerin tipleri yoktur. Değişkenlerin tipleri vardır. Değişkenlerin tipleri vardır.
= işlemi yoktur. = işlemi vardır. = işlemi vardır. 2.5 Planlama Yöntemleri
Belirli bir dilde temsil edilen problemlerin çözümü için çeşitli yöntemler vardır. Klasik planlama problemlerinin çözümü için, ileri durum uzayı arama algoritması, geri durum uzayı arama algoritması, kısmi sıralı arama, hiyerarşik görev ağı planlama, grafik planlama olmak üzere 5 temel çözüm yönteminden bahsedilebilir. 2.5.1 Ġleri durum uzayı arama yöntemi
Bu yöntemde planlayıcı başlangıç koşullarını içeren durumdan başlar. Planlayıcı, o andaki durumda ön koşulları sağlanan bir operatör seçer, operatörün etkilerini ortama uygulayarak yeni bir durum oluşturur. Aynı durumdan uygulanabilen her aksiyon için ayrı bir yeni durum arama ağacına eklenir. Ve bu arama hedef koşullarını sağlayan bir duruma erişilene kadar devam eder. İleri durum uzayı arama yönteminde problem, genellikle herhangi bir durumda uygulanabilecek olan aksiyon
ġekil 2.7 : İleri durum uzayı arama yöntemi
Şekil 2.7’de ileri durumum uzayı arama yönteminde, başlangıç durumundan başlanarak ileri yönde aksiyonların uygulanması gösterilmiştir. Arama yeni oluşan durumlar için de, ön koşulları sağlanan aksiyonların uygulanmasıyla, hedef durumuna erişilene kadar devam eder.
2.5.2 Geri durum uzayı arama yöntemi
Bu algoritmada arama ters yönde gerçekleştirilir. Her adımda hedeflerden birisini gerçekleyen bir aksiyon seçilir ve plana eklenir. Gerçeklenen hedef, hedef kümesinden silinir ve seçilen aksiyonun ön koşulu alt hedef olarak kümeye eklenir. Bu işleme kümedeki alt hedeflerin hepsi başlangıç koşulunun alt kümesi olana kadar devam edilir [2]. Şekil 2.8 geri durum uzayı arama algoritmasının ilerleyişini göstermektedir.
2.5.3 Kısmi sıralı planlama yöntemi
Planlama problemi için plan üretmenin bir başka yolu, plan aksiyonlarını mümkün olduğunca sırasız bir biçimde ekleyerek kısmi sıralı plan oluşturmaktır. Kısmi sıralı planlamada geri yönde arama yöntemi uygulanır ve plan adımlarında aksiyonların ön koşulları sağlanmaya çalışılır. Her iterasyonda, sağlanacak olan ön koşul seçilir ve bu ön koşulu sağlayabilecek operatörler belirlenir. Plana yeni bir bağ eklenerek bir ön koşul gerçeklenmiş olur. Eklenen operatörle ilişkili olan ve aykırı durum oluşturan diğer operatörler için karşılıklı sıralama kısıtı eklenir. Bu işlem, planda yer alan her adımın her ön koşulunu sağlayan bir bağlantı oluşturulana ve bütün tehditler kaldırılana kadar devam eder [4].
2.5.4 HiyerarĢik görev ağı planlama yöntemi
Bu yöntemde arama başlangıçtan hedefe yatay yönde değil, dikey yöndedir. Planlama sırasında verilen yüksek seviyeli görevler daha küçük alt görevlere indirgenerek çözüm aranır. Başlangıçta tek bir yüksek seviye aksiyonla temsil edilen çözüm, gerçek (primitif) aksiyonlara kadar indirgendiği takdirde gerçeklenmiş olur. Daha sonra alt görevler arasında uyuşmazlıklar var ise bunlar çözülür [4]. Şekil 2.9’da boyama problemi için örnek bir hiyerarşik görev ağı gösterilmektedir. Tavan-boya yüksek seviye aksiyonu iki farklı şekilde daha alt seviye aksiyonlara indirgenebilmektedir. İndirgemelerden biri seçilir ve yeni aksiyonlardan primitif olmayanlar yeniden indirgenir. Tüm aksiyonlar primitif olana dek indirgeme devam eder.
2.5.5 Grafik planlama
Grafik planlamanın temelinde yatan fikir ulaşılabilirlik analizi kullanılarak birbiriyle uyumsuz olan aksiyon kombinasyonlarını ortadan kaldırmaktır. Başlangıç durumundan başlanarak her adım sonrası oluşabilecek önerme kümeleri hesaplanır. Örneğin ilk adım için, bu küme başlangıç koşullarından bir adım sonra ulaşılabilecek önermelerin birleşiminden oluşur.
Elde edilen önermelerin hepsi birbirleriyle uyumlu olmayabilir. Grafik planlamada uyumsuz aksiyon ve önermelerin arasındaki ilişki için karşılıklı dışlama (mutex) kullanılır. Karşılıklı dışlama kurallarına göre verilen iki aksiyonun,
zıt etkilerinin var olması,
bir tanesinin etkisi diğerinin zıt ön koşulu olması,
verilen adımda aksiyonların ön koşulları birbirlerini karşılıklı dışlaması, koşullarından birini sağlaması durumunda aksiyonlar birbirini karşılıklı dışlar.
3. ÇĠZELGELEME
3.1 GiriĢ
Başlama durumunu hedef durumuna dönüştüren aksiyon dizisinin bulunması, gerçek dünya problemlerinin çözümü için yeterli değildir. Problem ortamında var olan, aksiyonların yürütülmesi için gerekli olan sınırlı kaynakların, aksiyonların yürütülmesi sırasında göz önünde bulundurulması gereklidir. Buna bağlı olarak, planlama aşamasında seçilen aksiyonların ne zaman yürütüleceği de önem arz etmektedir. Aksiyonlara zaman atayabilmek için, aksiyonların hangi kaynaklara ihtiyaç duyduğu göz önünde bulundurularak, sınırlı sayıda olan kaynakları ihlal etmeyecek bir atama yapılması gerekir. Örneğin aynı kaynağı kullanan iki aksiyon, planlama aşamasında bağımsız aksiyonlar olsalar da, çizelgeme sırasında kaynak kısıtları göz önüne alınarak, karşılıklı dışlanarak yürütülecek şekilde zaman ataması yapılması gerekmektedir. Bu bölümde, planlama aşamasında seçilmiş aksiyonlar için temel çizelgeleme teknikleri incelenmiştir.
3.2 Çizelgeleme
Yapay zeka konusunda çizelgeleme genellikle planlamanın özel bir hali olarak görülür, ve halihazırda seçilmiş olan aksiyonların çalışma düzeninin belirlenmesi olarak ele alınır. Çizelgelemenin tanımı, yöneylem araştırmaları ile ilgili kaynaklarında şu şekilde verilmektedir.
“Bir ya da daha çok amacı eniyilemek için, sınırlı kaynağın, yürütülecek olan görevlere zaman üzerinde atanması problemidir.” [6,7]
Bu tanıma şu açıklamaların eklenmesi uygundur.
Zaman ve kaynaklarla ilgili akıl yürütme, çizelgeleme probleminin temelini oluşturur.
Çizelgeleme problemleri genellikle eniyileme (optimization) problemleridir. Doğru bir çizelge kolaylıkla tüm görevlerin teker teker çalıştırılmak üzere zamana yayılması yoluyla oluşturulabilir. Fakat eniyilenmiş bir çizelge oluşturmak çok daha zor bir problemdir.
Çizelgeleme problemleri seçim de içerebilir. Verilen aksiyonların çalışma zamanlarının belirlenmesi sırasında, aksiyonların kullanacağı kaynakların seçiminin de yapılması gerekir.
Verilen tanımlara göre, çizelgeleme ile planlama problemleri arasındaki fark, çizelgeleme problemlerinin yalnızca sınırlı sayıda seçim içermeleri, bunun yanında planlama problemlerinin birbiriyle ilişki içerisinde olan ard arda birçok seçim içermesidir. Planlama problemlerinde, problemin çözümü için yürütülmesi gereken aksiyon sayısı dahi tahmin edilememektedir.
Çizelgeleme yöneylem araştırmalarının da konusu olmakla birlikte, yapay zeka çalışmalarındaki çizelgeleme konuları ile yöneylem araştırmalarında incelenen çizelgeleme konuları farklılık göstermektedir. Yöneylem araştırmaları akış çizelgeleme ve iş çizelgeleme gibi belirgin problemli sınıflarıyla ilgilenir. Ve problem sınıfları için ayrı özel yöntemler üzerinde çalışılır. Yapay zeka çalışmalarında ise daha genel ve birçok problem sınıfını kapsayan çizelgeleme yöntemleri geliştirilmeye çalışılır. Çizelgeleme problemlerinin tümü genel bir çizelgeleme problemi olarak ele alınır ve genel yöntemler uygulanır.
Genel çizelgeleme problemleri kısıtlı-kaynak proje çizelgeleme (RCPS: Resource constraint job scheduling) problemleri olarak ifade edilebilir. RCPS problemleri şunlardan oluşur:
Belirli sayıda, süreleri belli olan görevler Belirli sayıda ya da miktarda kaynak
Şekil 3.1’de basitleştirilmiş bir otomobil üretim problemi için kısmi sıralı planlama yöntemi kullanılarak oluşturulan plan gösterilmektedir. Plan iki otomobile çeşitli parçaların monte edilmesini kapsamaktadır. Şekilde aksiyonlar arasına çizilen oklar, aksiyonlar arası sırayı, aksiyonlar üzerindeki rakamlar ise aksiyonların yürütülme sürelerini göstermektedir.
ġekil 3.1: Üretim problemi için örnek bir kısmi sıralı plan
Planda verilen aksiyonların kaynak gereksinimleri şu şekildedir. Motor aksiyonları fabrikanın motor bölümünü, tekerlek aksiyonları fabrikanın tekerlek bölümünü kontrol aksiyonları ise fabrikanın kontrol bölümünü kullanmaktadır. Fabrikada her bölümden bir adet bulunduğu durumda yukarıdaki plan için oluşturulan çizelge Şekil 3.2’de verilmiştir.
ġekil 3.2: Üretim problemi için oluşturulan çizelge
Şekilde görüldüğü üzere motor aksiyonlarının ikisi de motor bölümünü kullandığından bu aksiyonların paralel yürütülmesi mümkün değildir. Tekerlek aksiyonları da planda belirtildiği üzere, ilgili otomobile motor takılmadan önce yürütülememektedir. Aynı şekilde kontrol aksiyonları da tekerlek aksiyonlarından sonra yürütülmektedir.
3.2.1 Problemin temsili
Yapay zeka yöntemlerinde, çizelgeleme probleminin çözümü için en genel yaklaşım öncelikle problemin kısıt sağlama problemi (CSP: Constraint Satisfaction Problem) şeklinde temsil edilmesi ve saha sonra çözüm için genel CSP yöntemlerinin kullanılmasıdır. CSP problemleri, çözüm sırasında verilmesi gereken bir takım kararlar, ve hangi karar kombinasyonlarının geçerli olduğunu gösteren kısıtlardan oluşur. Her karar bir değişkenle temsil edilir. Her değişken için değişkenin alabileceği değerlerin bir kümesi belirlidir. Kısıtlar, tüm değişkenler için, ilgili değişkenin değer kümesinden bir değer seçildiğinde oluşan kombinasyonun geçerli olup olmadığını belirler.
Çizelgeleme problemlerinin CSP problemi olarak temsil edilmesinde, değişkenlerin ve değer kümelerinin seçimine göre iki farklı yöntem vardır.
Kaynak kısıtlarını sağlayacak şekilde her aksiyona bir başlama zamanı atanması.
Görevler arası, kaynak kısıtlarını sağlayan, sıralama kısıtları oluşturmak. 3.2.1.1 BaĢlama zamanı seçimi
RCPS problemlerini, aksiyonlara başlama zamanı atanmasını ele alacak bişimde bir CSP problemi olarak temsil edilmesi şu şekilde yapılır:
Her aksiyonun başlama zamanını gösteren bir değişken tanımlanır. Bu değişkenin değer kümesi, aksiyonun başlama zamanı olabilecek tüm değerlerin ayrıklaştırılmış bir kümesidir. Bu küme zaman ekseninden belirli aralıklarla alınmış değerler içerir.
Verilen sıralama kısıtları, değişkenler arası kısıt olarak probleme eklenir. Örneğin A aksiyonu B aksiyonudan önce yürütülmesi gerektiğini belirten bir sıralama kısıtı, B’nın başlama zamanının, A’nin başlama zamanı ile A’nın süresinin toplamından büyük olması koşulu ile edilir.
Temsilin ardından çözüm, değişkenlere değer kümelerinden, kısıtları ihlal etmeyecek birer atama yapılmasıyla sağlanır. Kaynak kullanımının ve kaynak kapasitesinin zamana bağlı olarak değiştiği karmaşık kaynak problemlerinin de CSP olarak temsil edilmesi ve çözülmesi mümkündür. Fakat bu yöntemin aksiyonlara kesin başlama zamanı atamsı ve zaman eksenini sınırlı sayıda ayrık değer olarak ele almasından kaynaklanan birtakım zayıf noktaları vardır. Bunlardan birincisi zaman değerleri reel sayılar kümesini kullanamaması ve bunun yerine ayrık bir değer kümesi kullanılması gerekliliğinin sonucunda ortaya çıkan çok fazla sayıda değer içeren değer kümeleridir. Bu problem boyutunu önemli ölçüde genişletmektedir. İkinci sorun ise, zaman ekseninin ayrık değerler ile örneklenmesi sırasında, örnek aralığının belirlenmesidir. Örnek aralığı daraltıldığında, problem boyutu çok genişlerken, aralık genişletildiğinde çözüm kalitesi düşer veya çözüm bulunamayabilir.
3.2.1.2 Aksiyon sıralama
Çizelgeleme probleminin CSP olarak temsil edilmesindeki diğer yöntem, kaynak kısıtlarını ihlal etmeyecek şekilde aksiyonlar arası sıralama kısıtlarının oluşturulmasıdır. Bu yaklaşım aralarında bir sıralama bulunan iki aksiyonun aynı kaynak yarışmayacağı fikrine dayanır. Temsil şu şekilde yapılır:
Aksiyonlar kümesinin her ikili permutasyonu için, değerinin 1 olması durumunda, birinci aksiyonun ikinciden önce geldiğini gösteren bir lojik değişken kullanılır. Bu lojik değişkenin değerinin 0 olması ise, iki aksiyon arasında, birincinin ikinciden önce geldiğini belirten bir sıralama kısıtı bulunmadığını gösterir.
Aksiyon sıraları, daha önceden var olan sıralama kısıtları ile CSP temsilindeki sıralama değişkenlerine atanan değerlerle belirlenmiş olur.
Her aksiyonun başlama zamanı, seçilen sıralamaya göre, ilk mümkün olan zaman olarak belirlenir. Ve buna göre, aksiyonların kaynak kısıtlarını ihlal edip etmediği kontrolü yapılır.
kısıtlarına göre aksiyonların başlama zamanını sürekli-zaman üzerinde hesaplayabilen algoritmalar var olduğundan, bu temsilde zamanın ayrık değerler ile örneklenmesine gerek yoktur. Çünkü sıralama kısıtları verilen aksiyonlar için, başlama zamanı atamak, bir seçim problemi değil, aritmetik bir işlemdir. Sıralama kısıtları verildiğinde tüm aksiyonlar için, sürekli zaman üzerinde en küçük başlama zamanı bulunabilir. Bu yöntemin bir avantajı da, oluşturulan çizelgenin esnekliğidir. Yürütülme sırasında, aksiyonlardan bir ya da daha fazlası beklenenden daha uzun sürede sonlandığında, oluşturulan sıralama kısıtları göz önüne alınarak, gecikme miktarına göre, aksiyonlara yeni başlama zamanları atanabilmesidir.
Aksiyon sıralama yönteminin zayıf yanları da vardır. Sıralama yönteminde karmaşık kaynakların ifade edilmesi mümkün olmamaktadır. Örneğin kaynakların kullanımı, aksiyonun tam olarak ne zaman başlayacağına bağlı ise, aksiyonların kaynaklara atanması sırasında kaynağın kapasitesinin aşılıp aşılmadığını belirlemek zor olmaktadır.
4. EġZAMANLI PLANLAMA VE ÇĠZELGELEME
4.1 GiriĢ
Planlama ve çizelgeleme problemlerinin iki ayrı aşamada çözülmesi yerine, bu iki problemin birleşik bir problem olarak ele alınarak, gelişmiş bir algoritma ile çözülmesi, oluşturulan çözümlerin kalitesini arttırmaktadır. Bu bölümde, planlama ve çizelgelemenin eşzamanlı olarak yapılması için geliştirilen temsil yöntemleri ve birleşik problemin çözüm yöntemleri incelenmiştir.
4.2 EĢzamanlı Planlama ve Çizelgeleme Problemlerinin Temsil Edilmesi
Birleşik planlama ve zamanlama problemlerinin ifade edilmesi için en yaygın kullanılan dil PDDL’dir (Planning Domain Definition Language) [8]. Ayrıca kendi özel dilini kullanan planlayıcılar da vardır. Kendi dilini kullanan planlayıcılardan bir tanesi TLPlan’dir [27].
4.2.1 PDDL 2.1
Bu planlama dili, planlama problemlerinde STRIPS ve ADL’in planlama problemlerini temsil etmekteki eksiklerini gidermek için ortaya atılmış, ve kullanılmıştır. PDDL dili, var olan ADL dili [9], SIPE-2 formulasyonu [10], Prodigy-4.0 formulasyonu [11], UMCP formulasyonu [12], Unpop formulasyonu [13] ve UCPOP [14] formulasyonlarının bir kombinasyonu olarak geliştirilmiştir. PDDL dilinin sözdizimi bir programlama dili olan LISP dilinden esinlenilmiştir. PDDL temel olarak STRIPS-stili aksiyonları barındırır. STRIPS-stiline ek olarak aksiyonlar ayrıca şartlı-etki yapıları bulundurabilir.
Sayısal değerler barındıran planlama problemlerinin ortaya atılması, zaman değerlerinin planda yer alması ve plan oluşturulurken eniyilenmesi gereken amaç fonksiyonlarının, bu değerlere bağlı daha karmaşık tanımları içermesi, PDDL’in
kılan bir dil olarak geliştirilmiştir. PDDL 2.1 ile birlikte, planlama ile zamanlama problemleri içeren daha karmaşık problemler tanımlanabilmektedir.
4.2.1.1 Sayısal ifadeler
PDDL 2.1 dilinin en belirgin özelliği, aksiyon etkilerinde, ön koşullarında ve lojik ifadelerde sayısal değerlerin kullanılabilmesidir. Primitif sayısal ifadelerin aritmetik operatörler kullanılarak birleştirilmesiyle daha karmaşık sayısal ifadeler oluşturulabilir. Bu ifadelerin değerleri, planlama domeni fonksiyonları kullanılarak planlama domenindeki nesnelerle ilişkilendirilir.
Şekil 4.1’de, sayısal değerleri ifade eden planlama domeni fonksiyonları içeren bir örnek planlama domeni tanımı gösterilmiştir. Örnek domende, kaplar ve kaplar içerisinde sıvılar bulunmaktadır. Kaplardaki sıvı miktarı, miktar fonksiyonu ile ifade edilmektedir. Miktar fonksiyonu kap cinsinden bir nesne ile eşleşerek, ilgili kaptaki sıvı miktarını gösterir. Domende bir adet operatör bulunmaktadır. Dök operatörü iki nesne ile ilişkilendirilerek, birinci kaptaki sıvının tamamının diğer kaba boşaltılmasını ifade eder. Bu operatörün yürütülebilmesi için, ikinci kabın kapasitesinin, operatör çalıştırılmadan önce ikinci kapta bulunan sıvı miktarı ile birinci kaptaki sıvı miktarlarının toplamından daha büyük olması koşulunu sağlanıyor olması gereklidir. Bu koşul, sıvının taşacağı durumlarda operatörü devre dışı bırakır. Operatörün yürütülmesi sonucunda, birinci kaptaki sıvı miktarı 0 olurken, ikinci kaptaki sıvı miktarı, iki kaptaki sıvı miktarının toplamına eşitlenmektedir. Bu atamanın yapılması için PDDL dilindeki arttırma ifadesi, ikinci kaptaki sıvı miktarını gösteren fonksiyon için kullanılmıştır.
Verilen örnek domende sayısal ifadeler, operatörlerin hem ön koşul hem de etki bölümlerinde kullanılmıştır. Ön koşul bölümünde kullanılan ifadeler her zaman, iki ifadenin karşılaştırılması için kullanılır ve lojik bir sonuç döndürür. Etki bölümünde ise, nesnelerle ilgili sayısal değerleri gösteren fonksiyonlara değer atanması işelmi yapılabilmektedir. Bu değer değişimi, doğrudan bir değer atama veya önceki değerin arttırılması şeklinde uygulanabilir.
(define (domain kap-dökme) (:requirements: fluents) (:functions (miktar ?k) (kapasite ?k)) (:action dök
:parameters (?kap1 ?kap2) :precondition
(>= (- (capacity ?kap2) (miktar ?kap2)) (miktar ?kap1))
:effect (and (assign (miktar ?kap1) 0)
(increase (miktar ?kap2) (miktar ?kap1))) )
ġekil 4.1: Sayısal ifadelerin kullanıldığı örnek bir problem domeni 4.2.1.2 Plan eniyleme ölçütü
Sayısal ifadelerin plan tanımına dahil edilmesiyle birlikte daha zengin eniyileme ifadelerinin de plan tanımında kullanılması sağlanmıştır. Sayısal ifadelerle operatörlerin maliyetinin belirtilmesi ve plan uzayında arama yapılırken toplam plan maliyetinin de göz önünde bulundurulması sağlanmış olmaktadır.
Şekil 4.3’de örnek bir planlama domeni verilmiştir. Problemde otomobil ve kamyon olmak üzere iki çeşit taşıt vardır. Verilen şehirler arası bağlantılar ve bu bağlantıların kullanılması durumunda harcanacak yakıt miktarları problem tanımında verilmiştir. Problemde bir adet aksiyon vardır. <Drive> aksiyonu taşıt cinsinden bir nesneyi parametre olarak alır ve bu taşıt nesnesinin bulunduğu konumdan başka bir konuma hareket etmesini temsil eder. Bu aksiyon aynı zamanda planda toplam harcanan yakıt miktarını ve parametrelerde belirtilen aracın harcadığı toplam yakıt miktarını belirten fonksiyonların değerini, aksiyonun yürütülmesi durumunda harcanacak yakıt miktarı kadar arttırır. Verilen problemde eniyileme ölçütü toplam harcanan yakıt miktarıdır. Toplam harcanan yakıt miktarı, ilgili fonksiyonun değeri olarak temsil edildiğinden, ve uygulanan aksiyonlar bu fonksiyonun değerini güncellendiğinden, planlayıcı operatör seçiminde, bu fonksiyonun değerini göz önünde bulundurarak en az yakıt harcanan planı oluşturan aksiyon dizisini bulacak şekilde çalışabilmektedir.
planlama domeninde, kullanılan planlayıcıya bağlı olarak, eniyileme ölçütünü göz önünde bulunduran çözümler oluşturulabilmektedir.
4.2.1.3 Süreli Aksiyonlar
PDDL 2.1 dilinde var olan özelliklerden birisi de zaman ölçütünün de plana dahil edilmesidir. Plan, yalnızca bir aksiyon dizisi değil, aynı zamanda bu aksiyon dizisinin çizelgelemesini de kapsar. Diğer bir deyişle plan, çözümü oluşturan aksiyonları ve bu aksiyonlardan her birinin başlama zamanını ve bitiş zamanını içerir. Bunu sağlamak için, PDDL 2.1’de aksiyon temsilleri, aksiyonların süre değerini de belirtecek şekilde genişletilmiştir.
(:durative-action load-truck :parameters (?t - truck) (?l - location) (?o - cargo) (?c - crane) :duration (= ?duration 5) :condition (and
(at start (at ?t ?l)) (at start (at ?o ?l)) (at start (empty ?c)) (over all (at ?t ?l)) (at end (holding ?c ?o)) )
:effect (and
(at end (in ?o ?t))
(at start (holding ?c ?o)) (at start (not (at ?o ?l))) (at end (not (holding ?c ?o))) (at end (empty ?c))
) )
ġekil 4.2: Örnek bir süreli aksiyon
Şekil 4.2’de sürekli bir aksiyon örneği verilmiştir. Sürekli aksiyonlar, parametre, ön koşul, etki bölümleriyle birlikte bir süre tanımı da içerirler. Bu tanım aksiyonun başladıktan sonra aksiyonun sonlanmasına kadar geçen süreyi belirten sayısal
(define (domain metricVehicle)
(:requirements :strips :typing :fluents) (:types vehicle location)
(:predicates (at ?v - vehicle ?p - location)
(accessible ?v - vehicle ?p1 ?p2 - location)) (:functions (fuel-level ?v - vehicle)
(fuel-used ?v - vehicle)
(fuel-required ?p1 ?p2 - location) (total-fuel-used))
(:action drive
:parameters (?v - vehicle ?from ?to - location) :precondition (and (at ?v ?from)
(accessible ?v ?from ?to)
(>= (fuel-level ?v) (fuel-required ?from ?to))) :effect (and (not (at ?v ?from))
(at ?v ?to)
(decrease (fuel-level ?v) (fuel-required ?from ?to)) (increase (total-fuel-used) (fuel-required ?from ?to)) (increase (fuel-used ?v) (fuel-required ?from ?to))) )
)
(define (problem metricVehicle-example) (:domain metricVehicle)
(:objects
truck car - vehicle
Paris Berlin Rome Madrid - location) (:init
(at truck Rome) (at car Paris)
(= (fuel-level truck) 100) (= (fuel-level car) 100) (accessible car Paris Berlin) (accessible car Berlin Rome) (accessible car Rome Madrid) (accessible truck Rome Paris) (accessible truck Rome Berlin) (accessible truck Berlin Paris) (= (fuel-required Paris Berlin) 40) (= (fuel-required Berlin Rome) 30) (= (fuel-required Rome Madrid) 50) (= (fuel-required Rome Paris) 35) (= (fuel-required Rome Berlin) 40) (= (fuel-required Berlin Paris) 40) (= (total-fuel-used) 0)
(= (fuel-used car) 0) (= (fuel-used truck) 0) )
(:goal
(and (at truck Paris) (at car Rome))
)
(:metric minimize (total-fuel-used)) )
Verilen örnekte aksiyon için belirtilen süre, sabit 5 değerine sahiptir. Sürekli aksiyonlar ele alındığında, aksiyonların ön koşul ve etki bölümlerinin de genişletilmesi gerekmektedir. Ön koşul, aksiyonun çalıştırılabilmesi için sağlanması gereken koşulları belirtir. Fakat sürekli aksiyonlarda, aksiyonun birbirinden farklı bir başlama ve bitiş zamanı bulunduğundan, koşulların aksiyonun başlama zamanında, bitiş zamanında, veya başlama ile bitiş arasında sürekli olarak sağlanması gerekliliği şeklinde üç tane birbirinden farklı koşul ortaya çıkmaktadır. Bu farklı koşullar aksiyonun koşullarında sırasıyla <at start>, <at end> ve <over all> anahtar sözcükleriyle belirtilir. Verilen örnekte <at start> anahtar sözcüğüyle belirtilen üç koşul bulunmaktadır. Kamyonun belirtilen konumda olması, yüklenecek olan kargonun belirtilen konumda olması ve vincin boş olması, aksiyon başlamadan önce sağlanmış olması gereken ön koşullardır. Aksiyon süresince sağlanması gerekli koşul olan, kamyonun parametrelerde belirtilen konumda kalması gerekliliği de <over all> anahtar sözcüğü ile belirtilmiştir. Örnekte <at end> anahtar sözcüğüyle belirtilen, vincin kargoyu tutuyor olması koşulu, aksiyonun sonunda sağlanması gerekli bir koşuldur. Bu koşul, aksiyon başladığında aksiyon tarafından sağlanır, fakat paralel çalışan başka bir aksiyon tarafından bozulmasının engellenmesi için, son koşul olarak da aksiyon tanımına eklenmiştir. Süreli aksiyonlarda <at start> ve <at end> anahtar sözcükleri aksiyonun etki bölümünde de kullanılır ve aksiyonun etkilerinin aksiyonun başlama zamanında veya bitiş zamanında uygulanacağını belirtirler. Verilen örnekte, <at_start> anahtar sözcüğüyle verilen, vincin kargoyu tutuyor olması, aksiyon başladığında ortaya çıkan bir etkidir. Aynı şekilde kargonun artık belirtilen konumda olmaması da aksiyon başladığından itibaren ortaya çıkan bir etkidir. Aksiyonun sonunda ortaya çıkan etkiler ise vincin boş olması, kargonun kamyonda olması ve vincin kargoyu tutmuyor olmasıdır. Bu etkiler örnekte <at end> anahtar sözcüğü ile belirtilmişlerdir. Bu örnek aksiyon, planlama domenindeki lojik değişimlerin, süreli bir aksiyon üzerinde nasıl temsil edileceğini göstermektedir. Süreli aksiyonlar, genellikle aksiyonların paralel olarak yürütülebildiği planlarda kullanılır.
edilmesinden önce, plan, sıralı bir aksiyon zinciri olarak oluşturulabiliyordu. Fakat aksiyonların başlama zamanlarının ve sürelerinin de plana dahil edilmesi ile birlikte aksiyonların paralel yürütülebilmesi de göz önüne alınmış ve paralel aksiyonları da içeren planların oluşturulması mümkün olmuştur.
Aksiyonların paralel yürütülebilmesi koşulu paralel çalışacak aksiyonların <at start> ve <at end> anahtar sözcükleriyle belirtilen ön koşulları ve son koşullarıyla birlikte ilk etkileri ve son etkilerine bağlıdır. Kısaca, karşılıklı olarak birbirlerinin ön koşul ve son koşullarını olumsuz yönde etkileyen ön ve son etkilere sahip olmayan aksiyonlar birlikte çalıştırılabilirler.
[0.0, 5.0] load-truck (truck1, depot1, cargo1, craneA) [0.0, 5.0] load-truck (truck2, depot1, cargo2, craneB) [5.0, 10.0] load-truck (truck3, depot1, cargo3, craneA) [5.0, 10.0] load-truck (truck4, depot1, cargo4, craneB)
ġekil 4.4: Paralel yürütülen aksiyonlar içeren örnek bir plan
Şekil 4.3’de verilen örnek problem domeni için paralel yürütülen aksiyonları içeren örnek bir plan Şekil 4.4’de verilmiştir. Verilen problemde, 4 adet kamyona 4 adet yükün yüklenmesi gerekmektedir ve “craneA”, “craneB” olmak üzere 2 adet vinç vardır. Aksiyonların sol tarafında köşeli parantez içerisinde verilen değerler, sırasıyla aksiyonun başlama ve bitiş zamanlarını göstermektedir. Domen tanımında verilen “load-truck” aksiyonunun süresi 5 birim olarak belirtildiğinden, aksiyonların başlama ve bitiş zamanları arasındaki fark 5 birim zamandır. Verilen planda birinci ve ikinci aksiyonun paralel yürütüldüğü görülmektedir. Bu iki aksiyonun birbirleriyle çelişen koşul ve etkileri bulunmadığından mümkün olmaktadır. Aynı şekilde 3. ve 4. aksiyonlar da paralel olarak yürütülmektedir. Fakat 3. ve 4. Aksiyonun 1. ve 2. aksiyon ile paralel yürütülmemektedir. Bunun nedeni, her bir aksiyonun yürütülmesi için bir vincin boş olması gerekmesi ve ortamda “craneA” ve “craneB” olmak üzere toplam 2 vincin bulunmasıdır. Böylelikle aynı anda 2 aksiyon yürütülebilirken, daha fazla aksiyonun yürütülmesi mümkün olmamaktadır. Örneğin “craneA” vincinin boş olduğunu gösteren <empty(craneA)> ifadesi 1.aksiyon tarafından aksiyonun başlama zamanında kaldırılacaktır ve ancak aksiyonun bitiş zamanında yeniden eklenecektir. Böylelikle <craneA> vincini kullanacak olan 3. aksiyonundaki vincin boş olması
4.2.2 TLplan Dili
TLplan [27] eşzamanlı planlama ve çizelgeleme uygulayan bir planlayıcıdır. Planlayıcı ileri yönde durum uzayı araması yöntemini temel alan bir yöntem kullanır ve kendine özel bir temsil dili vardır. Çözülmek istenen planlama problem ve domeni bu dilde temsil edilerek planlayıcıya verilir.
4.2.2.1 Sayısal ifadeler
TLplan dilinde, planlama domeni temsilinde, Strips ve ADL dillerinin aksine, PDDL 2.1’deki gibi lojik ifadelerle birlikte sayısal ifadeleri temsil eden fonksiyonlar da kullanılır. Bu fonksiyonlar belirtici olarak bir ya da daha fazla parametreye sahip olabilirler.
Şekil 4.5’de TLplan fonksiyonlarının kullanıldığı örnek bir yakıt yükleme temsili verilmiştir. Örnekte <?t> aracına yakıt yüklenmesi temsil edilmiştir. Temsildeki <fuel-used> fonksiyonu parametre almaz, ve tüm plan boyunca harcanan benzini temsil eder. Fonksiyonlardan <capacity>, bir parametre alır ve parametre olarak aldığı kamyonunun yakıt kapasitesini temsil eder. Benzer şekilde <fuel> fonksiyonu da parametre olarak aldığı kamyonun mevcut yakıt miktarını temsil etmektedir. Yakıtın yeniden yüklenmesi durumunda, öncelikle toplam kullanılan yakıt miktarı gösteren fonksiyon güncellenecektir. Son yeniden yüklemeden itibaren kullanılan yakıt miktarı toplam kapasiteden eksilen yakıt miktarı kadar olduğundan, bu fark toplam kullanılan yakıt miktarına eklenir. Daha sonra kamyondaki yakıt miktarı, aracın yakıt kapasitesine eşitlenecektir.
(and (add (= (fuel-used) (+ (fuel-used) (- (capacity ?t) (fuel ?t)) ) ) )
(add (= (fuel ?t) (capacity ?t))) )
TLplan, sayısal ifadeler için, aritmetik operatörlerin kolaylıkla kullanılabildiği, PDDL diline göre daha esnek bir temsil sunmaktadır. İç içe yazılan ifadeler, içten dışa doğru yürütülerek en dıştaki ifadenin değeri elde edilir.
4.2.2.2 Sürekli ve paralel aksiyonların modellenmesi
PDDL dilinde olduğu gibi TLplan’da da, aksiyonların belirgin birer süreleri vardır. Bu süreler primitif sayısal ifadeler olabildiği gibi, karmaşık sayısal ifadeler de olabilirler. TLplan dilinde, aksiyonlara doğrudan süre verilmek yerine, aksiyon tanımında son etkiler için gecikme süreleri belirtilir.
(def-adl-operator (drive ?t ?l ?l’) (pre (?t) (truck ?t) (?l) (loc ?l) (?l’) (loc ?l’) (at ?t ?l)) (del (at ?t ?l)) (delayed-effect (/ (dist ?l ?l’) (speed ?t)) (arrived-driving) (add (at ?t ?l’)) ) )
ġekil 4.6: TLplan dilinde aksiyon temsili
Şekil 4.6 TLplan dilinde örnek bir aksiyon temisilini gösterir. Aksiyon parametrelerinden <?t> bir kamyonu, <?l> ve <?l’> de sırasıyla mevcut ve hedef konumu göstermektedir. Aksiyon yürütülmeye başladığında uygulanacak olan etki (başlangıç etkisi), ?t kamyonunun ?l konumunda olduğu önermesinin silinmesidir. Bu önerme aksiyon başladığından itibaren yanlış olacağından, yani hareket başladığından itibaren kamyon artık mevcut konumda olmayacağından, silme işlemi aksiyonun başlangıç etkisi olarak verilmiştir. Aksiyonun gecikmeli etkileri <delayed-effect> bölümünde verilir. Bu bölümdeki ilk ifade sayısal bir ifadedir ve gecikmenin büyüklüğünü belirtir. İkinci ifade oluşan planı takip edebilmek için aksiyonun gecikmeli etkisi için belirtici bir isim içerir. Üçüncü ifade ise uygulanacak etki veya etkileri içerir. İlk ifadedeki <dist> önermesi iki konum arası uzaklığını, <speed> önermesi ise bir kamyonun hızını belirten fonksiyondur. Aksiyonun, kamyonun hedef konuma vardığını belirten etkisinin gecikme değeri, belirtilen mesafenin
şeklinde ifade edilen, aracın artık hedef konuma vardığını temsil eden önermeyi mevcut duruma ekler.
TLplan dilinde ayrı bir son koşul deyimi yoktur, ve aksiyonlar yalnızca ön koşul içerirler. Aksiyonlar yalnızca başlama ve sonlanma zamanında değil, farklı zamanlarda uygulanan birden fazla gecikmeli etki içerebilirler. Her aksiyonun bir başlama ve bir bitiş zamanı vardır. Bitiş zamanı en son gecikmeli etkinin uygulandığı zaman olarak kabul edilir. PDDL dilinde ifade edildiğine benzer şekilde, Bu dilde de, yine iki aksiyon, ön koşulları sağlandığında ve birbirlerinin ön koşullarını ihlal etmedikçe paralel yürütülebilirler.
ġekil 4.7: Crickey3 planlayıcısının çalışma yapısı 4.3 EĢzamanlı Planlama ve Çizelgeleme Yöntemleri
Çizelgelemenin planlama ile eşzamanlı yapılması için geliştirilen yöntemler ayrık, sıralı, ve birleşik olmak üzere üç ayrı grupta incelenebilir [16].
genişletilmediğinden, bu yöntemi kullanan planlayıcıların genellikle performansı yüksektir.
Crickey3 bu yöntemi kullanan efektif planlayıcılardan birisidir [17]. Bu planlayıcının çalışma yapısı Halseyv[18] tarafından geliştirilen ayrı planlama ve çizelgeleme yapısına dayanmaktadır. Bu yapı Şekil 4.7’de gösterilmiştir. Planlayıcı PDDL 2.1 dilinde temsil edilmiş planlama domeni ve problemini girdi olarak kabul eder. Daha sonra bir çevirici yardımıyla bu temsil PDDL formatına dönüştürülür ve klasik bir planlayıcı, PDDL formatında temsil edilen problemi çözerek bir plan oluşturur. PDDL dilinde zaman değerleri yer almadığından, oluşturulan planda zaman değerleri yoktur. Bu aşamada planlayıcı yalnızca planın çizelgelenebilirlik özelliğini kontrol eder. Bu sıralı plan, bir dönüştürücü kullanılarak ve aksiyonların bağımlılıkları göz önüne alınarak kısmi sıralı plana dönüştürülür. Kısmi sıralı plan, birbirine bağımlı aksiyon çiftlerinin bağımlılıklarını da içermektedir. Bu bağımlılıklar dikkate alınarak, bir çizelgeleyici tarafından verilen kısmı sıralı plandaki her bir aksiyon, o aksiyonun başlama zamanını gösteren, kısmı sıralı plandaki aksiyon sırasını bozmayacak bir zaman değeriyle eşleştirilir. Böylece planlanmış ve çizelgelenmiş bir çözüm ortaya çıkmaktadır.
Bu yöntemin en önemli avantajı, zaman belirleme problemi için arama uzayının genişletilmemesi ve çizelgelemenin ayrı bir işlem olarak planlamaya eklenmesidir. Planlama probleminin karmaşıklık değeri arttırılmadan çözüm bulunabilmektedir. Bu zaman değerlerinin belirlenmesi ve planlama probleminin birbirinden ayrı olarak çözülmesinin bir sonucudur. Fakat bu yöntemin planlama ile çizelgeleme için bir eşzamanlılık sağladığı söylenemez. Planlayıcı, çizelgelenebilirlik kontrolü dışında zaman değerleriyle ilgilenmez. Zaman değerleri ayrı bir çizelgeleyici tarafından verilir. Bunun birkaç olumsuz sonucu vardır. İlk olarak, problem iki bağımsız aşamada çözüldüğünden, özellikle eniyileme ölçütünün en kısa süreli plan bulunması olduğu durumlarda sonuçlar optimal değildir. Kısa süreli bir plan bulmak hem planlayıcı hem de çizelgeleyici ile ilgilidir. Bir problemin çözümü olarak planlayıcı tarafından birçok farklı aksiyon dizisi oluşturulabilir. Bu çözümlerin hepsi doğru olmasına karşın çizelgeleme sonucunda birçoğu mümkün olan en kısa süreli plandan daha uzun süreli bir plan verecektir. Fakat yöntemde, planlayıcı zaman değerlerinden
seçme kabiliyeti yoktur. Genellikle oluşturulan ilk plan alınarak çizelgeliyiciye verilmektedir. Bu yaklaşım, çizelgeleyiciye verilen planın, çizelgelendiğinde en kısa süreli planı vereceğini garanti edemez. Bu yöntemin ikinci olumsuz yönü ise problem ve domeni temsillerinin öncelikle zaman değerleri içermeyen basit PDDL diline çevrilmesidir. Yani planlama aşamasında, durumlar zaman değeri içeremezler. Buna bağlı olarak, planlama yapılırken, arama düğümlerinin bütün durum bilgisini içerdiği söylenemez. Karmaşık ve aksiyonların zaman değerleriyle doğrudan ilişkili olduğu planlama problemlerinin çözümü mümkün değildir. Örneğin, kaynak kullanımı ilk aşamada göz ardı edildiğinden, kaynak kullanımıyla sıkı bağlı aksiyonların planlanması mümkün olmamaktadır.
4.3.2 Sıralı Planlama ve Çizelgeleme
Sıralı planlama ve çizelgeleme grubunda yer alan planlayıcılar, genel olarak bir kısmi sıralı planlayıcının, çizelgeleme fonksiyonunu da gerçekleştirecek şekilde geliştirilmesiyle oluşturulur. Kısmi sıralı planlamadaki bir planlama domeninde, aksiyonların çakışma kuralları açıkça tanımlanabildiği takdirde, her aksiyonun belirli birer devam süresinin olması sağlanabilmektedir. Kısmi sıralı planlar oluşturulurken, plan çizgesine eklenen her aksiyonun devam süresi de göz önüne alınır, ve çizgedeki diğer aksiyonların zaman üzerindeki dağılımlarına göre, plana eklenmek üzere seçilen her yeni aksiyona bir zaman aralığı verilir. Bu zaman aralığı aksiyonun en erken ve en son başlama zaman değerlerini içerir. Bu değerler, plan uygulanırken aksiyonun yürütülmeye başlatılması gereken zaman aralığını göstermektedir. Ayrıca yeni eklenen aksiyonlar, aralarında nedensel bağ olması durumunda, çizgede bulunan diğer aksiyonların zaman aralığını daraltırlar.
Kısmi sıralı planlayıcıların karmaşıklığını oldukça arttıran, ayrı dallar arasındaki aykırı durum çözümleme algoritması, sıralı planlama ve çizelgeleme yapan kısmi sıralı planlayıcılarda karmaşıklığın artmasına sebep olmaktadır. Bunun nedeni, aksiyonlar arasındaki zaman kısıtlarının da algoritmaya dahil edilmesidir.
Devisor [19] bu yöntemi kullanan ilk planlayıcı sistemdir. Bu planlayıcıda, her aksiyon belirli bir devam süresine sahiptir. Aksiyonlar ile birlikte hedef koşullar için
Bu yöntemi temel olarak alan diğer bir diğer planlayıcı da MACHINE’dir [20]. MACHINE, kısmi sıralı planlama ile çizelgelemeyi eşzamanlı olarak gerçekleştirmek için, planlamaya paralel olarak zamana göre kısıtlı ağ oluşturur. Bu ağdaki düğümler ve değerler, plan çizgesine aksiyon eklendikçe güncellenir. Plan çizgesi tamamlandığında, paralel olarak oluşturulan zamanla ilgili kısıt ağı, planda yer alan aksiyonların çizelgelemesini verecektir.
ġekil 4.8: Örnek bir zamana göre kısıtlı ağ
Şekil 4.8 örnek bir kısıt ağını göstermektedir. Bu ağdaki düğümler üzerinde yazılı değerler, plandaki zaman noktalarını göstermektedir. Düğümler arası bağlar ise iki zaman noktası arasındaki kısıtı göstermektedir. Bu kısıtlar [tmin,tmax] formatında olup, birbirine bağladıkları iki zaman noktası arasındaki uzaklığı belirtirler. Uzaklık kesin olarak belirtilmez, bunun yerine uzaklığın alabileceği en küçük ve en büyük değerler belirtilir. İki düğümde belirtilen zaman noktaları arasındaki uzaklık değerinin alt sınırı tmin üst sınırı ise tmax değeridir. Bu ağ, kısmi sıralı plan yapılırken ihtiyaç duyulan tutarlılık kontrolü, zaman aralıklarının çakışma kontrolü, zaman değerlerinin büyüklüklerinin karşılaştırılması gibi işlemleri gerçekleştirilmesini olanak sağlar. Kısmi sıralı plandaki aksiyonların başlama ve bitiş zamanları, zamana göre kısıtlı ağdaki düğümlerin zaman değerleri ile eşleştirilir. Plan oluşturulurken, aksiyonlar arası öncelikler göz önüne alınarak, bu ağdaki zaman değerleri ile ilgili olan kısıtlar güncellenir. Ağdaki düğümlere kesin zaman değeri verilmemesi, planın uygulanması sırasında aksiyonların uygulama zamanı için esneklik sağlar. Alt ve üst sınırı birbirine eşit olan kısıtlara sahip olan zaman değerlerinde yürütülecek aksiyonlar