[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Benefit function



Chris wrote:

>There remains another problem: what if additional secondary objects are
>necessary to specify the deal? For example, what if one actor offers money
>in exchange for some service; how is the other actor to include the money
>in the calculation? It would be stored in NumberObject1, but that is not
>consulted by the function Benefit.

The problem here appears to be a type mismatch. The function Benefit should 
operate on events, not verbs. In general, verbs are too vague and 
prototypical to judge the benefit, even if the Subject and DirObject are 
filled in. Today's hot stock tip is worth millions today, nothing tomorrow. 
Incriminating information about a Senator is worth more than incriminating 
information about the local dogcatcher.

If the model of characters acting based on perceived benefits of possible 
actions is to be developed (which appears to have the potential to change the 
whole nature of Ersamatronics, not just deal making), what's needed is an 
event token that can be created for a "supposed event" that has not actually 
happened. Any of the arguments that can be looked up for an actual event, 
such as which stage and what time, as well as all objects, can be loaded into 
the supposed event. If these details are not specified, the defaults are the 
current stage, the present time, etc. The supposed event should create the 
same data as a history book entry (with the possible exception of the 
SuccessorEvent), but creating it would not actually cause any changes to the 
world state or the history book.

Here's how the scrypt might look, used for a basic inclination formula:

NewSubject[SupposeEvent] <= You
NewDirObject[SupposeEvent] <= PA
NewNumberObject1[SupposeEvent] <= 20000
SupposeEventVerb <= DemilitarizeWestBank
Inclination[OfferAForB] <= (Benefit(You, SupposeEvent) + Benefit(DirObject, 
SupposeEvent))
NewSubject[OfferAForB] <= You
NewDirObject[OfferAForB] <= PA
NewActorObject1[OfferAForB] <= PA
NewActorObject2[OfferAForB] <= You
NewNumberObject1[OfferAForB] <= 20000
NewVerbObject1[OfferAForB] <= DemilitarizeWestBank
NewVerbObject2[OfferAForB] <= StopIntifada

I have no idea whether the current code architecture would allow this 
possibility. What I'm imagining is that when you fill in the "_whichEvent_" 
argument within the Benefit function by selecting "SupposeEvent" from a menu, 
the four lines immediately before it appear (assuming NewDirObject and 
NewNumberObject1 are currently flagged to "show"), just as the Acceptable and 
Desirability slots appear when you select PickBestSomething.

It may be preferable to have two slots, SupposeEvent1 and SupposeEvent2, for 
weighing two events or determining the net benefit given a desirable event 
linked to an undesirable one (i.e. a benefit and a cost).

One problem with this: the PickBestEvent function won't work for supposed 
events because multiple supposed events to pick from don't exist (and picking 
events from the history book doesn't help us in this case). What we really 
want is to pick a verb for the supposed event. But we can't just substitute 
pickBestVerb in the SupposeEventVerb assignment, because that just brings 
back the problem of picking a verb. Perhaps a special PickBestSupposeEvent 
function would be possible:

NewSubject[OfferAForB] <= You
NewDirObject[OfferAForB] <= PA
NewActorObject1[OfferAForB] <= PA
NewActorObject2[OfferAForB] <= You
NewNumberObject1[OfferAForB] <= 20000
NewSubject[CandidateSupposeEvent] <= You
NewDirObject[CandidateSupposeEvent] <= PA
NewNumberObject1[CandidateSupposeEvent] <= 20000
Acceptable <= Keycode13[HistVerb[CandidateSupposeEvent]]
Desirability <= (Benefit(You, CandidateSupposeEvent) +
Benefit(DirObject, CandidateSupposeEvent))
NewVerbObject1[OfferAForB] <= PickBestSupposeEvent(Acceptable, Desirability)
NewVerbObject2[OfferAForB] <= StopIntifada

HistVerb is a bit of a misnomer used in this way, but the function is the 
same, to extract the verb from an event.

Even if feasible, SupposeEvent mechanisms may seem a lot of trouble to go 
through just to maintain a fairly subtle distinction between verbs and 
events. But my gut tells me this distinction, and these mechanisms, would 
become critically important if this concept of looking ahead at consequences 
were to be further developed or generalized in Erasmatron.

- Walt