Автор: Андрей 1. ... 2. ...
|
|
Я Вам предложил в следующей версии сам алгоритм комивояжера и обработку графики (рисуем, кнопки, обработки мышки) разнести по разным ЮНИТАМ. Я сразу увидел где заканчивается графика и начинается алгоритм, но читать и тестировать не очень удобно. Мне например Вашего графического и отладочного фунционала мало. У меня форма-пустышка раз в 5 сложнее и мне проще для понимания Вашу логику вырезать и вложить в мой пустой проект чем пробовать что-то менять в Вашем проекте. Опять-же я понимаю что Ваш алгоритм - это всего-лишь очень удачная реализация одного из десятков подобных алгоритмов, где главное преимущество - это скорость работы. Поэтому сам начал проект (только графика, простановка случайных точек, изменение их мышкой и заготовка для поиска) в котором буду тестировать готовые и создавать свой алгоритм (все это на 2D-OpenGL собственной обработки).
Это я тоже понимаю. Матрицу растояний между городами я не планирую брать из векторного сложения координат. Матрицу мне даст гугл(Яндекс/Yahoo/OpenMap/BING/...) или операторы занесут вручную. Открываем карту и просим проложить маршрут, например, из Киева в Житомир - самый короткий маршрут для машины - 140 км.(
https://maps.google.com/maps?q=from:+%D0%9A%D0%B8%D0%B5%D0%B2,+%D0%A3%D0%BA%D1%80%D0%B0%D0%B8%D0%BD%D0%B0+to:+%D0%96%D0%B8%D1%82%D0%BE%D0%BC%D0%B8%D1%80&saddr=%D0%9A%D0%B8%D0%B5%D0%B2,+%D0%A3%D0%BA%D1%80%D0%B0%D0%B8%D0%BD%D0%B0&daddr=%D0%96%D0%B8%D1%82%D0%BE%D0%BC%D0%B8%D1%80&hl=ru&ie=UTF8&sll=50.356715,29.59129&sspn=1.351061,3.56781&geocode=FbTOAQMdCMDRASkFRVrhTs_UQDH-RgEX0jFJdg%3BFTrT_gId60u1ASldNforo2QsRzEp4rnZo9JK8Q&t=m&z=9 -> ссылка) Заносим это в базу. Когда мне понадобиться перебрать города через которые нужно проехать (и среди которых попадется Киев и Житомир) при переборе алгорим будет брать 140км, а не растояние перелета. Когда городов всего 50-80, то матрицу примерных растояний вполне можно даже в память занести для дальнейшего анализа. К тому-же мечтаю при подборе оптимального маршрута использовать не один информационный слой ("растояние") а как минимум 6(в идеале 8-11)
Свою программу пишу в одиночку с начала лета в свободное время. Проект крайне тяжелый. Работа одновременно идет на 4х-5ти языках программирования, половина из которых вебовские (не считая изучения API Google). 80% времени уходит на создание двусторонних протоколов общения учетной программы с сервисом гугла. 15% на интерфейсы понятные и удобные для пользователя. Пока не доведу до ума все ЭТО, за коммивояжера серьезно не возьмусь - только в экспериментальном режиме.
3. Мне чужда мысль о том, что программы можно продавать. Поэтому если Вы хотите таким, на мой взгляд, не совсем честным, способом получить барыш - Вам придётся для этого приложить усилия. [/url].
|
|
Смешно это слышать профессиональному программисту!

У меня работа такая - делать то что другие не могут, упрощать жизнь, сводить работу целого дня до одно кнопки. Убирать рутину и давать время подумать о развитии. Я делаю "инструменты". И за это получаю "барыш". Вы же молоток на базаре не бесплатно берете. Просто все привыкли что если это софт то значит проще взломать чем купить. А купив с исходниками могут подарить соседу или выложить в интернет.

Ваш алгоритм - это капля в море для моего проекта. Просто один из вариантов подхода к авто-подбору пути. На равне с ручным вариантом и предложеным гуглом. В коллекции алгоритмов "коми" до Вашего было 4-5 на Делфи, провереных но медленных. И около 10 на других языках. И я точно знаю что ни один из них полностью мне не подходит. Как минимум в Вашем алгоритме не учтены повторы точек (почему бы не проехать через ЭТОТ-же город когда едем назад?), возврат в исходную(хотя можно положить начало и конец рядом) и (почему-то) исключены пересечения маршрутов.