It isn't directly applicable to this problem, but the ideas are similar. If you are interested, try searching for it! For example, see here.