我目前有一些有关组件的事实
% componente(ElementX, ElementY, Qty)
% ElementY is used in the composition of Elementx in quantity Qty
componente(bicicleta,quadro,1).
componente(bicicleta,roda,2).
componente(bicicleta,conjunto_travagem,1).
componente(bicicleta,conjunto_transmissao,1).
componente(bicicleta,conjunto_selim,1).
componente(bicicleta,direccao,1).
componente(quadro,tubo_superior,1).
componente(quadro,tubo_diagonal,1).
componente(quadro,tubo_selim,1).
componente(quadro,escora_diagonal,1).
componente(quadro,escora_horizontal,1).
componente(quadro,forqueta_frontal,1).
componente(roda,pneu,1).
componente(roda,aro,1).
componente(roda,valvula,1).
componente(roda,cubo,1).
componente(roda,aperto_rapido,1).
componente(roda,raio,30).
componente(conjunto_travagem,travao_direito,1).
componente(conjunto_travagem,travao_esquerdo,1).
componente(travao_esquerdo,manete,1).
componente(travao_esquerdo,cabo,1).
componente(travao_esquerdo,bicha,1).
componente(travao_esquerdo,disco,1).
componente(travao_esquerdo,pastilha,2).
componente(travao_direito,manete,1).
componente(travao_direito,cabo,1).
componente(travao_direito,bicha,1).
componente(travao_direito,disco,1).
componente(travao_direito,pastilha,2).
componente(conjunto_transmissao,pedaleiro,1).
componente(pedaleiro,pedal,1).
componente(pedaleiro,braco_pedal,1).
componente(pedaleiro,rolamento,1).
componente(pedaleiro,prato,1).
componente(conjunto_transmissao,corrente,1).
componente(conjunto_transmissao,desviador_traseiro,1).
componente(conjunto_transmissao,desviador_dianteiro,1).
componente(conjunto_transmissao,cassete,1).
componente(conjunto_transmissao,mudancas_dianteira,1).
componente(mudancas_dianteira,manete_dianteira,1).
componente(mudancas_dianteira,bicha,1).
componente(mudancas_dianteira,cabo,1).
componente(conjunto_transmissao,mudancas_traseira,1).
componente(mudancas_traseira,manete_traseira,1).
componente(mudancas_traseira,bicha,1).
componente(mudancas_traseira,cabo,1).
componente(conjunto_selim,selim,1).
componente(conjunto_selim,espigao,1).
componente(conjunto_selim,aperto_rapido_selim,1).
componente(direccao,caixa_direccao,1).
componente(direccao,guiador,1).
componente(direccao,avanco_guiador,1).
某些元素的费用为
% cost(Element, Cost)
我正在尝试将以下谓词写成谓词
% calc_cost(Element, TCost, LEleWCost)
在给定一个Element的情况下,将计算该元素以及组成该元素的所有其他元素的总成本(TCost)。 LEleWCost是没有相关费用的元素列表。
我当前的问题是将所有元素纳入Element的组成部分,我将如何实现?
我对calc_cost的想法是遍历包含Element及其所有子元素的列表,然后计算它们的成本并增加TCost或将它们无成本地添加到元素列表中,但是我目前仍在尝试得到该列表,并想知道是否会有更简单的方法来实现这一目标。