Нужна помощь. Есть готовая программа нужно оптимизировать
Описание проблемы действующей программы:
1 Программа перебирает оччень долго возможные пути, подсчеты длятся порой по 5 - 8 месяцев!
2 Программа не может сохранить уже подобранные пути, и запуститься с места сохранения для дальнейших подсчетов.
3 Программа загружает большое кол-во оперативной памяти, и со временем, когда большие и долгие подсчеты, пропадают цифры подсчета путей. (кажется что скорее всего зависает).
Первоначально и очень важно
Требуется: Оптимизировать и сократить реальное время подсчёта на больших шагах 15-20,
имеются двумерные трёхмерные симметричные решётки (двумерные: квадратная, сопряженная квадратная решетка(квадратная решетка в которой есть диагональные грани), треугольная и шестиугольная (соты); трехмерные решетки: кубическая, кубическая гранецентрированная, кубическая объёмоцентрированная, гексагональная(элементарной ячейкой является правильная шестиугольная призма)).
Основной смысл программы: Пример на двумерной решетке шаг = 4
есть начальная точка, скажем 0, из этой точки необходимо пересчитать все возможные пути заданной длины.
имеются ограничения на эти пути: 1. путь не должен быть самопересекающимся, то есть что бы путь не возвращался в уже имеющийся в пути узел решетки; 2. путь не должен быть спрямляем, то есть что бы не было возможности путь сократить сделав его из предпоследнего шага (например на квадратной решётке в декартовых координатах путь длины 4: (0; 0) (0; 1) (1; 1) (1; 2) (0; 2) не возможен, так как его можно заменить на путь меньшей длины 2: (0; 0) (0; 1) (0; 2)).
1 вариант: 4 шага вправо, (красн)
Или 2й вариант 3 вправо + 1 вверх, (зелен)
или 3й вариант 1 вправо + 1 вверх + 2 вправо (фиолетовый)
P.S. есть такие задачи, они решаются на первом курсе в паскале, методом Монте Карло, так что кто занимается этими вопросами тот должен понимать.
Кто может помочь, напишите, вышлю архив с прогой. адреса для связи в прилагаемом ворде.
Зарегистрируйтесь или войдите на сайт под своим именем.