Sometimes I think you are taunting me...
I actually came up with an algorithm for this when discussing [SteadyCoin] consensus building. It's somewhere back in my post history. Ripple's consensus building is slightly different but I can summarize my original logic. Maybe it can be modified for ripple.
...
While I believe this can be made to work from a technical angle, I'm very nervous about how well it will work in the real world because of the incentives it creates. We want validators to have a strong incentive to broaden their UNL to avoid a network split. In this scheme, each validator you add to your UNL costs you money, and there's a much greater risk that the set of validators will be a small group that refuses to listen to anyone outside the group and presents a "take it or leave it" choice to the outside world.
Assuming you want the mining rate to be relatively fixed, every node except the one that "mines" a block now has an incentive to prevent a consensus being reached on that block because that's one more reward it won't get rather than a chance at that reward. Bitcoin doesn't have this problem because every miner has a strong incentive to build on the longest chain. I'm not sure how you could replicate that in this scheme.