Skip to content

Adaptive Engine

Claudio Bonesana edited this page May 28, 2021 · 2 revisions

The adaptive engine applied to a survey can be explained with the following pseudo-code:

s := survey()  # given a survey s
u := user()    # and a user u

s.init()

while not s.stop():
    q = s.next_question()
    a = u.answer(q)
    s.check(a)

What the tool models is the s := survey() part of the code. The u := user() is supposed to be a human or an algorithm that can generate answers to given question.

The survey need 3 functions:

  • a stop() condition that will halt the survey when met;
  • a check(a: answer) function to register the answer received; and
  • a next_question() function that will find the optimal next question.

What we can configure in the Survey object is practically everything that controls these three functions.

As can be seen in the AlloyAdaptiveExperimentRemote and AlloyAdaptiveExperimentLocal, this cycle need to be always followed.

Configuration

Check the Survey configuration page for how to configure the adaptive engine for a survey.

Clone this wiki locally