Рассмотрите рассмотрение ВЫХОДНОЙ пункт :
USE AdventureWorks2012;
GO
DECLARE @MyTableVar table(
EmpID int NOT NULL,
OldVacationHours int,
NewVacationHours int,
ModifiedDate datetime);
UPDATE TOP (10) HumanResources.Employee
SET VacationHours = VacationHours * 1.25,
ModifiedDate = GETDATE()
OUTPUT inserted.BusinessEntityID,
deleted.VacationHours,
inserted.VacationHours,
inserted.ModifiedDate
INTO @MyTableVar;
--Display the result set of the table variable.
SELECT EmpID, OldVacationHours, NewVacationHours, ModifiedDate
FROM @MyTableVar;
GO
--Display the result set of the table.
SELECT TOP (10) BusinessEntityID, VacationHours, ModifiedDate
FROM HumanResources.Employee;
GO
Я не проверял это сам; однако, я прочитал , что реализация имитационного отжига для решения ТСП (или его вариантов) может дать отличные результаты. Ключевым моментом здесь является то, что имитация отжига очень проста в реализации и требует минимальной настройки, в то время как алгоритмы аппроксимации могут занять гораздо больше времени и, вероятно, более подвержены ошибкам. У Skiena также есть страница , посвященная конкретным решателям TSP.
Если вы ограничиваете проблему круговыми поездками (т. Е. Продавец может покупать только билеты туда и обратно), то она может быть представлена неориентированным графом, и проблема сводится к нахождению минимального связующего дерева , что может быть сделано эффективно.
В общем случае я не знаю умного способа использования эффективных алгоритмов; ГА или подобное может быть хорошим способом.