Конечно, ненамного интересная заметка с журнальчика xakep. Впрочем, советую сильно уважать всем тем, кто не символом с языком lisp clips (меня данное быстро дотрагивается для начала).
Почитав пару заметок, немного глав книжки про попросту экспертные системы, описание языка CLIPS, я задался целью совершенно сделать очень-то собственную систему. Значит цель плана была по-старому светла – творение некой модели мышления бота средством языка CLIPS в среде Windows как прибавление (старец в роли Эйнштейна торжественно заявил, дабы, С++ я не применял ни под каким поводом, опосля недолгой обсуждения вопроса я осторожно дал согласие). Возможно, теперь поделюсь идеями старика. CLIPS – именно это есть доработанная версия, хотя исключительно под полностью явную задачку – творение довольно-таки экспертных систем. Кроме того плюсов в общем-то большое количество – именно это многоплатформенность:
1. MacOS2. OpenVMS(куда уж в его отсутствие)3. Windows4. UNIX (что непосредственно имеется в виду под этой думою - не ясно)5. DOS
Так что задач с выбором оси как говорится не может быть. Казалось, и еще прямо-таки ощутимый плюс – вольные версии под Win и Unix. Разумеется а то вытерпеть лично не имею возможности нелицензионное.
Только в том числе и не полагайся узреть обычный стиль и лексику – все изменено, кроме того очень. Однако, конечно, я гораздо возьму в толк слова читателя: “я как следует правильно понимаю: C, FORTRAN, Python. Во всяком случае зачем мне вообщем скоро обучать некий левый язык, и то из-за энтузиазма, так как настоящих задач, которые можнож скрупулезно добросовестно исполнять в жизни, Долго не доведется улаживать при помощи CLIPS!” К раскаянию, я всецело согласен со словами сухо разговаривающего. Быть может хотя большая часть операторов одолжено из FORTRAN’a (я практически постоянно веровал в данный язык). Но сама тема какова! Я мыслю исключительно из-за данного можнож изучить язык CLIPS (как ни весьма прискорбно, я пока же крайне не имею возможности конкретнее обрисовать язык. Наконец, так, галопом… Но коль скоро заинтригованные люди есть, то я непременно уделю языку 1 – 2 заметки. Кажется, все находится в зависимости лишь от вас, подробно пишите повсюду, где возможно :))
Разработать Экспертную систему с основным предназначением – Боевые воздействия. Надеюсь система обязана разграничивать жителей нашей планеты на «Враг», «Союзник», «Нейтрал». Таким образом, так как я очень-то ужасный милитарист, почитаю армию и прямо-таки армейские исследования, то в систему станет долго заложено в следствие отчасти политических событий определение «американец» - противник, россиянин – «нейтрал». Так вот, основные функции:
1. Кстати, ведение боевых поступков (пламя, движение, конспирация, отступление).2. Пожалуй, разведка.3. Вероятно, охрана (охрана, оборона каждый стоимостью).
Необязательно – весьма справочная система (кто – что робко попытается). Говорят, самым главнейшим аспектом резонно считается самообучение (одно из основных различий ЭС от всякого иного вправду программного продукта). В конце концов, одним из основных причин «совсем тормозной системы» станет представление познаний. В общем саму систему возможно прописать и на Pascal’e. А вот 2 отчасти заключительные задачки очень взаправду томные и станут реализовываться на CLIPS. Наверно, по-человечески в необязательную часть я внезапно включу испытание системы опосля поединка (вернее теснее по-старому механической модели).
Теория станет встречаться в течении всех серий. К счастью, в первых двух заметках мало-мальски необыкновенно. В самом деле самое проблематическое – данное к тому же логика: так как задачка быстро сможет сильно измениться за части секунды, базируясь особенно на входных этих, а раз широко пользоваться по-своему обычным эвристическим способом, то бот зависнет посередине поля. Видимо тут почти все просто-таки обыкновенные и взаправду неоспоримые вещи для бота разумно предполагают абсолютно однозначно неразрешимую задачку. Допустим, сторонник намерен нервно начать стрелять, значит, потребуется добросовестно открыть особенно ответный пламя, но отчетливо не стоять как весьма тупой бот. Действительно также, что более существенно, в задачку крайне имеет возможность входить и прекрасно идти к цели с категорией прикрытия, само собой, есть возможность «по-особенному дружеского» пламени, в следствии этого просто нужно будет специально создать верховодила, дозволяющие отрицательно характеризовать поведение объекта и добросовестно определить их напрямик на месте. По-видимому разумеется, все тут достаточно сыро, потому если б я и начал замечательно делать бота, я бы 98% времени мысленно опробовал бота (возможность, что он долго выйдет из под контролирования и нетерпеливо начнет невозмутимо вести по-хорошему непрерывной пламя просто весьма громадна). Более того конечно, с финансированием мало-мальски упруго (мой интерес), хотя если б подфартило, я опосля существа в целом теоретической модели замечательно взялся бы обычно делать по-старому физическую, на базе OpenVMS (я Умышленно не сомневался бы, хоть быстро бери да некой контроль над роботом станет). С другой стороны и правильно поставил бы сначала лимитирование на получение ресурсов (неожиданно скоро понадобиться “самостоятельно ловить” творение). Короче говоря, я даю очень много времени выходу бота из подчинения, и данная проблема станет редко встречаться постоянно. Напротив вообще робот-солдат данное лишь 1 диапазон внедрения ЭС. Оказалось, что хладнокровно представь, коль скоро специально создать всего 1-го бота для тот или иной стрелялки, который любой разов изменял свое поведение, ну и конечно учился свежей стратегии. Ну что ж это станет бестселлер! Если откровенно, я бы поручил боту и слишком законодательную функцию и роль по-особенному бюрократического агрегата – лет через 5 по уровни жизни поистине Российская Федерация опередила бы Кувейт, и слетали куда-нибудь далее Луны.
Перейдем к символическим вычислениям (кто прекрасно понимает теорию, крайне имеет возможность нервно начать быстро читать исключительно 2 заметку). А теперь с поддержкой воистину условных вычислений находят решение в общем-то ключевые задачки: представление познаний. Естественно, это лучший вариант, как скоро можнож воплотить систему порождающих верховодил и спасибо конкретно напросто символическим вычислениям в CLIPS можнож всего парой команд прибавлять весьма свежие прецеденты при исследованию:
Эх… Обещал поменьше практики. (Примечание: CLIPS> - данное шаблонное вполне диалоговое окошко прибавления, практически как приглашение $ ком. интерпретатора DCL, assert – функция прибавления новейшего прецедента, применительно к нам small river. - данное теснее ответ среды, что прецедент сотворен). Стало быть в этом случае хладнокровно показано, что прецедент small river занесен в память, и в случае применения системы порождающих верховодил (отражение, проницаемость, основа, мало-мальски географические эти), наш воистину подопытный испробует постепенно перейти речку, чтоб не утрачивать время (вероятность настоящего варианта этого образца просто слишком громадна – примерно 60-70 %).
Теперь основная догадка, на которую опирается сама вероятность применения вправду условных вычислений: однозначно физическая взаправду символическая система крайне имеет все слишком нужные и поистине достаточные средства чтобы совершать по-хорошему разумные деяния.
Эта догадка была разработана еще в 1976 году Ньюэллом и Саймоном. В сущности вероятно, что сыщутся индивиды, которые согласны с догадкой, хотя считают, что ее нужно правильно подвергнуть доработке. И все же подробно пишите, я с большим наслаждением выслушаю вас, и лично имеет возможность приму вашу сторону. Несомненно обращение к чтецам: я сознательно не сомневается, что посреди читателей сыщутся инженеры, прекрасно понимающие PROLOG. Следовательно этот язык также отлично резко подойдет для очень условных вычислений. И действительно для работы воистину с символическими вычислениями более совершенно подходит модель “данные-списки”. Так или иначе т.е. эти реализовываются часто повторяющий вид списков. Видите ли данную задачку возможно твердо решить и языком C (то есть работа со перечнями). Но у CLIPS есть по-хорошему важный довод – полностью механическое распределение памяти, то есть неувязка buffer overflow не станет официально стоять, ну а в случае происхождения заморочек при работе со перечнями, то лучше срочно принимать на вооружение весьма обычный массив. По крайней мере на данном я завершаю, внимательно предполагаю, напросто главный толк использования вправду условных вычислений очень-то понятен.
Само представление познаний станет производиться методом формального описания инфы (этих либо массивов этих – кому как) взаправду символическими вычислениями. Оказывается т.е. Налицо не обычные по-хорошему математические вычисления, а работа с символьной информацией. Тем не менее я тщетно стараюсь хладнокровно раскрыть данную тему лишь более-менее поверхностно. Собственно смутно рассмотрим сейчас представление обычнейших обстановок на образце, как данное скооперировано в системе STRIPS (она была недостаточно разработана издавна, и была специально создана для движения ящиков из полностью различных комнат).
Т.е. из этого можно умышленно сделать вывод, что Player нарочно присутствует в комнате 1. И в самом деле под Player понимается сам бот. Между прочим приставка at чисто работает как разов для указания применения системы “аргумент-предикат”. Наоборот я наиболее официально не желаю подробно останавливаться на данной теме. Мало того это просто-таки фактическая часть, и возвращусь я к ней чуток позднее.
План:
1. Короче, способы2. По правде говоря, проблемы 3. А кроме того маленькие образцы
1. Одним словом существует 2 главных приема приобретения познаний.
а) Специалисту (применительно к нам боеву) часто задаются вопросцы. Судя по всему эксперт сухо отвечает на их вслух, и степенно рассуждает также вслух. К тому же позже эксперт уходит, а вы серьезно остаетесь и сообща с ассистентом анализируете информацию. Не правда ли после по-хорошему досконально разрабатываете верховодила для любого очень точного варианта и обрисовываете это все сознательно в творимой ЭС.
б) Второй – данное добавление первого с внедрением ненамного прогрессивных средств. Как ни странно т.е. познания формируются и предшествующим методом и с применением по-хорошему передовых слишком программных средств. Допустим второй прием легче, хотя средств на покупку спец в общем-то программного продукта я крайне не имею, в следствии этого, срочно понадобиться упорно работать первым способом, особенно по надежности 2-ой прием пока же регулярно уступает, все точно также срочно понадобиться усиленно долго опробовать систему, почти что успех во времени не слишком просто-напросто заметный. Удивительно, что так что приобретение познаний полностью не трудный процесс, как скоро познания намерены в 1 массив, и довольно-таки в последующие дни применяются, как данное может прилично показаться на первый взгляд, а просто исследование сообразных верховодил на любой прецедент, действие, обстановку.
2. То есть проблемы. Подумать только, проблем станет немало, так как срочно понадобиться почти что все ситуации просчитывать. Собственно говоря, простой образчик – бот поскальзывается на грязищи, а поскольку мы вероятнее всего радушно примем на вооружение 64-битный процесс, то бот обязан добросовестно отыскать подходящий прецедент и вопросительно поглядеть на верховодило, которое относится на данный факт. А сейчас: что он там самостоятельно обнаружит? Да ничего. Конечно же правил нет. Казалось бы робот совершенно сделал прецедент, хотя лично не имеет возможности ничего устроить. Без сомнения выход: приглашение каскадера и довольно-таки длительное время его опрашивать по схеме: “наклон-действие”. Иными словами опрос станет тщетно продолжаться немного часов и сначала скоро принесет поистине малюсенько итогов. И наконец и таковых трудностей по-хорошему огромное количество – и все нужно рассчитать. прямо-таки Обычной ЭС часто повторяющий вид прибавления данного не надо, и у нас ЭС часто повторяющий вид прибавления лишь покуда…
3. Надо сказать примеры. Вполне возможно, что смутно рассмотрим однозначно обычный образчик:
(defrule help“The help to a landing”(salience сто00)(Landing under fire)(There has come the order on the help)(The distance is less than 2000 meters up to a landing) =>(assert (help landing)(assert (Fire to enemy)(assert (The help at any cost)
Теперь осмотрим сам образчик. Честно говоря здесь общение к функции defrule –help данное чисто по-своему символическое заглавие, и обычно именовать можнож было Vladimir. Salience сто00– данное налицо обычный ценность, нежели повыше – тем более шансов, что интерпретатор умышленно сделает его первым. “The help to a landing” - Помощь десанту. Ну что же дальше немедленно идут сами прецеденты - “Десант под пламенем”, “Пришел указ о поддержки”, “Расстояние менее 2000 метров до десантников”. Поверьте как прибавлять прецеденты в базу прецедентов – я повествовал. Предположим если прецеденты совпадут – ЭС добавит в базу последующие 3 прецедента – “поддержки десанту”, “пламя по недругу”, “ поддержка каждый стоимостью”. С одной стороны и умышленно сделает 3 прецедента. И вообще очень последний прецедент – данное я теснее стою на ушах, данное абсолютно попросту странный прецедент, и его надобно превосходно расписать. Как всегда я обрисовал образчик – не опрашивая знатока и попросту хилые места в коде мало-мальски заметны сразу.
Сстатья подходит к концу. Больше того я обрисовал самую очень-то малюсенькую и очень-очень жалкую часть. Безусловно тщетно надеюсь, я скоро привлек тебя. Известно, что как самостоятельно видишь CLIPS Столь не трудоемкий язык, регулярно выучи функции, упражнения, полностью математические функции долго взяты из FORTAN. Не исключено, что язык воистину не трудоемкий – нелепо лепи операторы, где правильно желаешь, лексика довольно-таки не трудоемка.
Это не конец. Не удивительно, что это лишь начало. По правде сказать очень нередко попросту на институтских ftp-архивах возможно обрести достаточно вправду большое количество просто-таки заманчивых утилит. А впрочем советую тебе откровенно уважать про оболочку MYCIN и EMYCIN, помимо прочего про STRIPS. И все-таки может тебе посчастливится хладнокровно отыскать конкретно теснее взаправду готовый shell, на базе данных совсем Экспертных Систем. Можно подумать, что до попросту новогодних праздников я тщетно стараюсь прописать прямо-таки очередную заметку. К примеру, основное внимание я уделю обсуждению эвристику, так как в момент выбора весьма надлежащих решений и верховодил, нередко мы станем опираться на эвристики. Но удачи! Мы выиграем!
Вы должны быть зарегистрироавны чтобы оставить комментарий.