Nacido en Cluj, Rumanía, en 1922, en el seno de una familia judía de origen húngaro, Egon Balas participó en actividades clandestinas durante la Segunda Guerra Mundial; fue capturado y torturado por los alemanes, pero logró escapar. Tras la guerra, fue nombrado diplomático en Londres y ocupó puestos de responsabilidad en la Rumanía comunista que se estaba construyendo. Pero volvió a la cárcel por sus ideas no conformes; sufrió interrogatorios repetidos de la temida Securitate y aislamiento en celda durante más de dos años, hasta que fue liberado y expulsado del Partido Comunista. No comenzó su carrera como matemático hasta los 37 años. Esta fascinante epopeya puede leerse en su relato autobiográfico La Liberté et rien d’autre, publicado en francés por L’Harmattan en 2003.
Al salir de prisión, Egon Balas fue destinado al Instituto de Aguas y Bosques de Bucarest, donde se planificaba la explotación forestal en Rumanía. Para desarrollar las herramientas logísticas adecuadas, tuvo que estudiar por su cuenta matemáticas e investigación operativa, con los libros que lograba conseguir. Peter Hammer (1936‒2006), que también llegaría a ser muy conocido en el ámbito de la investigación operativa, trabajaba en aquel instituto por la misma época. Para planificar el transporte de la madera, Balas y Hammer crearon nuevas herramientas basadas en la teoría de flujos en redes y en la programación lineal (Hammer publicaba entonces con el nombre de Ivanescu).
Un pionero de la optimización en números enteros ----------------------------------------------------
En 1962, Egon Balas se enfrentó a un problema complejo. En una zona forestal había que construir toda una red de pistas de acceso para llegar a parcelas remotas. Se trataba de decidir qué parcelas explotar y qué pistas de acceso construir. Estas decisiones están estrechamente vinculadas. Implican relaciones de implicación lógica: si se construye el tramo A de carretera, también hay que construir el tramo B para que sea posible llegar a A. Egon Balas formuló el problema como un programa lineal con variables binarias (0, 1). Por ejemplo, si xA = 1 representa la construcción del tramo A y xB = 1 representa la construcción del tramo B, la restricción xA ≤ xB, para variables xA, xB que toman los valores 0 o 1, representa la implicación lógica mencionada más arriba. Para expresar mediante una restricción lineal en variables 0 y 1 la condición «hay que construir al menos uno de los tramos A, B o C», escribiríamos asimismo xA + xB + xC ≥ 1.