Матрица путей на матрице.
От: Аноним  
Дата: 14.07.10 14:31
Оценка:
Здравствуйте.

Криво сформулировал топик, наверное, попытаюсь пояснить.
В общем есть матрица нулей (свободных клеток, по которым можно перемещаться) и единиц ("стенок", непроходимых клеток). Например:
1 1 1 1 1
1 0 0 1 1
1 1 0 0 1
1 0 0 1 1
1 1 1 1 1

Хочется построить некую вторую матрицу, но не из нулей, а из неких констант Ci,j, чтобы с ее помощью определять кратчайший путь из любой точки Ai,j в Bi,j. При условии что эти точки — нули и связаны, естественно.
Классический вариант этой задачи предлагает использовать "нумерацию в глубину", то есть исходной точке поставить в матрице ноль, смежным с ней клеткам — единицы, смежным с единицами — двойки и т.д. Но полученная матрица позволяет прийти из любой точки только в ноль, этакий полюс. А что делать если полюсов несколько? Конечно, хотелось бы, чтобы алгоритм по этой матрице позволял прокладывать путь из любой точки в любую другую, но это мне кажется вообще нереальным. По условиям задачи, имеется порядка двух десятков "полюсов". Соответственно можно каждой точке привязать еще порядка двух десятков чисел для перемещения к каждому из "полюсов", но это слишком много памяти! Что то мне подсказывает, что трех-четырех чисел должно быть достаточно. Но я не могу придумать алгоритм, может кто-то подскажет?

Да, target-platform: j2me со всеми вытекающими
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.