Как человек, у которого нет английского как языка мам (Россия), я читал эту статью в Википедии: http://en.wikibooks.org/wiki/Artificial_Intelligence/Search/Heuristic_search/Depth-first_search
и я стараюсь следовать этому примеру псевдокода, написанному на хардкорном английском языке с минимальными объяснениями или комментариями.
В частности, я не понимаю, что они пытаются сказать этим предложением:
DFS(u):
visit(u);
time = time + 1;
d[u] = time;
color[u] = grey;
for all nodes v adjacent to u do
if color[v] == white then
p[v] = u;
DFS(u);
time = time + 1;
f[u] = time;
color[u] = black;
для всех узлов v, смежных с вами, сделать
Моя проблема с этим предложением - «смежная» часть. Мой словарь говорит, что это означает что-то вроде «сосед». Итак, я должен перебрать подузлы суперузла u? Обратите внимание, что u является узлом в графе.
Или они пытаются сказать, что я должен перебрать все подузлы u? Потому что это будет иметь огромное значение.
Помимо этих английских проблем, они забыли упомянуть, что означают d и p , что заставляет меня рвать все мои волосы (да, даже те, что усы).
Ссылки в статье просто повторяют этот мало-мальски загадочный материал. Может быть, кто-то смог переписать это так, чтобы оно было более понятным для человека, с большим количеством комментариев и значимых переменных? Я не нашел ни одного по-настоящему хорошего объяснения, которое могло бы похвастаться доминирующим интеллектом автора, связанного с DFS.
Так что, если кто-то может переписать это на лету лучшим способом с большей учебной ценностью, которая спасет мой день, сохраните мои усы. Сохранить все Спасибо.