У меня есть очередь действий, разделенных между клиентами, фиксирующих действия пользователей и выполняемых роботом на другом сайте. Примером действий может быть следующее:
CREATE FOLDER /docs
CREATE FILE /docs/journal.txt
DELETE FILE /docs/blog.txt
MOVE FOLDER /docs/images /docs/photos
...
Часто есть действия, которые можно свести к одному или ни к одному. Например:
CREATE FOLDER /docs
RENAME FOLDER /docs /documents
Можно просто изменить на:
CREATE FOLDER /documents
И что-то вроде:
CREATE FOLDER /docs
RENAME FOLDER /documents
DELETE FOLDER /documents
Можно полностью удалить из очереди.
Этот вид редукции/оптимизации кажется очень общей проблемой, и прежде чем приступить к ней, я хотел бы попробовать какое-нибудь общее решение. Это похоже на проблему оптимизации поиска пути.
Есть идеи?