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