2009-05-19 8 views
1

В следующем году я буду выпускником специалиста по информатике, и я пытаюсь найти идеи о проекте jounior. На самом деле, у меня есть идея создать механизм экспертной системы. Я работал с клипами и прологами, и мне нравились клипы, но, похоже, это старый движок. Может ли кто-нибудь посоветовать мне эту идею или дать мне источники для бумаг или любые темы, которые могут мне помочь? Я думаю использовать язык C для получения высокой производительности и для создания надежной структуры данных. Кроме того, я думаю об идее (я не знаю, можно ли это сделать) писать факты и правила (например, клипы), а затем генерировать оптимальный код C++ из этих правил, чтобы я мог получить скорость машины и использовать exe файл.Двигатель экспертной системы

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

+0

Насколько важна скорость вашего проекта? Предполагается ли, что ваш проект будет работать в режиме реального времени, или просто нужно запустить в разумные сроки на больших наборах данных? –

ответ

1

Для вашего младшего проекта я бы рекомендовал не писать его на C. Ваша проблема звучит так, как будто она нуждается в правильности больше, чем нужна скорость. Запись на C займет больше времени, потому что вам нужно будет реализовать множество примитивов, которые не включены в язык или какую-либо стандартную библиотеку. Кроме того, поскольку C относительно низкоуровневый, существует множество возможностей совершать ошибки на низком уровне. Напишите его на языке более высокого уровня, который ближе к проблемному домену. У вас будет больше времени, чтобы сосредоточиться на вашей реальной проблеме, потому что вы потратите меньше времени на создание структуры. Если вы уже знаете Prolog, было бы хорошо придерживаться этого. Возможно, вы можете рассмотреть Mercury. Он похож на Prolog, но также и designed for speed.

+0

На самом деле я хороший программист на C#, но я против использования его из-за промежуточного языка MSIL, который снижает производительность, а производительность - одна из важных идей, которые заставляют людей использовать язык высокого уровня, такой как C++, а не клипы. Спасибо .. – Hani

+0

@Hani - Clips использует сеть RETE для решения проблемы с множеством шаблонов. Если вы используете C# или C++ (или любой не-правило или недискритический язык), у вас возникнет эта проблема. Проблема может не отображаться для нескольких элементов данных, и только несколько сотен правил, но вычислительная сложность укусит вас после определенного момента. –

0

Правила JBoss (также известные как Drools) предлагают лучший подход к обработке правил. Он написан на Java. Это позволяет вам интегрировать программные компоненты в правила и базы правил в свои программные компоненты. Вы даже можете создавать или изменять правила-базы «на лету».

Я слышал, что Java догоняет способность выполнять математику, но вне этого вам нечего бояться производительности.

 Смежные вопросы

  • Нет связанных вопросов^_^