modificado un poco getOptimalDirIndex y agregado comentarios