tmp algoritm