0

我已經解決了以下約束處理任務。你能否確認它是否正確?解決約束問題需要幫助(2nd)

One of the prisoners of a high-level security prison sees a way to escape. Almost 
free, he reaches a corridor of 20 meters long, guarded by 5 cameras, behind 
which is the exit. In Figure 3, we provide a schematic overview of the corridor. 

enter image description here

The prisoner has only 10 seconds to reach the end of the corridor and may 
not be noticed by the cameras in doing so. After 10 seconds, or when seen by a 
camera, the prison is put under total lock-down, which will prevent his escape. 
We will consider the following constraints: 

• A camera can only see 3 meters and cannot see its own position. E.g., the 
camera at position 9 is able to see the positions 6, 7 and 8, or 10, 11 and 
12, depending on the orientation of the camera. 

• At time point 0, all cameras are oriented towards the end of the corridor. 
Thus, the camera at position 9 sees positions 10, 11 and 12. 

• Every two seconds the cameras change their orientation. Thus, at time 
point 2 the camera at position 9 will see the positions 6, 7 and 8. 

• Every second, the prisoner can move 0, 1, 2 or 3 meters forward. He 
cannot move backward. Thus, if the prisoner is standing at position 2 at 
time point 2, then, at time point 3, he can be on position 2, 3, 4 or 5. 

Formulate the problem above as a constraint problem. Come up with a useful 
representation of the problem in terms of the constraint processing tool. Provide 
an explanation of indices, variables and domains. Furthermore, provide for every 
introduced constraint, the meaning of the constraint in natural language. 

這是我的解決方案,並希望你們來檢查我哪裏做錯了:

***MY VARIABLES*** 

Name: T, domain: 0..10     // T = the time from 0 to 10 seconds 

Name: P, domain: 0..3     // P = Prisoner can move 0, 1, 2, 3 meters 

Name: C1, domain: 2      // C1 = camera 1 

Name: C2, domain: 4      // C2 = camera 2 

Name: C3, domain: 9      // C3 = camera 3 

Name: C4, domain: 12      // C4 = camera 14 

Name: C5, domain: 17      // C5 = camera 5 

Name: View1, domain: -1..5    // camera1 view 

Name: View2, domain: 1..7     // camera2 view 

Name: View3, domain: 6..12     // camera3 view 

Name: View4, domain: 9..15     // camera4 view 

Name: View5, domain: 14..20    // camera5 view 

MY約束
我宣佈以每種方式的限制當時間是偶數時,攝像機的視野會發生變化,但當時間到了時,只有囚犯可以移動。

Constraint: (T=0/\View1=(C1+3)/\View2=(C2+3)/\View3=(C3+3)/\View4=(C4+3)/\View5=(C5+3)/\P(i)), range: i>-1 
    Constraint: (T=1/\P(i)), range: i>0 
    Constraint: (T=2/\View1=(C1-3)/\View2=(C2-3)/\View3=(C3-3)/\View4=(C4-3)/\View5=(C5-3)/\P(i)), range: i>-1 
    Constraint: (T=3/\P(i)), range: i>0 
    Constraint: (T=4/\View1=(C1+3)/\View2=(C2+3)/\View3=(C3+3)/\View4=(C4+3)/\View5=(C5+3)/\P(i)), range: i>-1 
    Constraint: (T=5/\P(i)), range: i>0 
    Constraint: (T=6/\View1=(C1-3)/\View2=(C2-3)/\View3=(C3-3)/\View4=(C4-3)/\View5=(C5-3)/\P(i)), range: i>-1 
    Constraint: (T=7/\P(i)), range: i>0 
    Constraint: (T=8/\View1=(C1+3)/\View2=(C2+3)/\View3=(C3+3)/\View4=(C4+3)/\View5=(C5+3)/\P(i)), range: i>-1 
    Constraint: (T=9/\P(i)), range: i>0 
    Constraint: (T=10/\View1=(C1-3)/\View2=(C2-3)/\View3=(C3-3)/\View4=(C4-3)/\View5=(C5-3)/\P(i)), range: i>-1 

夥計們,我知道我做錯了什麼,所以幫我糾正它。

感謝您的幫助。我昨天張貼了類似的問題,所以如果你想知道的變量和約束的語法,那麼這是鏈接: Variable and Constraint syntax in this post

感謝您的幫助

回答

1

你已經忘記了相機不能看到本身:「攝像機只能看到3米,看不到自己的位置」。因此,應該修改View1,View2 ... View5。

阿爾斯,你需要爲犯人的位置的一個變量(你有一個只爲囚犯的運動),我在尋找其他錯誤

+0

感謝您的回覆,並希望您會發現其他錯誤。 – Kap 2011-05-16 13:04:04