Buridan’s ass

Your first modeling challenge

Felix Schönbrodt

Ludwig-Maximilians-Universität München

2023-10-20

Creative Commons Lizenzvertrag

Buridan’s Ass

„The man who is violently, but equally, hungry and thirsty, and stands at an equal distance from food and drink, and who therefore must remain where he is.“

Aristoteles: De Caelo/On the Heavens. Trans. W. K. C. Guthrie, Heinemann, London 1938, 2:13:295b (S. 237)

https://p8.storage.canalblog.com/87/85/553105/80715840.jpeg

The demiurg

“Die Gnosis kannte die Gestalt des Demiurgen, eines Schöpfergottes von niederem Rang, der von der Hochgottheit den Auftrag erhalten hatte, den Kosmos zu erbauen”
N. Bischof (in prep, S. 143)

The gnosis knew the figure of the Demiurge, a creator god of lower rank, who had received the commission from the High Deity to build the cosmos

By Dmitrismirnov - Own work, CC BY-SA 3.0

Das demiurgische Prinzip

Der Forscher, der eine komplexe Struktur verstehen will, ist gut beraten, wenn er sich in die Rolle eines solchen Demiurgen versetzt und sich vorstellt, er hätte sie selbst konstruieren müssen. Natürlich muss er dafür eine begründete Vermutung haben, was sie leisten soll. Leistung schließt immer eine Zielvorgabe ein, die Arbeit des Demiurgen läuft also naturgemäß im Rahmen einer telischen Heuristik 1 ab.
N. Bischof (in prep, S. 143)

The researcher who wants to understand a complex structure is well advised to put himself in the role of such a demiurge and imagine that he would have had to construct it himself. Of course, to do this he must have an educated guess as to what it should perform. Performance always includes a target, so the demiurge’s work naturally runs within the framework of a telic heuristic.

The Demiurgic Principle

Preliminary version

Note

Wäre ich ein Ingenieur, der einen Mechanismus so konstruieren soll, dass er eine Leistung des Organismus ebenso gut wie dieser erbringt und dabei möglichst dieselben Fehler macht – wie würde ich dann vorgehen?
If I were an engineer and I had to design a mechanism that performs as well as the organism and makes the same mistakes – how would I go about it?

Buridan’s ass, level 1: Intuitive modeling

Group exercise: Cover your ass, Level 1

Scenario: The environment has two unlimited sources (food and water), in a substantial distance from each other. The donkey has a general metabolism that continuously consumes food and water reserves in the body. If any of the two reserves drops to zero, the donkey dies.

(Simplifying) assumptions:

  • Linear decrease in both water and food reserves in the body, higher under activity (e.g., traveling).
  • No other needs or tasks (e.g., no predators, no sleep necessary).
  • Eating, drinking, and traveling takes a substantial amount of time.
  • The donkey has a representation of the environment and knows where the two sources are.

Task: Construct an organism, with as few assumptions as possible, that survives as long as possible. Which constructs / sensors / abilities are necessary for this? Assume as simple abilities as possible - certainly not super-human abilities. (Rather think of an amoeba, not a super-AI).

Deliverable: A markdown text file with a verbal description of the organism. Give it the version number 0.1.0. Upload to the Git repo.

Group exercise: Cover your ass, Level 2

Exhaustive list of (fixed and free) parameters and input variables

Reminder: free vs fixed parameters

  • Fixed parameters are chosen a priori and do not change in the light of empirical data. Their values are based on previous research, theory, or external information (such as properties of the world).
  • Free parameters can be adjusted to optimize the fit of the model to data. They are estimated from empirical data.

Group exercise: Cover your ass, Level 2

Exhaustive list of (fixed and free) parameters and input variables

Task:

  1. List all parameters of your model (on the top of your markdown file).
    → As a heuristic: Every conrete number that you need for the formulas of your simulation is a parameter.
  2. Categorize them into fixed and free parameters. → Virtually all parameters (except natural constants) could be imagined as being free. It is usually a choice to fix some of them in order to simplify the model.
  3. List all input/predictor variables
  4. List all primary ouput variables.
  • In some models, an output variable can also be an input variable for something else.
  • Do not list intermediate/temporary variables that are only necessary for computations.
  • Do list mediating variables that are psychologically meaningful (e.g. an emotion that mediates the process between stimulus (= input) and action)

Cf. linear regression: \(\color{red} y = \color{forestgreen} \beta_0 \color{black} + \color{forestgreen} \beta_1 \color{blue} x\)
\(\color{red} y\) = output variable, \(\color{forestgreen} \beta\)s = parameters, \(\color{blue} x\) = input variable.

Group exercise: Cover your ass, Level 3

Construct and variable definitions

In the previous lecture, you learned how a good construct definition looks like. Apply that new skill to your model!

Task:

  • Develop proper definitions for all variables and concepts in your model, add them to your markdown file.
  • Increase the minor version (e.g., from 0.2.7 to 0.3.0)

Deliverables:

  • Create a CHANGELOG.md file that explains the changes between the previous and the current version of the theory.
  • Push all new files to your dev branch.
  • Merge dev into main.
  • Create a new release.

Group exercise: Cover your ass, Level 4

Draw a graphical model, Bischof-style

Task: Sketch your initial verbal model in the style of Bischof. Refine and extend where necessary, e.g.:

  • Think about which sensors are necessary (both towards internal states and towards the environment) and which actors are necessary
  • Give a label to every variable (i.e., every arrow in the graphical model).
  • Every free parameter and input variable that you identified should be an arrow in your visual model

Deliverables:

  • Draw the model collaboratively in draw.io. In one corner, add the updated version number and today’s date (simply as a text box).
  • Create & switch to dev branch
  • Export the graphical model as an xml file and push it to the Github repo. Increase version number in cff file.

Buridan’s ass, level 5

The Demiurgic Principle

Final version

Note

Wäre ich ein Ingenieur, der, aufbauend auf der letzten funktionstüchtigen Vorform, einen Mechanismus so konstruieren soll, dass er eine Leistung des Organismus ebenso gut wie dieser erbringt und dabei möglichst dieselben Fehler macht – wie würde ich dann vorgehen?
If I were an engineer and, building upon the last functional (evolutionary) preform, I had to design a mechanism that performs as well as the organism and makes the same mistakes – how would I go about it?

→ Assume realistic capabilities, which respect the evolutionary path dependency.

E.g., don’t assume …

  • Mammal organisms that need 3 hands to perform a task
  • Omniscient knowledge about the environment, probabilities, distant events, the future, …
  • Unlimited cognitive processing capabilities (“In the first 2ms, the simulated amoeba performs a multidimensional Bayesian optimization task”)

Realistic capabilities, 2

As-if models typically employ mathematical representations chosen for elegance or feasibility, are deliberately free from psychological interpretation , and their input–output transformations need not correspond to actual cognitive processes. […] The implication is that process models need to be simple and respect capacity limits or link the proposed operations directly to psychological constructs

Buridan’s ass, level 5

Group exercise: Cover your ass, Level 5

Variable Scaling & Netlogo Implementation

Tasks:

  • Define the variables in the implemented model:
    • Scale level
    • Possible range or discrete values (define the set)
    • Interpretability (what does a value of 0.7 mean?)
      • Maybe define operationalizations that give a meaning to the numbers
  • Define computations for each box: How exactly are input variables transformed into the output variables? You need a concrete formula for that. Theories rarely are so specific that you can directly derive a formula; you probably need to fill many gaps with ad-hoc assumptions.
  • Implement the model in Netlogo

Deliverables:

  • Push the .nlogo file to your group’s Github repo.
  • Update all written model descriptions, increase model version.
  • Explain & justify the changes in the model in your CHANGELOG.md.
  • Write a meaningful commit message.

End

Contact

CC-BY-SA 4.0

CC-BY-SA 4.0