System+Dynamics+-+Hog+Case

= GRADE = 7/10= Comments: 1. There is no clear problem statement and its behavior? Without this reference mode, how can you be sure that the model is coming up with the correct behavior? 2. Show the development of CLD and SFD. There is inconsistency between CLD and SFD. There is only one feedback within SFD but there are a lot in the CLD. 3. It seems that oscillations are part of the commodity cycle. Is this good or bad? how do we manage them? = = =HOG CASE=

PRESENT SYSTEM
The case presented this time consists of a commodity cycle which deals with hogs, or pork in particular. The main element in the model is the inventory of pork maintained by the butchers. When hogs are slaughtered on the farm, pork products are added to the inventory kept by the butchers, and when pork is sold inventory of pork is reduced. It is described that the price of pork depends on the pork inventory. When there is a surplus of pork products, prices fall; when there is a shortage, prices rise. On the other hand, the price of pork depends on the prices of hogs, and the prices of hogs depends on the supply and demand. When pork inventory runs low, butchers are willing to pay higher prices to buy hogs and if inventory is high they are willing to pay less for hogs.

ASSUMPTIONS OF THE STUDY
The following are assumptions given by the case:
 * There are 400 million hogs slaughtered each month
 * Each hog weighs an average of 250 pounds
 * From each hog only 60% becomes dressed yield of pork
 * People consume 3 pounds of pork per month
 * There is a human population of 200 million
 * The rate of pork consumption of humans is 600 million pounds of pork per month
 * Butchers will keep two weeks worth of pork inventory on-hand
 * The normal price of hogs is $0.3 per pound
 * The price of pork is $0.5 per pound
 * Normal price of pork for consumers is $1 per pound

CAUSAL LOOP & STOCK FLOW DIAGRAMS
Figure 1 Shows the causal loop diagram for the commodity flow of hogs. The causal loop consists of 7 feedback loops 6 of which are negative feedback loops and a single positive feedback loop.

//Feedback Loop 1//
Feedback loop 1 consists of the relationships between the demand for hogs and the price for hogs. The price of hogs negatively affects the demand for hogs as prices of hogs go up, they become less acceptable to consumer. The demand for hogs positively affects the price of hogs, as there is more demand the prices of hogs will increase.

//Feedback Loop 2//
Feedback loop 2 is the single positive feedback loop in the causal loop. It shows the relationship between the demand for hogs and pork inventory. The negative links between these two variables go both ways as the demand for hogs increases, pork inventory decreases and as pork inventory decreases the demand for hogs increases.

//Feedback Loop 3//
Feedback loop 3 consists of 3 variables, namely the price of pork, pork inventory, and the consumption of pork. There are negative links from pork inventory to price of pork to pork consumption and back to pork inventory, completing the loop. As pork inventory increases the price of pork decreases due to the laws of supply and demand and as the price of pork decreases pork consumption increases and finally, as pork consumption increases pork inventory decreases. This behavior continues also in the opposite behavior.

//Feedback Loop 4//
Feedback loop 4 consists of two variables pork consumption and pork inventory. There is a positive link from pork inventory to pork consumption and a negative link from the latter back to pork inventory. This explains as pork inventory increases there will be an increase in the consumption of pork, on the other hand, if there is an increase in pork consumption then pork inventory decreases.

//Feedback Loop 5//
This is another negative feedback loop and consists of two variables; pork inventory and slaughtered hogs. There is a negative link from pork inventory to slaughtered hogs. This explains as inventory decreases there will be a tendency to slaughter more hogs. There is also a positive link from slaughtered hogs to pork inventory as more hogs are slaughtered there will be more pork in the inventory of the butcher.

//Feedback Loop 6//
Another feedback loop explaining the relationship of two variables; hog supply and slaughtered hogs. There is a negative link from slaughtered hogs to hog supply as the number of slaughtered hogs increase there will be a decrease in the hog supply. Completing the loop is a positive link from hog supply to slaughtered hogs explaining that as the hog supply increases there will be more hogs to be slaughtered.

//Feedback Loop 7//
The last negative feedback loop consists of three variables pork inventory, demand for hogs and prices of hogs, all of which have a negative link from connecting each other. The negative links between price of hogs and demand for hogs and the demand for hogs and pork inventory has been explained earlier in feedback loops 1 and 2. The final link is the link between pork inventory and price of hogs. This explains the relationship wherein butchers are willing to pay higher prices for hogs when pork inventory is low and lower prices when inventory is high.



Figure 2 shows a stock flow diagram for the commodity flow of hogs. This serves as an alternate representation of the causal loop diagram. It also follows the same logic and behavior.

//CODE FRAMEWORK//
L PINVT.K=PINVT.J+DT*(HSLAUT.JK-PSOLD.JK) N PINVT=600 A PORKP.K=(300/(PINVT.K))+.5 A PORKD.K=TABLE(DEMNDP,PORKP.K,0.6,1.4,0.2) A HOGINV.K=PINVT.K*0.5 A HOGPRC.K=TABLE(HPRICE,HOGINV.K,0,600,300) T HPRICE=0.6/0.3/0 T DEMNDP=2/1.5/1/0.5/0 R HSLAUT.KL=600 R PSOLD.KL=DELAY1(PORKD.K*600,1) SPEC DT=.25/SAVPER=.25/LENGTH=50NOTE Time is in months SAVE PINVT,HSLAUT,PSOLD,PORKP,PORKD,HOGPRC

The syntax presented above makes up the framework for use in the case. It was modified in order to answer specific questions required from the case.

//**DETERMINING THE INITIAL PORK INVENTORY**//
L PINVT.K=PINVT.J+DT*(HSLAUT.JK-PSOLD.JK) N PINVT=600 __//*OR 800*//__ A PORKP.K=(300/(PINVT.K))+.5 A PORKD.K=TABLE(DEMNDP,PORKP.K,0.6,1.4,0.2) A HOGINV.K=PINVT.K*0.5 A HOGPRC.K=TABLE(HPRICE,HOGINV.K,0,600,300) T HPRICE=0.6/0.3/0T DEMNDP=2/1.5/1/0.5/0 R HSLAUT.KL=600 R PSOLD.KL=DELAY1(PORKD.K*600,1) SPEC DT=.25/SAVPER=.25/LENGTH=50NOTE Time is in months SAVE PINVT,HSLAUT,PSOLD,PORKP,PORKD,HOGPRC

In determining the best initial pork inventory value that would give the an equilibrium from the start several values for N PINVT=n were chosen. Values chosen were 600, 800, 1800, and 2100, from all values an initial value of 600 allowed equilibrium to be attained from the start. Figure 3 below shows the behavior when the initial value was set to 800, and figure 4 shows the behavior when the initial value is set to 600.

//**DETERMINING THE RESPONSE TO A YEAR LONG REDUCTION IN SLAUGHTER RATE** L PINVT.K=PINVT.J+DT*(HSLAUT.JK-PSOLD.JK) //
N PINVT=600 __//*OR 800*//__ A PORKP.K=(300/(PINVT.K))+.5 A PORKD.K=TABLE(DEMNDP,PORKP.K,0.6,1.4,0.2) A HOGINV.K=PINVT.K*0.5 A HOGPRC.K=TABLE(HPRICE,HOGINV.K,0,600,300) T HPRICE=0.6/0.3/0T DEMNDP=2/1.5/1/0.5/0 R HSLAUT.KL=600-__**STEP(60,12)+STEP(60,24)**__ R PSOLD.KL=DELAY1(PORKD.K*600,1) SPEC DT=.25/SAVPER=.25/LENGTH=50NOTE Time is in months SAVE PINVT,HSLAUT,PSOLD,PORKP,PORKD,HOGPRC

In order to determine the response to a year long 10% reduction in the slaughter rate of hogs a step function was added to the HSLAUT.KL syntax. Originally, the syntax was set as R HSLAUT.KL=600 representing a constant slaughter rate of 600 million pounds of hogs per month but for this problem the STEP function was added and the resulting syntax came to be R HSLAUT.KL=600-STEP(60,12)+STEP(60,24). The new syntax represented a 10% reduction for a year and a return back to normal conditions. The reduction occurs after 1 year. Figure 5 shows the responses to this kind of disturbance with an initial value of 600 while Figure 6 shows the same with an initial value of 800.

From the images shown above, it is clear that after the changes there was some oscillation that occurred after before the system went back into equilibrium. It is proven through the fact that even though the initial value used was the value that ensured equilibrium, after a disturbance in the slaughter rate there was an immediate oscillation, and when the conditions returned to normal there was again oscillation before equilibrium was again achieved.

//**DETERMINING THE RESPONSE TO A YEAR LONG INCREASE IN PORK CONSUMPTION**//
L PINVT.K=PINVT.J+DT*(HSLAUT.JK-PSOLD.JK) N PINVT=600 A PORKP.K=(300/(PINVT.K))+.5 A PORKD.K=TABLE(DEMNDP,PORKP.K,0.6,1.4,0.2) A HOGINV.K=PINVT.K*0.5 A HOGPRC.K=TABLE(HPRICE,HOGINV.K,0,600,300) T HPRICE=0.6/0.3/0 T DEMNDP=2/1.5/1/0.5/0 R HSLAUT.KL=600 R PSOLD.KL=DELAY1(PORKD.K*600,1)**__+STEP(60,12)-STEP(60,24)__** SPEC DT=.25/SAVPER=.25/LENGTH=50 NOTE Time is in months SAVE PINVT,HSLAUT,PSOLD,PORKP,PORKD,HOGPRC

The syntax above was used to determine the response to a year long increase in the pork consumption. A STEP function was added to the PSOLD.KL syntax (underlined and emboldened) in order to achieve the disturbance. The syntax R PSOLD.KL=DELAY1(PORKD.K*600,1)+STEP(60,12)-STEP(60,24) represents the increase in the consumption rate by 10% for a year and a return to normal conditions a year later. Figures 7 and 8 show the responses to this disturbance along with the effects of differing initial values for PINVT at 600 and 800, respectively. The images show interesting responses as, again, after an exogenous disturbance to the system oscillation occurs before the system re-establishes itself. Interestingly, it shows that the system will take longer than a year to re-establish itself in an equilibrium after a sudden increase in the selling rate of pork.

CONCLUSION AND RECOMMENDATION
From this case, the group was able to determine the effects that exogenous disturbances may have on a system. The graphs showed us how the system re-establishes itself and how long it took for the system to reach equilibrium. Other behaviors in the syntax were also checked in order to see if all equations encoded were correct.

APPENDIX
This section shows the various behaviors of graphs. These were used to check if the encoded equations in dynamo were correct.