📄 chemfirm.clp
字号:
(link47 (multi ?multi47) (time ?time47))
(link48 (multi ?multi48) (time ?time48))
(link49 (multi ?multi49) (time ?time49))
(link50 (multi ?multi50) (time ?time50))
(link51 (multi ?multi51) (time ?time51))
(link52 (multi ?multi52) (time ?time52))
(link53 (multi ?multi53) (time ?time53))
(link54 (multi ?multi54) (time ?time54))
(link55 (multi ?multi55) (time ?time55))
?cashflow <- (cashflow (value ?value))
=> (retract ?start ?link1 ?link18 ?link19 ?link20 ?link21 ?link22 ?cashflow)
(printout t "What is the multiplier effect of housing to chlorine"crlf)
(printout t "industry demand? Enter 7.2 for default." crlf)
(bind ?multi1 (read))
(assert (link1 (multi ?multi1) (time 0)))
(bind ?link18m (+ (* ?multi1 ?multi2)
(* ?multi1 ?multi3)))
(bind ?link18t (+ ?time1 ?time2 ?time3))
(printout t "The multiplier effect of housing to chemfirm-operating profit" crlf)
(printout t "is " ?link18m " with time lag of "
?link18t " months." crlf)
(bind ?final (* ?value ?link18m))
(assert (cashflow (value ?final )))
(printout t "The cumulative multiplier effect of all input changes to " crlf)
(printout t "chemfirm-operating profit is " ?final crlf)
(assert (link18 (multi ?link18m) (time ?link18t)))
(printout t "The path of the multiplier effect of housing " crlf)
(printout t "is as follows:" crlf)
(bind ?link19m (+ ?multi19 0))
(printout t "The multiplier effect of the path of housing" crlf)
(printout t "to chlorine-industry-demand is " ?link19m crlf)
(assert (link19 (multi ?link19m) (time ?time19)))
(bind ?link20m (* ?multi1 ?multi3))
(printout t "The multiplier effect of the path of housing " crlf)
(printout t "to chlorine-price is " ?link20m crlf)
(assert (link20 (multi ?link20m) (time ?time20)))
(bind ?link21m (* ?multi1 ?multi2))
(printout t "The multiplier effect of the path of housing " crlf)
(printout t "to chlorine-chemfirm-demand is " ?link21m crlf)
(assert (link21 (multi ?link21m) (time ?time21)))
(bind ?link22m (+ (* ?multi1 ?multi2)
(* ?multi1 ?multi3)))
(printout t "The multiplier effect of the path of housing " crlf)
(printout t "to chlorine-chemfirm-profit is " ?link22m crlf)
(assert (link22 (multi ?link22m) (time ?time22)))
(assert (continue yes-or-no)))
(defrule start-pulp-paper
?start <- (start pulp-paper)
?link9 <- (link9 (multi ?multi9) (time ?time9))
(link1 (multi ?multi1) (time ?time1))
(link2 (multi ?multi2) (time ?time2))
(link3 (multi ?multi3) (time ?time3))
(link4 (multi ?multi4) (time ?time4))
(link5 (multi ?multi5) (time ?time5))
(link6 (multi ?multi6) (time ?time6))
(link7 (multi ?multi7) (time ?time7))
(link8 (multi ?multi8) (time ?time8))
(link10 (multi ?multi10) (time ?time10))
(link11 (multi ?multi11) (time ?time11))
(link12 (multi ?multi12) (time ?time12))
(link13 (multi ?multi13) (time ?time13))
(link14 (multi ?multi14) (time ?time14))
(link15 (multi ?multi15) (time ?time15))
(link16 (multi ?multi16) (time ?time16))
(link17 (multi ?multi17) (time ?time17))
(link18 (multi ?multi18) (time ?time18))
(link19 (multi ?multi19) (time ?time19))
(link20 (multi ?multi20) (time ?time20))
(link21 (multi ?multi21) (time ?time21))
(link22 (multi ?multi22) (time ?time22))
?link23 <- (link23 (multi ?multi23) (time ?time23))
?link24 <- (link24 (multi ?multi24) (time ?time24))
?link25 <- (link25 (multi ?multi25) (time ?time25))
?link26 <- (link26 (multi ?multi26) (time ?time26))
?link27 <- (link27 (multi ?multi27) (time ?time27))
(link28 (multi ?multi28) (time ?time28))
(link29 (multi ?multi29) (time ?time29))
(link30 (multi ?multi30) (time ?time30))
(link31 (multi ?multi31) (time ?time31))
(link32 (multi ?multi32) (time ?time32))
(link33 (multi ?multi33) (time ?time33))
(link34 (multi ?multi34) (time ?time34))
(link35 (multi ?multi35) (time ?time35))
(link36 (multi ?multi36) (time ?time36))
(link37 (multi ?multi37) (time ?time37))
(link38 (multi ?multi38) (time ?time38))
(link39 (multi ?multi39) (time ?time39))
(link40 (multi ?multi40) (time ?time40))
(link41 (multi ?multi41) (time ?time41))
(link42 (multi ?multi42) (time ?time42))
(link43 (multi ?multi43) (time ?time43))
(link44 (multi ?multi44) (time ?time44))
(link45 (multi ?multi45) (time ?time45))
(link46 (multi ?multi46) (time ?time46))
(link47 (multi ?multi47) (time ?time47))
(link48 (multi ?multi48) (time ?time48))
(link49 (multi ?multi49) (time ?time49))
(link50 (multi ?multi50) (time ?time50))
(link51 (multi ?multi51) (time ?time51))
(link52 (multi ?multi52) (time ?time52))
(link53 (multi ?multi53) (time ?time53))
(link54 (multi ?multi54) (time ?time54))
(link55 (multi ?multi55) (time ?time55))
?cashflow <- (cashflow (value ?value))
=> (retract ?start ?link9 ?link23 ?link24 ?link25 ?link26 ?link27 ?cashflow)
(printout t "What is the multiplier effect of pulp-paper to caustic soda"crlf)
(printout t "industry demand? Enter 0.22 for default." crlf)
(bind ?multi9 (read))
(assert (link9 (multi ?multi9) (time 0)))
(bind ?link23m (+ (* ?multi9 ?multi10)
(* ?multi9 ?multi11)))
(bind ?link23t (+ ?time9 ?time10 ?time11))
(printout t "The multiplier effect of pulp-paper to chemfirm-operating profit" crlf)
(printout t "is " ?link23m " with time lag of "
?link23t " months." crlf)
(bind ?final (* ?value ?link23m))
(assert (cashflow (value ?final )))
(printout t "The cumulative multiplier effect of all input changes to" crlf)
(printout t "chemfirm-operating profit is " ?final crlf)
(assert (link23 (multi ?link23m) (time ?link23t)))
(printout t "The path of the multiplier effect of pulp-paper" crlf)
(printout t "is as follows: " crlf)
(bind ?multi24m (+ ?multi9 0))
(printout t "The multiplier effect of the path of pulp-paper" crlf)
(printout t "to caustic-soda-industry-demand is "
?multi24m crlf)
(assert (link24 (multi ?multi24m) (time ?time24)))
(bind ?link25m (* ?multi9 ?multi11))
(printout t "The multiplier effect of the path of pulp-paper" crlf)
(printout t "to caustic-soda-price is " ?link25m crlf)
(assert (link25 (multi ?link25m) (time ?time25)))
(bind ?link26m (* ?multi9 ?multi10))
(printout t "The multiplier effect of the path of pulp-paper" crlf)
(printout t "to caustic-soda-chemfirm-demand is " ?link26m crlf)
(assert (link26 (multi ?link26m) (time ?time26)))
(bind ?link27m (+ (* ?multi9 ?multi10) (* ?multi9 ?multi11)))
(printout t "The multiplier effect of the path of pulp-paper" crlf)
(printout t "to caustic-soda-chemfirm-profit is " ?link27m crlf)
(assert (link27 (multi ?link27m) (time ?time27)))
(assert (continue yes-or-no)))
(defrule start-crudeoil
?start <- (start crudeoil)
?link12 <- (link12 (multi ?multi12) (time ?time12))
?link13 <- (link13 (multi ?multi13) (time ?time13))
?link14 <- (link14 (multi ?multi14) (time ?time14))
(link1 (multi ?multi1) (time ?time1))
(link2 (multi ?multi2) (time ?time2))
(link3 (multi ?multi3) (time ?time3))
(link4 (multi ?multi4) (time ?time4))
(link5 (multi ?multi5) (time ?time5))
(link6 (multi ?multi6) (time ?time6))
(link7 (multi ?multi7) (time ?time7))
(link8 (multi ?multi8) (time ?time8))
(link9 (multi ?multi9) (time ?time9))
(link10 (multi ?multi10) (time ?time10))
(link11 (multi ?multi11) (time ?time11))
(link15 (multi ?multi15) (time ?time15))
(link16 (multi ?multi16) (time ?time16))
(link17 (multi ?multi17) (time ?time17))
(link18 (multi ?multi18) (time ?time18))
(link19 (multi ?multi19) (time ?time19))
(link20 (multi ?multi20) (time ?time20))
(link21 (multi ?multi21) (time ?time21))
(link22 (multi ?multi22) (time ?time22))
(link23 (multi ?multi23) (time ?time23))
(link24 (multi ?multi24) (time ?time24))
(link25 (multi ?multi25) (time ?time25))
(link26 (multi ?multi26) (time ?time26))
(link27 (multi ?multi27) (time ?time27))
?link28 <- (link28 (multi ?multi28) (time ?time28))
?link29 <- (link29 (multi ?multi29) (time ?time29))
?link30 <- (link30 (multi ?multi30) (time ?time30))
?link31 <- (link31 (multi ?multi31) (time ?time31))
?link32 <- (link32 (multi ?multi32) (time ?time32))
(link33 (multi ?multi33) (time ?time33))
(link34 (multi ?multi34) (time ?time34))
(link35 (multi ?multi35) (time ?time35))
(link36 (multi ?multi36) (time ?time36))
(link37 (multi ?multi37) (time ?time37))
(link38 (multi ?multi38) (time ?time38))
(link39 (multi ?multi39) (time ?time39))
(link40 (multi ?multi40) (time ?time40))
(link41 (multi ?multi41) (time ?time41))
(link42 (multi ?multi42) (time ?time42))
(link43 (multi ?multi43) (time ?time43))
(link44 (multi ?multi44) (time ?time44))
(link45 (multi ?multi45) (time ?time45))
(link46 (multi ?multi46) (time ?time46))
(link47 (multi ?multi47) (time ?time47))
(link48 (multi ?multi48) (time ?time48))
(link49 (multi ?multi49) (time ?time49))
(link50 (multi ?multi50) (time ?time50))
(link51 (multi ?multi51) (time ?time51))
(link52 (multi ?multi52) (time ?time52))
(link53 (multi ?multi53) (time ?time53))
(link54 (multi ?multi54) (time ?time54))
(link55 (multi ?multi55) (time ?time55))
?cashflow <- (cashflow (value ?value))
=> (retract ?start ?link12 ?link13 ?link14 ?link28 ?link29 ?link30
?link31 ?link32 ?cashflow)
(printout t "What is the price of crude oil per barrel? DO NOT enter $ sign." crlf)
(bind ?oilprice (read))
(assert (oilprice ?oilprice))
(if (and (numberp ?oilprice) (> ?oilprice 30))
then
(printout t "Assume that whenever the price of crude oil per barrel goes up above $30"crlf)
(printout t "in near future, it becomes economically cheaper to produce"crlf)
(printout t "caustic soda by soda ash mining products. Therefore, the "crlf)
(printout t "crude oil price increase affects the chemfirm-operating profit in two ways."crlf)
(printout t "First, the crude oil price increases the costs of production "crlf)
(printout t "as well as caustic-soda-new-capacity. The combined effect of"crlf)
(printout t "crude-oil-price increase is shown in two stages. The first "crlf)
(printout t "stage affects the cost of production, and the second stage"crlf)
(printout t "affects the increase in caustic-soda-new-capacity by means"crlf)
(printout t "of soda ash. The result through the two stages is shown as"crlf)
(printout t "the cumulative multipler effect of caustic-soda-new-capacity"crlf)
(printout t "on chemfirm-operating profit to indicate that the second stage effect is"crlf)
(printout t "through caustic-soda-new-capacity increase even though it"crlf)
(printout t "originated from the increase in crude-oil-price."crlf)
(printout t "When the second stage starts by asking the the multiplier effect"crlf)
(printout t "of caustic-soda-new-capacity to caustic-soda-industry-capacity,"crlf)
(printout t "answer it by entering 1.0 or the default value."crlf)
(assert (start na-new-capacity))
else
(assert (continue yes-or-no)))
(printout t "What is the multiplier effect of crude-oil to chlorine-"crlf)
(printout t "price? Enter 0.029 for default." crlf)
(bind ?multi12 (read))
(assert (link12 (multi ?multi12) (time 0)))
(printout t "What is the multiplier effect of crude oil to caustic soda"crlf)
(printout t "price? Enter 1.79 for default." crlf)
(bind ?multi13 (read))
(assert (link13 (multi ?multi13) (time 0)))
(printout t "What is the multiplier effect of crude oil to chemfirm-cost"crlf)
(printout t "per ton of chlor-alkali? Enter 9.34 for default." crlf)
(bind ?multi14 (read))
(assert (link14 (multi ?multi14) (time 0)))
(bind ?link28m (+ ?multi12 ?multi13
(* ?multi14 ?multi16)
(* ?multi14 ?multi15)))
(bind ?link28t (+ ?time12 ?time13 ?time14 ?time15 ?time16))
(printout t "The multiplier effect of crude oil to chemfirm-operating profit" crlf)
(printout t "is " ?link28m " with time lag of "
?link28t " months." crlf)
(bind ?final (* ?value ?link28m))
(assert (cashflow (value ?final )))
(printout t "The cumulative multiplier effect of all input changes to" crlf)
(printout t "chemfirm-operating profit is " ?final crlf)
(assert (link28 (multi ?link28m) (time ?link28t)))
(printout t "The path of the multiplier effect of crudeoil" crlf)
(printout t "is as follows:" crlf)
(bind ?link29m (+ ?multi12 (* ?multi14 ?multi16)))
(printout t "The multiplier effect of the path of crudeoil" crlf)
(printout t "to chemfirm-chlorine-profit is " ?link29m crlf)
(assert (link29 (multi ?link29m) (time ?time29)))
(bind ?link30m (+ ?multi12 0))
(printout t "The multiplier effect of the path of crudeoil" crlf)
(printout t "to chlorine-price is " ?link30m crlf)
(assert (link30 (multi ?link30m) (time ?time30)))
(bind ?link31m (+ ?multi13 0))
(printout t "The multiplier effect of the path of crudeoil" crlf)
(printout t "to caustic-soda-price is " ?link31m crlf)
(assert (link31 (multi ?link31m) (time ?time31)))
(bind ?link32m (+ ?multi13 (* ?multi14 ?multi15)))
(printout t "The multiplier effect of the path of crudeoil" crlf)
(printout t "to chemfirm-caustic-soda-profit is " ?link32m crlf)
(assert (link32 (multi ?link32m) (time ?time32))))
(defrule start-chlor-new-capacity
?start <- (start chlor-new-capacity)
?link4 <- (link4 (multi ?multi4) (time ?time4))
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -