Использование игровых концепций для создания пользовательских агентов в целях исследования рынка.

StackOverflow https://stackoverflow.com/questions/1112453

Вопрос

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

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

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

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

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

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

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

Это было полезно?

Решение

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top