Prolog 追踪距离基站最近的直升机

Prolog 追踪距离基站最近的直升机,prolog,Prolog,heli\u link\u dis=直升机连接距离 h1表示直升机的名称 b1表示基站的名称 800是直升机与基站之间的距离 我需要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). h

heli\u link\u dis
=直升机连接距离
h1
表示直升机的名称
b1
表示基站的名称
800
是直升机与基站之间的距离


我需要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).  
最近的直升机(H、B、D):- 直升机连接图(H、B、D), \+(直升机连接盘(u,u,D1),D1在你要求我们解决你的家庭作业之前,向我们展示你的尝试。一旦你做出诚实的努力,我们会更乐意帮助你。你读过告诉你如何提问的文档了吗?最经典的问题标题。请回答以下问题:陈述任何特殊限制,展示您迄今为止的尝试,并询问具体是什么让您困惑。
nearest_heli(H, B, D) :-
  heli_link_dis(H, B, D),
  \+ (heli_link_dis(_, _, D1), D1 < D).