We now present our technique for solving the deployment problem. We first describe the structure of our algorithm by
discussing the main ideas behind it, then we report the presentation of the details in separate subsections.
Procedure deploymentPlanner(U, Ttarget, qtarget) in Algorithm 1 computes, if there exists one, a deployment plan to
reach a configuration with at least one component of type Ttarget in state qtarget, considering the universe of component
types U.
The algorithm first invokes reachabilityAnalysis (described in Section 4.1 ) that generates a reachability graph used to
check whether the required plan exists. Such a graph contains all those pairs T, q for which it is possible to reach a
configuration with at least one component of type T in state q. The nodes of the reachability graph are organized in layers
Nodes0, Nodes1 , ···, Nodesn that are generated in subsequent phases. Initially, Nodes0 contains all the pairs T, T.init
corresponding to the initial states. Given Nodes j, Nodes j+1 is generated by copying the pairs already available in Nodes j and
by adding those new pairs that can be reached by transitions from states in Nodes j, assuming the availability in the context
of components of type and state T, q already in Nodes j. The reachability analysis terminates since there is a finite number
of possible component type-state pairs. With Nodesn we denote the nodes generated in the last phase.
If the target pair Ttarget, qtarget is in Nodesn, at least one plan exists, and in order to synthesize it we proceed as follows.
First of all, componentSelection (described in Section 4.1 ) selects a set of component type-state pairs sufficient to reach
the target. The idea is to proceed backward, from the target pair Ttarget, qtarget in Nodesn, by selecting at each layer Nodes j
a set of pairs sufficient to reach those that have been already selected in Nodes j+1 . More precisely, the following aspects
must be taken into account while selecting the nodes in Nodes j. A pair T, q in Nodes j+1 can be obtained either as a copy
of a pair in Nodes j or by performing a state change from a pair T, q in Nodes j, assuming that there exists a transition
from q to q. In this last case, it is also necessary to take into account new require ports that are activated by the state q; if
there are new requirements, in order for the state change to be executed, it could be necessary to select additional pairs in
Nodes
j that provide the needed ports.
ตอนนี้เรานำเทคนิคการแก้ปัญหาการใช้งานของเรา เราต้องอธิบายโครงสร้างของอัลกอริทึมของเราด้วยสนทนาความคิดหลักด้านหลัง แล้วเรารายงานนำเสนอรายละเอียดในส่วนแยกย่อยกระบวนการ deploymentPlanner (U, Ttarget, qtarget) ในอัลกอริทึม 1 ตัว ถ้ามีหนึ่ง วางแผนการถึงการกำหนดค่า ด้วยส่วนประกอบอย่างน้อยหนึ่งชนิด Ttarget ในรัฐ qtarget พิจารณาจักรวาลประกอบชนิดของสหรัฐอัลกอริทึมจะ reachabilityAnalysis (อธิบายไว้ในหัวข้อ 4.1) ที่สร้างกราฟ reachability ใช้ครั้งแรกตรวจสอบว่า แผนจะต้องมีอยู่ กราฟดังกล่าวประกอบด้วยเหล่าคู่ T, q ที่เป็นไปได้ถึงกำหนดค่าสำหรับคอมโพเนนต์อย่างน้อยหนึ่งชนิด T ในรัฐคิว โหนดของ reachability กราฟมีการจัดระเบียบในชั้นNodes0, Nodes1, ··· Nodesn ที่สร้างขึ้นในระยะต่อมา เริ่มต้น Nodes0 ประกอบด้วยคู่ทั้งหมด T, T.initที่สอดคล้องกับสถานะเริ่มต้น กำหนดโหน โหนด j, j + 1 ถูกสร้างขึ้น โดยคัดลอกคู่แล้วมีโหนด j และโดยการเพิ่มคู่ใหม่เหล่านั้นที่สามารถเข้าถึงได้ โดยเปลี่ยนจากอเมริกาในโหนด j สมมติว่ามีอยู่ในบริบทองค์ประกอบของชนิดและรัฐ T, q อยู่ในโหนด j วิเคราะห์ reachability ยุติเนื่องจากมีจำนวนจำกัดคอมโพเนนต์ได้สถานะชนิดคู่ กับ Nodesn เราแสดงโหนที่สร้างขึ้นในขั้นตอนสุดท้ายถ้าเป้าหมายคู่ Ttarget, qtarget Nodesn มีแผนน้อย และการสังเคราะห์นั้น เราดำเนินการดังนี้ประการแรก componentSelection (อธิบายไว้ในหัวข้อ 4.1) เลือกชุดของส่วนประกอบชนิดสถานะคู่พอถึงเป้าหมาย ความคิดที่จะดำเนินการย้อนกลับ จากคู่เป้าหมาย Ttarget, qtarget ใน Nodesn โดยการเลือกที่เลเยอร์แต่ละโหนด jชุดคู่พอถึงที่มีอยู่แล้วในโหนด j + 1 ได้แม่นยำมาก ด้านต่อไปนี้ต้องนำมาพิจารณาในขณะเลือกโหนในโหนด j คู่ T, q ในโหนด j + 1 ได้อย่างใดอย่างหนึ่งเป็นสำเนาของคู่ ในโหนด j หรือ โดยการเปลี่ยนสถานะจากคู่ T, q ในโหนด j สมมติว่าที่มีอยู่เปลี่ยนจาก q กับ q ในกรณีนี้สุดท้าย ยังจำเป็นต้องเป็นบัญชีใหม่ต้องใช้พอร์ตที่ใช้ โดยรัฐ q หากมีความต้องการใหม่ การเปลี่ยนแปลงสถานะการดำเนินการ อาจจำเป็นต้องเลือกคู่เพิ่มเติมในโหนดj ที่มีพอร์ตที่จำเป็น
การแปล กรุณารอสักครู่..

ตอนนี้เรานำเสนอเทคนิคของเราสำหรับการแก้ปัญหาการใช้งาน
ก่อนอื่นเราอธิบายโครงสร้างของอัลกอริทึมของเราโดยการพูดคุยความคิดหลักที่อยู่เบื้องหลังมันแล้วเรารายงานนำเสนอรายละเอียดในหัวข้อย่อยที่แยกจากกัน.
ขั้นตอนการ deploymentPlanner (U? Ttarget, qtarget?) ในอัลกอริทึม 1 คำนวณถ้ามีอยู่คนหนึ่งเป็น
แผนการปรับใช้ในการเข้าถึงการตั้งค่าที่มีอย่างน้อยส่วนหนึ่งของประเภทTtarget ใน qtarget
รัฐพิจารณาจักรวาลขององค์ประกอบประเภทU.
อัลกอริทึมแรก invokes reachabilityAnalysis (อธิบายไว้ในมาตรา 4.1)
ที่สร้างกราฟการเชื่อมที่ใช้ในการตรวจสอบว่าแผนต้องมีอยู่. กราฟดังกล่าวมีคู่ทั้งหมดเหล่านั้นหรือไม่ T, คิว? ซึ่งมันเป็นไปไม่ได้ที่จะไปถึงการกำหนดค่าอย่างน้อยหนึ่งส่วนประกอบของชนิด T ในรัฐคิว
โหนดของกราฟเชื่อมที่ถูกจัดอยู่ในชั้น
Nodes0, Nodes1, ···, Nodesn ที่จะเกิดขึ้นในขั้นตอนถัดไป ในขั้นต้น Nodes0 มีคู่ทั้งหมดหรือไม่ T, T.init?
สอดคล้องกับรัฐเริ่มต้น ได้รับโหนดเจโหนดเจ + 1 จะถูกสร้างขึ้นโดยการคัดลอกคู่อยู่แล้วในโหนดญและโดยการเพิ่มคู่ใหม่ที่สามารถเข้าถึงได้โดยการเปลี่ยนจากรัฐในโหนดเจสมมติว่าความพร้อมในบริบทขององค์ประกอบของชนิดและของรัฐ? T, คิว? แล้วในโหนดญ การวิเคราะห์การเชื่อมยุติเนื่องจากมีจำนวน จำกัดขององค์ประกอบประเภทคู่ของรัฐที่เป็นไปได้ ด้วย Nodesn เราแสดงโหนดที่สร้างขึ้นในขั้นตอนสุดท้าย. หากคู่เป้าหมายหรือไม่ Ttarget, qtarget? อยู่ใน Nodesn อย่างน้อยมีอยู่แผนและเพื่อการสังเคราะห์มันเราจะดำเนินการดังต่อไปนี้. แรกของทุก componentSelection (อธิบายไว้ในมาตรา 4.1) เลือกชุดของคู่ประเภทรัฐส่วนประกอบเพียงพอที่จะไปให้ถึงเป้าหมาย มีแนวคิดที่จะดำเนินการต่อไปหลังจากคู่เป้าหมายหรือไม่ Ttarget, qtarget? ใน Nodesn โดยการเลือกในแต่ละชั้นโหนดเจชุดของคู่เพียงพอที่จะไปถึงผู้ที่ได้รับการคัดเลือกแล้วในโหนดเจ+ 1 อีกอย่างแม่นยำด้านต่อไปนี้จะต้องนำมาพิจารณาในขณะที่การเลือกโหนดในโหนดญ คู่ ? T, คิว? ในโหนดเจ + 1 สามารถรับได้ไม่ว่าจะเป็นสำเนาของคู่ในโหนดญหรือโดยการดำเนินการเปลี่ยนสถานะจากคู่? T, คิว? ในโหนดเจสมมติว่ามีการเปลี่ยนแปลงจากคิวคิว ในกรณีที่ผ่านมานี้ก็ยังจำเป็นที่จะต้องคำนึงถึงความจำเป็นต้องมีพอร์ตใหม่ที่จะเปิดใช้งานโดย q รัฐ; ถ้ามีความต้องการใหม่เพื่อให้การเปลี่ยนแปลงของรัฐที่จะดำเนินการก็อาจจะจำเป็นต้องเลือกคู่ที่มีเพิ่มเติมในโหนดญที่ให้พอร์ตที่จำเป็น
การแปล กรุณารอสักครู่..

เราขอเสนอเทคนิคสำหรับการแก้ปัญหาสำหรับปัญหา เราอธิบายโครงสร้างของขั้นตอนวิธีของเราโดย
พูดถึงความคิดหลักที่อยู่เบื้องหลังมัน แล้วเรารายงานการนำเสนอรายละเอียดในส่วนย่อยแยกขั้นตอน deploymentplanner .
( U , ttarget qtarget , ) ในขั้นตอนวิธีการ 1 . ถ้าไม่มีแผน
,เข้าถึงการตั้งค่าอย่างน้อยหนึ่งองค์ประกอบของประเภท ttarget ในรัฐ qtarget พิจารณาจักรวาลของส่วนประกอบชนิด U .
วิธีแรกจะเรียก reachabilityanalysis ( อธิบายในส่วนของ 4.1 ) ที่สร้าง reachability กราฟใช้
ตรวจสอบว่าต้องมีแผนอยู่แล้ว เช่น กราฟมีทุกคู่ t , Q ซึ่งก็เป็นไปได้ที่จะเข้าถึง
การตั้งค่าอย่างน้อยหนึ่งชิ้นส่วนของชนิด T ในสถานะคิวโหนดในกราฟ reachability จัดในชั้น
nodes0 nodes1 ··· nodesn , , , ที่สร้างขึ้นในขั้นตอนที่ตามมา ตอนแรก nodes0 มีทุกคู่ T
t.init สอดคล้องกับรัฐเริ่มต้น ให้โหนดโหนด J J 1 ถูกสร้างขึ้นโดยเลียนแบบคู่ที่มีอยู่แล้วในโหนด J และ
โดยการเพิ่มคู่ใหม่ที่สามารถเข้าถึงได้โดยการเปลี่ยนจากรัฐในโหนด J , สมมติว่าห้องพักในบริบท
ของคอมโพเนนต์ของชนิดและสภาพ t , Q อยู่แล้วในโหนด J . การวิเคราะห์ reachability สิ้นสุดลงเนื่องจากมีจำนวนที่จำกัดของประเภทเป็นไปได้
ส่วนรัฐคู่ กับ nodesn เราแสดงโหนดที่สร้างขึ้นในขั้นตอนสุดท้าย .
ถ้าเป้าหมาย ttarget คู่ ,qtarget ใน nodesn อย่างน้อยแผนการหนึ่งที่มีอยู่ และเพื่อสังเคราะห์เราดำเนินการดังนี้ .
ครั้งแรกของทั้งหมด componentselection ( อธิบายในส่วนของ 4.1 ) เลือกชุดขององค์ประกอบชนิดของรัฐคู่เพียงพอที่จะเข้าถึง
เป้าหมาย ความคิดที่จะดำเนินการย้อนหลัง จากเป้าหมายคู่ ttarget qtarget , ใน nodesn โดยเลือกที่เลเยอร์แต่ละโหนด J
ชุดคู่เพียงพอที่จะเข้าถึงผู้ที่ได้เลือกไว้แล้วในโหนด J 1 มากขึ้นแน่นอน ด้านดังต่อไปนี้
ต้องพิจารณาในขณะที่การเลือกโหนดที่โหนด J คู่ t , Q ในโหนด J 1 ได้ไม่ว่าจะเป็นสำเนา
ของคู่ในโหนด J หรือโดยการเปลี่ยนสถานะจากคู่ t , Q ในโหนด J , สมมติว่า มีการเปลี่ยนแปลงจาก Q
Qในกรณีนี้ มันก็ยังเป็นสิ่งที่จำเป็นเพื่อพิจารณาใหม่ ต้องใช้พอร์ตที่ถูกเปิดใช้งานโดยรัฐ Q ; ถ้า
มีความต้องการใหม่เพื่อเปลี่ยนรัฐประหาร มันอาจจะจำเป็นต้องเลือกเพิ่มเติมใน
คู่โหนด J ที่ให้พอร์ตที่จำเป็น
การแปล กรุณารอสักครู่..
