Оказавшись в городе 3, я снова пересчитываю метки связанных с ним городов, которые я еще не посетил. Продолжая этот процесс, я в конце концов доберусь до пункта назначения, города 5, и его метка будет обозначать кратчайшее расстояние от города, с которого я начал. Затем можно воспроизвести все перемещения в обратном порядке, чтобы выяснить, через какие города проходит маршрут, соответствующий этому расстоянию. Обратите внимание, что в описанном случае он, как выясняется, вовсе не проходит через город 2.
Какова же длительность процесса выявления кратчайшего маршрута в шагах алгоритма? При наличии
Но на практике даже то, что на этом математическом языке называется шорткатом, может требовать для получения решения чрезвычайно долгого времени. В общем случае математики действительно считают алгоритмы полиномиального времени, подобные тому, который ищем мы, шорткатами. Квадратичные алгоритмы и в самом деле работают довольно быстро. Но, хотя математики называют быстрыми и алгоритмы третьей, четвертой или пятой степени, их работа может занимать долгое физическое время.
Если компьютер способен выполнять 100 миллионов операций в секунду, это не будет слишком большой проблемой при малом
За одну секунду алгоритм сложности
Однако с практической точки зрения целесообразно бороться за алгоритмы с как можно более низкими степенями
Иголки в стогах
Иголки в стогах
Вы можете надеяться, что, раз вы не коммивояжер, отсутствие шортката к прокладке кратчайшего маршрута, позволяющего объехать всех покупателей, вас не касается. Беда в том, что задач с такими же осложнениями существует очень много. Например, инженеру может понадобиться спроектировать электронную схему из сотни элементов так, чтобы робот прокладывал соединения между ними самым рациональным образом. Поскольку этот робот будет производить тысячи таких плат в сутки, сокращение времени его путешествия по соединениям этой сети даже на несколько секунд может дать компании огромную экономию средств. Но нам хотелось бы найти шорткаты не только к маршрутам перемещения по сетям. Ниже перечислены некоторые из задач, обладающих тем же качеством, что и задача коммивояжера, – задач, к решению которых, насколько нам известно, может не существовать шорткатов. Возможно, даже великий Гаусс не избежал бы при их решении долгой и нудной работы!