跟踪最近的直升机到基站

时间:2010-10-13 20:24:46

标签: prolog

heli_link_dis(h1,b1,800).   
heli_link_dis(h1,b3,1400).  
heli_link_dis(h1,b2,600).  
heli_link_dis(h1,b8,1200).  
heli_link_dis(h2,b4,400).  
heli_link_dis(h2,b3,2000).  
heli_link_dis(h2,b5,500).  
heli_link_dis(h3,b5,1000).  
heli_link_dis(h3,b6,400).  

heli_link_dis =直升机相关距离
h1表示直升机的名称 b1表示基站的名称
800是直升机和基站之间的距离

我需要prolog代码来跟踪最近的直升机到给定的基站

1 个答案:

答案 0 :(得分:0)

极其低效但极简主义的解决方案是:

nearest_heli(H, B, D) :-
  heli_link_dis(H, B, D),
  \+ (heli_link_dis(_, _, D1), D1 < D).