Graph Algorithms For The Haplotyping Problem