Многопоточный* поиск в Java или Lisp или C#

свободный XML-редактор Firstobject для Windows называют, foxe является большим инструментом.

Открытый или вставка Ваши XML в него и нажимают F8 для расположения с отступом (Вы, возможно, должны определить номер пробелов отступа, поскольку это может принять значение по умолчанию к 0).

Это выглядит простым, однако это содержит пользовательский записанный синтаксический анализатор XML, записанный в C++, который позволяет ему работать эффективно с очень большие XML-файлы легко (в отличие от некоторых дорогих связанных со "шпионажем" инструментов, которые я использовал).

Из страницы продукта:

полный исходный код Visual C++ для этого firstobject XML-редактора (включая компонент MFC средств редактирования гигабайта CDataEdit) доступен как часть Усовершенствованной Лицензии Разработчика CMarkup. Это позволяет разработчикам реализовывать пользовательский XML обрабатывающие функции, такие как проверка, преобразование, украшать, и сообщающий в их собственных целях.

8
задан Adam Goode 28 October 2009 в 22:45
поделиться

2 ответа

Я рекомендую прочитать эту статью:

«Параллельный двунаправленный поиск A * на симметричном мультипроцессоре»

Есть также еще одна статья, также в IEEE, под названием:

«Parallel Astar поиск по архитектурам передачи сообщений »

Обе статьи находят новые методы для получения значительного ускорения.

6
ответ дан 5 December 2019 в 21:20
поделиться

Я слышу, что вы говорите, но не уверен, что вы захотите. При поиске A * вы хотите выбрать наиболее оптимальный путь и не хотите выполнять какие-либо вычисления для одного и того же пути дважды.

Посмотрите на факты:

  • «Лучшие» квадраты для выбора - все рядом друг с другом
  • Вычисление для любого другого квадрата, кроме «лучшего» выбора, - преждевременное вычисление. Смысл A * в том, что его варианты являются эффективными.

Если вы разместили приложение в потоках, вам потребуются:

  • 'Waiter' , чтобы убедиться, что ни один поток не касается того же квадрата и чтобы дать им новые квадраты для вычисления. Все они будут работать в такой сплоченной области, что будут бороться за ресурсы пути, потому что все «лучшие» квадраты находятся рядом друг с другом.

Эта проблема носит процедурный характер и не имеет удобного способа разбить ее на отдельные части и поэтому не является хорошим выбором для многопоточности. Короче говоря, никто этого не делал, потому что это нежелательно. Надеюсь, это поможет.

1
ответ дан 5 December 2019 в 21:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: