Veja também o Relatório Final.
O algoritmo de ortogonalização foi implementado seguindo a proposta de Biedl, Madden e Tollis, descrita em The three-phase method: A unified approach
to orthogonal graph drawing.
Na primeira fase aplica-se um dos três algoritmos de posicionamento já implementados.
A segunda e terceira fase foram implementadas seguindo algumas das orientações gerais dos autores, mas muitas adaptações foram necessárias para que o algoritmo funcionasse corretamente com o modelo de barras de diagramas unifilares. Uma das principais restrições é que as linhas só podem sair de dois lados da barra, o que depois de várias tentativas de implementação, acabou resultando numa implementação bem simples.
Após a escolha do roteamento inicial na segunda fase, feito seguindo a idéia de substituição de padrões, a terceira fase fica responsável pela atribuição dos slots de cada linha e os ajustes para evitar a sobreposição de linhas de uma mesma barra. Os slots são associados de acordo com as coordenadas horizontais da barras que são ligadas à barra em análise pelas suas arestas.
O algoritmo funciona bem para um número pequeno de barras e linhas, mas a limitação de que não podemos mover os nós depois da primeira fase impede a obtenção de melhores resultados.
É importante salientar que grande parte dos algoritmos de posicionamento que não são baseados em força têm sérias limitações quando aos tipos de dados aos quais podem ser aplicados, muitos somente sendo aplicáveis aos 4-graphs, grafos de grau 4, ou mesmo somente aos de grau 3. Dessa forma, mesmo algoritmos de força não sendo muito "amigáveis" à ortogonalização, eles foram utilizados na falta de um melhor algoritmo de posicionamento para os casos estudados. Mesmo com as limitações da implementação final, os resultados são interessantes e o algoritmo pode servir de base para implementações mais completas futuramente.