Я подобную систему делал за 70к. Писал на C#+Firebird. По алгоритму реализовал "жадный алгоритм". Он реально быстрее. Точность получилась сравнимая с ручным способом.
По теории смотреть работы Мухачевой Элиты Александровны (
www.mathnet.ru/rus/person29136).