Muy buenas,
Estoy buscando desde hace tiempo como hacer un grafo, o árbol binario (creo), con unos cálculos específicos con PHP y no hay manera.

Os explico:
Quiero llegar a conocer la persona que administrará una empresa, siendo la condición absoluta tener el máximo de participaciones. Se debe tener en cuenta que toda empresa con participaciones puede tener al mismo tiempo sus propias participaciones repartidas entre otras empresas y/o personas... y eso se puede ir alargando hasta el infinito y más allá :)

Un ejemplo: Donde Ex serian empresas y Px serian personas.

E1 tiene sus participaciones repartidas como sigue: P1(20%), P2(35%), E2(15%), E3(30%).
Resultado 1: Si E2 es controlada por P3 y E3 por P4... Administrará P2 (35%).
Resultado 2: Si E2 es controlada por P1 y E3 por P4... Administrarán P1 y P2 (35% cada una)
Resultado 3: Si E2 es controlada por P3 y E3 por P1... Administrará P1 (50%)
Resultado 4: Si E2 es controlada por P2 y E3 por P1... Administrará P2 (50%)
etcétera

Además, ahí creo que es donde lo complicamos... E2 y E3 pueden tener sus participaciones repartidas entre otras empresas y/o personas, como comentaba. Esto significa que debo recorrer todas las relaciones para crear el árbol y finalmente volver atrás para saber que persona administra cada empresa para saber si en la siguiente empresa aumenta sus participaciones y para llegar al final a saber quien administra la primera empresa.

Un tanto extraño de explicar en poco espacio pero creo que se puede llegar a entender.

Hay que tener en cuenta que el array que crearemos para recorrerlo debe llevar, para cada elemento, la información de quién es (persona o empresa) y que porcentaje representa, etc.

Buff... alguien tiene idea de por donde debo ir?
Muchísisisisisisimas gracias por adelantado.