Mathematically, assuming perfect knowledge about the future (if we can remove an animal, we might as well see the future):
Define S_0 = the number of piles of dog shit I will step on in the rest of my life assuming no dog has been removed.
Given dog d, define S(d) = the number of piles of dog shit I will step on in the rest of my life assuming dog d is removed right now.
Select d_1 = argmin{S(d}}. (If there’s a tie, just pick one arbitrarily or use a tie-breaking metric)
If S(d_1) < S_0, then remove d_1.
If S(d_1) = S_0, then there is no improvement over baseline - maybe whichever dog I could remove just gets replaced with another dog. In this case, I could still remove d_1 if the tie-breaking metric did find an improvement, otherwise see next case.
If S(d_1) > S_0, then no matter what dog I try to remove, somehow I end up stepping on more piles of shit in my life?! Ugh. Remove the nearest ant or something.
Mathematically, assuming perfect knowledge about the future (if we can remove an animal, we might as well see the future):
Define S_0 = the number of piles of dog shit I will step on in the rest of my life assuming no dog has been removed.
Given dog d, define S(d) = the number of piles of dog shit I will step on in the rest of my life assuming dog d is removed right now.
Select d_1 = argmin{S(d}}. (If there’s a tie, just pick one arbitrarily or use a tie-breaking metric)
If S(d_1) < S_0, then remove d_1.
If S(d_1) = S_0, then there is no improvement over baseline - maybe whichever dog I could remove just gets replaced with another dog. In this case, I could still remove d_1 if the tie-breaking metric did find an improvement, otherwise see next case.
If S(d_1) > S_0, then no matter what dog I try to remove, somehow I end up stepping on more piles of shit in my life?! Ugh. Remove the nearest ant or something.