algorithm optimised to only calculate cells for which the neighbors have changed since last iteration