Использование игровых концепций для создания пользовательских агентов в целях исследования рынка - PullRequest
1 голос
/ 11 июля 2009

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

Цель состоит в том, чтобы иметь возможность получить небольшую часть нашей системы профилирования (статический фрагмент данных вопросов и ответов за определенное время - пол: мужчина / женщина, напитки: кокс / пепси / mt.dew, доход и т. Д.) и запускать пользовательские агенты (искусственно разработанные программные роботы или агенты) через нашу систему профилирования, чтобы увидеть, какими будут интерактивные результаты. Поскольку данные вопросов и ответов были бы одинаковыми, способности пользовательских агентов выбирать ответы были бы одинаковыми, и менялись бы только алгоритмы и правила, лежащие в основе работы профилировщика - это теоретически позволило бы нам заранее определить исход любых изменений в наша система. Этот результат позволит нам затем подтвердить изменения, прежде чем вносить изменения в нашу производственную систему. Надежда будет состоять в том, что мы могли бы легче ловить любые ошибки перед выпуском на волю. Но это также позволило бы нам проверить изменения в логике для поиска оптимизаций в профилировщике.

Мой вопрос: Для кого-то вроде меня (в основном C # / .NET), который действительно работал только в пространстве веб-приложений, где я могу начать работу по созданию пользовательских агентов, способных взаимодействовать с внешними система, такая как моя система профилирования? Мне особенно нужно знать, как раскрутить 1000 (тысячу) агентов и заставить их взаимодействовать с моей системой профилирования (в течение заданного периода времени), чтобы иметь возможность отвечать на вопросы, которые им предоставляет система профилирования на основе характеристик которые динамически определяются в пользовательском агенте во время инициализации.

Примером этого является то, что мне нужны некоторые черные агенты, некоторые китайские агенты, некоторые мужские агенты, некоторые женские агенты, некоторые старые агенты, некоторые новые агенты, некоторые религиозные агенты, некоторые, которые пьют кокс и т. Д., И все они смешанные вместе, чтобы наиболее подходящим образом походить на мир. У нас уже есть демографическая разбивка нашего населения, так что мы можем легко раскрутить 10% чернокожих мужчин, 60% белых женщин, оставшихся дома матерями, и все другие представления нашего населения.

Моей первой мыслью о создании такой системы было , чтобы использовать возможности моего XBOX 360 , и некоторых хорошо продуманных агентов, которые напоминают человека из объектно-ориентированного мира с некоторыми дополнительными характеристиками, чтобы иметь возможность разумно ответить на некоторые вопросы ... и угадать на других.

В разговоре с моим коллегой было предложено использовать некоторые из систем искусственного интеллекта и графическую карту на 1000 процессоров (у нас она уже есть), чтобы получить какую-то сверхъестественную быструю производительность от множества пользовательских агентов. Где каждый процессор является агентом ... (что-то вроде этого).

Есть ли кто-нибудь с опытом в подобных вещах? Доказательство проблем с вымышленной моделью мира?

1 Ответ

0 голосов
/ 11 июля 2009

Вы говорите «взаимодействовать с внешней системой» - каков интерфейс этой системы и как человек использует ее? Это через Интернет? Если это так, вы тратите время на размышления об оптимизации графического процессора и тому подобное, поскольку узким местом вашей производительности будет сеть, даже по локальной сети. В таких обстоятельствах вы можете просто запустить агентов последовательно. Даже если бы вы могли эффективно порождать 1000 агентов одновременно (возможно, на нескольких машинах), велика вероятность, что вы просто нанесете вред целевому серверу при случайной атаке типа «отказ в обслуживании», так что это контрпродуктивно. Однако, если у вас есть возможность изменить этот интерфейс, чтобы обеспечить прямое межпроцессное взаимодействие, вы можете вернуться к рассмотрению подхода массивного параллелизма. Но тогда 1000 не является большим числом в вычислительном отношении. Скорее всего, вы потратите больше времени на выполнение алгоритма параллельно, чем сэкономите, если будете использовать его таким образом.

Что касается «структур искусственного интеллекта», я не думаю, что есть что-то настолько расплывчатое, что могло бы вам помочь. ИИ и интеллектуальные агенты - это огромная область - книга Искусственный интеллект: современный подход , которая представляет собой стандартный вводный текст об интеллектуальных агентах, имеет длину более 1000 страниц и содержит, возможно, 20 или 30 полностью независимых методов, многие из которых может относиться к вашей проблеме, многие из которых не будут. Если вы сможете более четко указать, какие задачи должен выполнять агент и какие у него есть входные данные для принятия этих решений, то становится возможным выбрать достойную технику. На самом деле, может оказаться, что ваша проблема вообще не требует ИИ, если у вас есть четкое соответствие между демографией агентов и принятием решений - вы просто ищете ответ для использования из таблицы, которую вы сделали ранее. Поэтому важно сначала решить, какую проблему вы пытаетесь решить.

...