Мне приходило в голову сделать такое: если в результате моего хода камень начал падать, то просчитать вперед состояния мира до тех пор, пока он не остановился (это быстро, если update написан как О(кол-во ячеек изменившихся на пред. ходу)) и сделать в конечном состоянии BFS с целью найти компоненты связности, а заодно и то, что в этих компонентах содержится (сколько лямбд, есть ли в компоненте лифт, есть ли робот). Если в конечном состоянии у мира больше компонент связности, чем в текущем и в них содержится что-то важное (типа лифта) - то сделать сильное пенальти на этот вариант хода. Но на самом деле, это, конечно тоже не решает TSP.
no subject