Re: A Mathematica Puzzle Involving Computation of Expected Utilities

*To*: mathgroup at christensen.cybernetics.net*Subject*: [mg850] Re: A Mathematica Puzzle Involving Computation of Expected Utilities*From*: rubin at msu.edu (Paul A. Rubin)*Date*: Wed, 26 Apr 1995 00:17:20 -0400*Organization*: Michigan State University

In article <3mver3$r0s at news0.cybernetics.net>, SChandler at uh.edu (Seth Chandler) wrote: ->Suppose you have m functions -> ->In[1] ->funcs=Array[f,4] -> ->Out[1] ->{f[1], f[2], f[3], f[4]} -> ->and you want to associate them with a list with n elements -> ->In[2] ->probs=Array[p,5] -> ->Out[2] ->{p[1], p[2], p[3], p[4], p[5]} -> -> ->and an m x n array that looks something like this. -> ->In[3] states=Array[s,{4,5}] -> ->Out[3] ->{{s[1, 1], s[1, 2], s[1, 3], s[1, 4], s[1, 5]}, -> {s[2, 1], s[2, 2], s[2, 3], s[2, 4], s[2, 5]}, -> {s[3, 1], s[3, 2], s[3, 3], s[3, 4], s[3, 5]}, -> {s[4, 1], s[4, 2], s[4, 3], s[4, 4], s[4, 5]}} -> ->so that you end up with the following output -> ->{p[1] f[1][s[1, 1]] + p[2] f[1][s[1, 2]] + -> p[3] f[1][s[1, 3]] + p[4] f[1][s[1, 4]] + -> p[5] f[1][s[1, 5]], -> p[1] f[2][s[2, 1]] + p[2] f[2][s[2, 2]] + -> p[3] f[2][s[2, 3]] + p[4] f[2][s[2, 4]] + -> p[5] f[2][s[2, 5]], -> p[1] f[3][s[3, 1]] + p[2] f[3][s[3, 2]] + -> p[3] f[3][s[3, 3]] + p[4] f[3][s[3, 4]] + -> p[5] f[3][s[3, 5]], -> p[1] f[4][s[4, 1]] + p[2] f[4][s[4, 2]] + -> p[3] f[4][s[4, 3]] + p[4] f[4][s[4, 4]] + -> p[5] f[4][s[4, 5]]} -> ->The best procedure I have come up with is as follows: -> ->(states*funcs).pr/.Times[a_,b_,c_]->b*a[c] -> ->But I'm willing to bet there's a better and more elegant way. Plus, this ->method does not work when the functions are not abstractions like f[1], but ->actual pure functions like, say, Function[x,-Exp[-x]]. -> ->Does anyone have a suggestion? -> ->P.S. This would be useful in determining the expected utilities of n players ->in a game that can end up in m states. -> ->================================== ->Professor Seth J. Chandler ->University of Houston Law Center ->BLB132 ->Houston, Texas 77204 ->SChandler at uh.edu -> MapThread[ Map, {funcs, states} ] . probs I don't know about "better" or "more elegant." It seems to work when the function list is a list of pure functions. Paul ************************************************************************** * Paul A. Rubin Phone: (517) 432-3509 * * Department of Management Fax: (517) 432-1111 * * Eli Broad Graduate School of Management Net: RUBIN at MSU.EDU * * Michigan State University * * East Lansing, MI 48824-1122 (USA) * ************************************************************************** Mathematicians are like Frenchmen: whenever you say something to them, they translate it into their own language, and at once it is something entirely different. J. W. v. GOETHE