Sto cercando di determinare un modo oggettivo per un agente interessato a calcolare il prezzo di acquisto / vendita ottimale per le merci in una simulazione multi-agente non dissimile da Sugarscape ( link ). La simulazione è la seguente:
Ogni agente ha una scorta di cibo F, una scorta di denaro G, una certa quantità di "energia", E, e una posizione (x, y) su una griglia quadrata. Spostarsi da una casella a una piazza vicina spende A unità di energia, e l'energia è naturalmente spesa ad una velocità di unità B per giorno di simulazione. Un agente ha a disposizione le seguenti opzioni durante ogni giorno: consumare un'unità di cibo per aumentare la sua energia per unità di Q; trasferirsi in un altro luogo (purché abbia energia sufficiente), "foraggio" per il cibo (consumare unità di energia P per ottenere una [possibilmente sconosciuta] quantità di cibo), o commerciare con un agente vicino per un prezzo reciprocamente accettabile.
L'obiettivo di ciascun agente è di massimizzare la sua "funzione di utilità" U (E, F, G) senza riguardo per quella di altri agenti.
Subito, questo sembra dare una base "valore d'uso" del cibo: Vuse = U (E + Q, F - 1, G) - U (E, F, G), ma se questa era l'intera storia , questo non sarebbe un problema interessante.
Sembra che la soluzione più generale (ma esponenziale) sia simile a questa:
Function SearchActions(State S):
Add(consume food) to action set
Add(forage for food) to action set
For each other agent A
For each possible trading price P
Add(trade with A at price P) to action set
For each action X in action set
S' = Apply X to S
SearchActions(S')
Return optimal X
End function
Tuttavia, la difficoltà maggiore viene spazzata sotto il tappeto da "per ogni possibile prezzo", perché il prezzo che l'agente A acquisterà / venderà per se stesso dipende da un calcolo identico ... ad es.
Il mio calcolo del valore dipende da ciò che posso ottenere dall'utilizzarlo io stesso, o da quello che qualcun altro pagherà per questo ... ma quello che pagheranno dipende da cosa pagherò per questo.
Come si fa a tagliare questo nodo?
So che questo problema è stato risolto prima ... ma non riesco a trovare alcun riferimento ad esso, per non parlare di eventuali implementazioni effettive. Il più vicino che ho ricevuto è stato un articolo su " Pianificazione strategica "in SugarScape , ma sembra solo fornire i risultati della pianificazione, piuttosto che spiegare come viene eseguita la pianificazione.