An algorithm based on

in order to simultaneously