So, as I mentioned in the ranting thread, I wanted to make a script to track a person's blood relations, so I can add a line like "He is your great great uncle." when I honours someone. At first, I thought this would be simple. Find the lowest common ancestor of person A and person B, look at the distance from that ancestor for each of them, now you know exactly how person A and person B are related. Easy.
But then I remembered incest, and everything was ruined. One person can have multiple distances to the lowest common ancestor, there can be a bunch of lowest common ancestors, there can be ancestors who aren't the lowest but still matter for determining the relationship, or all of the above. I've been thinking about it for a couple days now, and no matter what I try I can't think of a method/algorithm for determining which common ancestors matter for determining the relationship between two people. Every time I think of something that might work, I can find an example that screws it up.
So, does anyone have any ideas for how to find all the blood relationships between two people, accounting for any amount of entanglement due to incest? I tried searching for family tree programs or anything else that might already do this, but I couldn't find anything useful.