mkse150   Homework 2

Answers

Text book exercise 6.11.2
Incorrect. For an example, look at the prisoner's dilemma in page 161 of the book. The only equilibrium is (C,C) with total revenue of (-4)+(-4)=(-8) which is worse than the total revenue of the case of (NC,NC) which is (-2).

Text book exercise 6.11.5
The only pure strategy of the game is the case where both players are playing action M.

Text book exercise 8.4.2
(a) See the figure.
(b) x=40 in the equilibrium.
(c) Using the hint, the equilibrium is the case where x=50, and 20 people use the first new road.
(d) It increases from 110 to 120 minutes per person.
(e) See the figure.
pic

Text book exercise 9.8.2
(a) Pr[At least one bidder has value 1]*1 + Pr[Both bidder have value 3]*3 = (1-1/4) + (1/4)*3 = 6/4
(b) Pr[More than 1 bidders have value 3]*3 + Pr[1 bidder or less has value 3]*1 = (4/8)*3 + (4/8)*1 = 2
(c) As the number of bidders grow, it becomes more likely to have at least two workers with the high valuation 3. Since we are using second price auction, the auctioneer's revenue is 3 (i.e. high) in this case. So as the number of bidders grow, the expected revenue of the auctioneer becomes higherLast login: Sun Apr 14 13:08:43 on ttys000 seas0936:~ hodaheidari$ ssh mkse150@seas.upenn.edu ssh: connect to host seas.upenn.edu port 22: Operation timed out seas0936:~ hodaheidari$ ssh mkse150@eniac.seas.upenn.edu mkse150@eniac.seas.upenn.edu's password: Last login: Mon Apr 22 10:30:52 2013 from pool-71-168-148-168.cmdnnj.fios.verizon.net AIChE/InnoWorks Study Break April 26th 3pm - Raisler Lounge Insomnia Cookies & Pizza! Come drop by! mkse150@plus:~> ls archive junk Mail MKSE150_S13.csv spring11 workspaceJSJ html mail Maildir public_html submit mkse150@plus:~> cd html mkse150@plus:~/html> ls 1x1.gif index1.html schedule.html wallstreetscandals.gif archive index.html slides assignments.html midterm.html turningin.html homework midterm.html~ turnin.html mkse150@plus:~/html> cd homeworl -bash: cd: homeworl: No such file or directory mkse150@plus:~/html> cd homework mkse150@plus:~/html/homework> ls hw0 hw1 hw2 hw3 hw4 hw5 mkse150@plus:~/html/homework> cd hw2 mkse150@plus:~/html/homework/hw2> ls hw2.zip instructions.html pic.png solutions.html mkse150@plus:~/html/homework/hw2> vim solutions.html pic

Text book exercise 9.8.2
(a) Pr[At least one bidder has value 1]*1 + Pr[Both bidder have value 3]*3 = (1-1/4) + (1/4)*3 = 6/4
(b) Pr[More than 1 bidders have value 3]*3 + Pr[1 bidder or less has value 3]*1 = (4/8)*3 + (4/8)*1 = 2
(c) As the number of bidders grow, it becomes more likely to have at least two workers with the high valuation 3. Since we are using second price auction, the auctioneer's revenue is 3 (i.e. high) in this case. So as the number of bidders grow, the expected revenue of the auctioneer becomes higher.

Text book exercise 9.8.5
Yes. Consider the auctioneer as a third bidder. The discussion for the truthfulness of second-prices auction holds here as well. i

Finding Equilibria programming problem: @ -- INSERT -- 33,299 25% .

Text book exercise 9.8.5
Yes. Consider the auctioneer as a third bidder. The discussion for the truthfulness of second-prices auction holds here as well.

Finding Equilibria programming problem:

	public Vector<IndexPair> findEquilibria() {
		System.out.println("finding Equilibria");
		Vector<IndexPair> equilibs= new Vector<IndexPair>();
		castor.findBestPayoffs();	// just a suggestion
		pollux.findBestPayoffs();	// just a suggestion
		for (int row=0; row<castor.pay.size(); row++) {
			for (int col=0; col<pollux.pay.size(); col++) {
				/*System.out.println("testing "+row+", "+col+": "
						+" ("+castor.pay[row][col]+" "+castor.bests[col]+")"
						+" ("+pollux.pay[col][row]+" "+pollux.bests[row]+")");/**/
				if (castor.pay.elementAt(row).elementAt(col)==castor.bests[col]
				&&  pollux.pay.elementAt(col).elementAt(row)==pollux.bests[row])
					equilibs.add(new IndexPair(row,col));
			}
		}
		return equilibs;
	}

Finding Dominated Strategies programming problem:

		int findDominatedStrategy() {
			dominatee: 
			for (int i=0; i<pay.size(); i++) {
				dominator: 
				for (int j=0; j<pay.size(); j++) {
					if (i==j) continue;
					boolean pref= false;
					for (int k=0; k<pay.elementAt(i).size(); k++) {
						float pi= pay.elementAt(i).elementAt(k);
						float pj= pay.elementAt(j).elementAt(k);
						if (pi > pj) continue dominator;
						if (pi < pj) pref= true;
					}
					if (pref) return i; 
				}
			}
			return -1;
		}

Eliminating Dominated Strategies programming problem:

	public void reduce() {
		System.out.println("reducing");
		while(findAndRemove(castor,pollux) || findAndRemove(pollux,castor)) {}
		}
	}

Sometimes, the code above will make some unnecessary calls to findAndRemove(castor,pollux) so if you'd like to be more careful, here is another solution:
	public void reduce() {
		System.out.println("reducing");
		while(findAndRemove(castor,pollux)) {}
		while(true) {
			if (!findAndRemove(pollux,castor)) break;
			while(findAndRemove(pollux,castor))  {}
			if (!findAndRemove(castor,pollux)) break;
			while(findAndRemove(castor,pollux))  {}
		}
	}