###Method #4 New as of the 26th of August 2014 (i.e. not a part of the original post.) This method should be faster than the others.
forest = RandomChoice[{1, 1, 0}, {1000, 1000}];
forest = ReplacePart[forest, RandomChoice[Position[forest, 1]] -> 10];
res = FixedPoint[
Composition[
Unitize[First@#] + 9 UnitStep[Last@# - 110] &,
{#, ListConvolve[{{0, 1, 0}, {1, 100, 1}, {0, 1, 0}}, #, {2, 2}, 0]} &
],
forest
];
ArrayPlot[res, ColorRules -> {0 -> Brown, 1 -> Green, 10 -> Orange}]
###Conclusions I hope that in these three different examples you can find something that might help you simulate your model. As for efficiency, a lot of the time is spent visualizing. The computation is much faster, and I tried to measure it, although I am unsure of my results because they seem very unlikely. I would be grateful if someone would confirm them. Remember that these times also seem faster than you anticipate because it takes time for the frontend to display the result, even in list form. For 200x200 pixel grid the methods take this much time: