exercise algorithms