From Wikipedia:
PageRank is an algorithm used by Google Search to rank websites in their search engine results. PageRank was named after Larry Page, one of the founders of Google. PageRank is a way of measuring the importance of website pages. According to Google:
PageRank works by counting the number and quality of links to a page to determine a rough estimate of how important the website is. The underlying assumption is that more important websites are likely to receive more links from other websites.
There are four common frameworks by which academics view Google's PageRank algorithm. The first looks at the social impact, both positive and negative, of immediate access to previously unimaginable knowledge through one centralized terminal. The second, and most mathematical, sees PageRank as a computation of the Singular Value Decomposition (SVD) of the adjacency matrix of the graph formed by the internet, with particular emphasis paid to the first few singular vectors. The third, and most far-reaching, practical technical implication of Google's work is the implementation of algorithms and computation at enormous scale. Much of the computing infrastructure which operates at a global scale deployed today can trace its origins to Google's need to perform SVD on an object as enormous as the Internet. Finally, a more intuitive way to look at the PageRank algorithm is through the lens of a web crawler (or many web crawler) acting as an agent (or agents) in a Markov Chain the size of the web. We will investigate this viewpoint.
This crawler is searching for an approximate "invariant" distribution (why does a true invariant distribution almost certainly not exist?) and will rank pages based on their "probability" in this generated distribution. In order to do so, our crawler chooses to follow a link uniformly at random from the page it is on in order to arrive at a new page, keeping tally of how many times it has visited each page. If this crawler runs for a really, really long time, the fraction of time it has spent on each webpage will approximately be the probability of being on that page (assuming we account for pathologies in the Markov chain which we will discuss soon). We then rank pages in decreasing order of probability.
Alright, great! Let's do stuff. First, visit the following webpage, and see how many web pages can be reached by clicking the links on each page. http://www.eecs.berkeley.edu/~kw1jjang/ee126/1.html
There are total of $8$ pages, and they are connected as follows.
Since we choose a link at uniform from each page, the probability of going between pages $x$ and $y$ is $\Large \frac{\text{# of pages from x to y}}{\text{# of pages leaving x}}$
Thus the Markov chain generated by the web pages above is
and the transition matrix of the Markov chain is
$$ \left( \begin{array}{cccccccc} 0 & \frac{1}{5} & \frac{1}{5} & \frac{1}{5} & \frac{1}{5} & 0 & 0 & \frac{1}{5} \\ \frac{1}{2} & 0 & 0 & 0 & \frac{1}{2} & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 \\ 0 & \frac{1}{3} & \frac{1}{3} & \frac{1}{3} & 0 & 0 & 0 & 0 \\ \frac{1}{4} & 0 & \frac{1}{4} & 0 & 0 & 0 & \frac{1}{4} & \frac{1}{4} \\ \frac{1}{4} & \frac{1}{4} & 0 & 0 & \frac{1}{4} & \frac{1}{4} & 0 & 0 \\ \frac{1}{5} & \frac{1}{5} & \frac{1}{5} & \frac{1}{5} & 0 & 0 & \frac{1}{5} & 0 \end{array} \right) $$The Markov matrix is copied in code below. This might make your computation easier, but you can solve this in any way you wish. (Note: don't forget about the difference between right and left eigenvectors)
import numpy as np
from __future__ import division
P = np.matrix([[0, 1/5, 1/5, 1/5, 1/5, 0, 0, 1/5],
[1/2, 0, 0, 0, 1/2, 0, 0, 0],
[0, 1, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 1, 0, 0, 0],
[0, 1/3, 1/3, 1/3, 0, 0, 0, 0],
[1/4,0,1/4,0,0,0,1/4,1/4],
[1/4, 1/4, 0, 0, 1/4, 1/4, 0, 0],
[1/5, 1/5, 1/5, 1/5, 0, 0, 1/5, 0]])
P_transpose = P.T
print P
[[ 0. 0.2 0.2 0.2 0.2 0. 0. 0.2 ] [ 0.5 0. 0. 0. 0.5 0. 0. 0. ] [ 0. 1. 0. 0. 0. 0. 0. 0. ] [ 0. 0. 0. 0. 1. 0. 0. 0. ] [ 0. 0.33333333 0.33333333 0.33333333 0. 0. 0. 0. ] [ 0.25 0. 0.25 0. 0. 0. 0.25 0.25 ] [ 0.25 0.25 0. 0. 0.25 0.25 0. 0. ] [ 0.2 0.2 0.2 0.2 0. 0. 0.2 0. ]]
# Your code here
We now want to empirically test what we solved above by modeling a random user hopping along those webpages. We will start the user at "1.html" and behave as per the Markov chain above. In the code below, we simulate this and keep track of the average amount of time a user spends in each state. We will expect that after enough iterations, the fraction of time spent in each state should approach the stationary distribution.
We use the parse_links()
method to parse all hyperlinks in a page. We use the library Beautiful Soup in order to complete this portion of the lab in order to easiliy parse pages. Once you download the latest release, you must build and install setup.py. Alternatively, use pip or easy_install (help).
import re
import sys
import urllib
import urlparse
import random
from bs4 import BeautifulSoup
#http://wolfprojects.altervista.org/articles/change-urllib-user-agent/
class MyOpener(urllib.FancyURLopener):
version = 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.15) Gecko/20110303 Firefox/3.6.15'
#This function will parse a url to give you the domain. Test it!
def domain(url):
#urlparse breaks down the url passed it, and you split the hostname up
#Ex: hostname="www.google.com" becomes ['www', 'google', 'com']
hostname = urlparse.urlparse(url).hostname.split(".")
hostname = ".".join(len(hostname[-2]) < 4 and hostname[-3:] or hostname[-2:])
return hostname
#This function will return all the urls on a page, and return the start url if there is an error or no urls
def parse_links(url, url_start):
url_list = []
myopener = MyOpener()
try:
#open, read, and parse the text using beautiful soup
page = myopener.open(url)
text = page.read()
page.close()
soup = BeautifulSoup(text, "lxml")
#find all hyperlinks using beautiful soup
for tag in soup.findAll('a', href=True):
#concatenate the base url with the path from the hyperlink
tmp = urlparse.urljoin(url, tag['href'])
#we want to stay in the berkeley domain. This becomes more relevant later
if domain(tmp).endswith('berkeley.edu'):
url_list.append(tmp)
if len(url_list) == 0:
return [url_start]
return url_list
except:
return [url_start]
In the following code block, use the above functions to surf the web pages described by the Markov chain above. This code block may take a while to run. If it is taking more than a couple of minutes, maybe try reducing num_of_visits
in order to at least get results. Also, running your code while connected to AirBears may help if you have a slow internet connection at home.
import random
#the url we want to begin with
url_start = "http://www.eecs.berkeley.edu/~kw1jjang/ee126/1.html"
current_url = url_start
#parameter to set the number of transitions you make/different pages you visit
num_of_visits = 1000
#dictionary of pages visited so far
visit_history = {}
#initialize dictionary since we know exactly where we'll end up
for i in range(1, 9):
page = "http://www.eecs.berkeley.edu/~kw1jjang/ee126/" + str(i) + ".html"
visit_history[page] = 0
for i in range(num_of_visits):
# Your code here
Print your results:
for i in range(1, 9):
page = "http://www.eecs.berkeley.edu/~kw1jjang/ee126/" + str(i) + ".html"
print 'Fraction of time staying on page %d is %f' % (i, float(visit_history[page])/num_of_visits)
Does this approximately match the invariant distribution you expected?
The toy websites given above conveniently form an irreducible Markov chain (look up what this means if you do not remember from class), but most of the web will not look like this. There will be fringes of the internet containing only self-loops, or some web pages which do not link to others at all. In order to account for such pathologies in the web, we need to make a more intelligent surfer. The simplest idea would be to just jump back to the starting page if there are no links found on the page you are on, and to always return to a "good" starting point with probability $p$ on every page.
This is a very naive scheme, and there are many more intelligent methods by which you can sample from the distribution of the Internet, accounting for its pathologies and all.
The following code is a (weak) attempt to rank the Berkeley faculty based on a crawler which begins on the EECS research homepage.
url_start = "http://www.eecs.berkeley.edu/Research/"
current_url = url_start
num_of_visits = 500
#List of professors obtained from the EECS page
profs = ['Abbeel','Agrawala','Alon','Anantharam','Arcak','Arias','Asanović','Bachrach','Bajcsy','Bodik','Bokor','Boser','Brewer','Canny','Chang-Hasnain','Culler','Darrell','Demmel','Fearing','Fox','Franklin','Garcia','Goldberg','Hartmann','Harvey','Hellerstein','Javey','Joseph','Katz','Keutzer','Liu','Klein','Kubiatowicz','Lee','Lustig','Maharbiz','Malik','Nguyen','Niknejad','Nikolic',"O'Brien",'Parekh','Patterson','Paxson','Pisano','Rabaey','Ramchandran','Roychowdhury','Russell','Sahai','Salahuddin','Sanders','Sangiovanni-Vincentelli','Sastry','Sen','Seshia','Shenker','Song','Song','Spanos','Stoica','Stojanovic','Tomlin','Tygar','Walrand','Wawrzynek','Wu','Yablonovitch','Yelick','Zakhor']
#Bad URLs help take care of some pathologies that ruin our surfing
bad_urls = ['http://www.erso.berkeley.edu/','http://www.eecs.berkeley.edu/Rosters/roster.name.nostudentee.html','http://www.eecs.berkeley.edu/Resguide/admin.shtml#aliases','http://www.eecs.berkeley.edu/department/EECSbrochure/c1-s3.html']
#Creating a dictionary to keep track of how often we come across a professor
profdict = {}
for i in profs:
profdict[i] = 0
for i in range(num_of_visits):
print i , ' Visiting... ', current_url
if random.random() < 0.95: #follow a link!
url_list = parse_links(current_url, url_start)
updated = False
while not updated:
current_url = random.choice(url_list)
updated = True
if current_url in bad_urls or "iris" in current_url or "Deptonly" in current_url or "anchor" in current_url or "erso" in current_url: #dealing with more pathologies:
updated = False
myopener = MyOpener()
page = myopener.open(current_url)
text = page.read()
page.close()
#Figuring out which professor is mentioned on a page.
for p in profs:
profdict[p]+= 1 if " " + p + " " in text else 0 #can use regex re.findall(i,text), but it's overkill
else: #click the "home" button!
current_url = url_start
0 Visiting... http://www.eecs.berkeley.edu/Research/ 1 Visiting... http://www.eecs.berkeley.edu/Research/ 2 Visiting... http://www.eecs.berkeley.edu/XRG/entrepreneur.html 3 Visiting... http://www.eecs.berkeley.edu/Resguide/acad.shtml 4 Visiting... http://www.eecs.berkeley.edu/department/people.shtml 5 Visiting... http://www.eecs.berkeley.edu/education/ 6 Visiting... http://www.eecs.berkeley.edu/education/ 7 Visiting... http://www.eecs.berkeley.edu/Research/ 8 Visiting... http://www.eecs.berkeley.edu/department/internal.shtml 9 Visiting... http://www.eecs.berkeley.edu/Gradadm/ 10 Visiting... http://www.eecs.berkeley.edu/Research/ 11 Visiting... http://www.eecs.berkeley.edu/cal/ 12 Visiting... http://events.berkeley.edu/index.php/calendar/sn/eecs.html?view=quick&timeframe=month&filter=Secondary%20Event%20Type&filtersel=32 13 Visiting... http://www.eecs.berkeley.edu/Research/ 14 Visiting... http://www.eecs.berkeley.edu/department/Impact.shtml 15 Visiting... http://www.eecs.berkeley.edu 16 Visiting... http://www.eecs.berkeley.edu/XRG/conferences.shtml 17 Visiting... http://www.eecs.berkeley.edu/BEARS/2008 18 Visiting... http://www.eecs.berkeley.edu/Accommodations 19 Visiting... http://www.eecs.berkeley.edu/Research/ 20 Visiting... http://www.eecs.berkeley.edu/ 21 Visiting... http://www.eecs.berkeley.edu/department/OutreachPrograms.shtml 22 Visiting... http://www.eecs.berkeley.edu/Research/ 23 Visiting... http://www.eecs.berkeley.edu/department/staff.shtml 24 Visiting... http://www.eecs.berkeley.edu/education/degrees.shtml 25 Visiting... http://www.eecs.berkeley.edu/education/degrees.shtml#cse 26 Visiting... http://www.eecs.berkeley.edu/education/ 27 Visiting... http://www.eecs.berkeley.edu/department/about.shtml 28 Visiting... http://www.eecs.berkeley.edu/education/ 29 Visiting... http://www.eecs.berkeley.edu/department/internal.shtml 30 Visiting... http://www.eecs.berkeley.edu/education/ 31 Visiting... http://www.eecs.berkeley.edu/Resguide/admin.shtml 32 Visiting... http://www.eecs.berkeley.edu/Resguide/admin.shtml#directory 33 Visiting... http://www.eecs.berkeley.edu/Resguide/admin.shtml#av1 34 Visiting... http://caltime.berkeley.edu/ 35 Visiting... http://www.eecs.berkeley.edu/Research/ 36 Visiting... http://www.eecs.berkeley.edu/Research/Areas/ 37 Visiting... http://www.eecs.berkeley.edu/Research/Areas/EDUC/ 38 Visiting... http://www.eecs.berkeley.edu/Research/ 39 Visiting... http://www.eecs.berkeley.edu/department/internal.shtml 40 Visiting... http://www.eecs.berkeley.edu/Students/ 41 Visiting... http://www.eecs.berkeley.edu/XRG/IAB/ 42 Visiting... http://www.eecs.berkeley.edu/ 43 Visiting... http://www.eecs.berkeley.edu/Includes/copyright.shtml 44 Visiting... http://www.eecs.berkeley.edu/cal/ 45 Visiting... http://www.berkeley.edu 46 Visiting... http://www.berkeley.edu 47 Visiting... http://www.berkeley.edu/utility/jobs 48 Visiting... http://www.berkeley.edu/research 49 Visiting... http://www.berkeley.edu/about/history-discoveries 50 Visiting... http://www.berkeley.edu/about/history-discoveries 51 Visiting... http://www.berkeley.edu/about/history-discoveries 52 Visiting... http://www.berkeley.edu/about/experience-berkeley 53 Visiting... http://www.berkeley.edu/about/experience-berkeley 54 Visiting... http://bulletin.berkeley.edu 55 Visiting... http://bulletin.berkeley.edu/tuition-fees-financial-aid/ 56 Visiting... http://www.eecs.berkeley.edu/Research/ 57 Visiting... http://www.eecs.berkeley.edu/XRG/eecsgifts.shtml 58 Visiting... http://www.eecs.berkeley.edu/ 59 Visiting... http://www.eecs.berkeley.edu/XRG/recruitment.shtml 60 Visiting... http://www.eecs.berkeley.edu/Research/ 61 Visiting... http://www.eecs.berkeley.edu/Pubs/ 62 Visiting... http://www.eecs.berkeley.edu/department/about.shtml 63 Visiting... http://www.berkeley.edu 64 Visiting... http://www.eecs.berkeley.edu/Research/ 65 Visiting... http://www.eecs.berkeley.edu/Research/Areas/Centers/ 66 Visiting... http://www.eecs.berkeley.edu/Research/ 67 Visiting... http://www.eecs.berkeley.edu/XRG/menu.shtml 68 Visiting... http://www.eecs.berkeley.edu/education/usli/ 69 Visiting... http://www.eecs.berkeley.edu/XRG/recruitment.shtml 70 Visiting... http://www.eecs.berkeley.edu/Research/ 71 Visiting... http://www.eecs.berkeley.edu/education/courses.shtml 72 Visiting... http://www.eecs.berkeley.edu/education/ 73 Visiting... http://www.eecs.berkeley.edu/Students/directories.shtml 74 Visiting... http://www.eecs.berkeley.edu/Students/ 75 Visiting... http://www.eecs.berkeley.edu/Includes/privacy.shtml 76 Visiting... http://www.eecs.berkeley.edu/Gradadm/ 77 Visiting... http://www.eecs.berkeley.edu/XRG/eecsgifts.shtml 78 Visiting... http://www.eecs.berkeley.edu/education/ 79 Visiting... http://www.eecs.berkeley.edu/department/staff.shtml 80 Visiting... http://www.eecs.berkeley.edu/department/people.shtml 81 Visiting... http://www.eecs.berkeley.edu/education/usli/ 82 Visiting... http://www.eecs.berkeley.edu/XRG/entrepreneur.html 83 Visiting... http://www.eecs.berkeley.edu/Pubs/ 84 Visiting... http://www.eecs.berkeley.edu/department/internal.shtml 85 Visiting... http://www.eecs.berkeley.edu/department/about.shtml 86 Visiting... http://www.eecs.berkeley.edu/department/ 87 Visiting... http://www.eecs.berkeley.edu/Directions/ 88 Visiting... http://www.eecs.berkeley.edu/Includes/copyright.shtml 89 Visiting... http://www.eecs.berkeley.edu/department/internal.shtml 90 Visiting... http://www.eecs.berkeley.edu/Research/Areas/Centers/ 91 Visiting... http://www.eecs.berkeley.edu/Research/ 92 Visiting... http://www.eecs.berkeley.edu/department/people.shtml 93 Visiting... http://www.eecs.berkeley.edu/Research/ 94 Visiting... http://www.eecs.berkeley.edu/help 95 Visiting... http://www.eecs.berkeley.edu/Research/ 96 Visiting... http://www.eecs.berkeley.edu/department/about.shtml 97 Visiting... http://www.eecs.berkeley.edu/department/people.shtml 98 Visiting... http://www.eecs.berkeley.edu/deptinfo/login.html?returnto=http://www.eecs.berkeley.edu:80/department/people.shtml 99 Visiting... http://www.eecs.berkeley.edu/Research/ 100 Visiting... http://www.eecs.berkeley.edu/deptinfo 101 Visiting... http://www.eecs.berkeley.edu/Research/ 102 Visiting... http://www.eecs.berkeley.edu/Resguide/admin.shtml 103 Visiting... http://www.eecs.berkeley.edu/department/emergency/sodaill.shtml 104 Visiting... http://www.eecs.berkeley.edu/department/internal.shtml 105 Visiting... http://www.eecs.berkeley.edu/Research/ 106 Visiting... http://www.eecs.berkeley.edu/Faculty/Awards/#nae 107 Visiting... http://www.eecs.berkeley.edu/Pubs/ 108 Visiting... http://www.eecs.berkeley.edu/Research/ 109 Visiting... http://www.eecs.berkeley.edu/news/ 110 Visiting... http://www.eecs.berkeley.edu/Research/ 111 Visiting... http://www.eecs.berkeley.edu/department/internal.shtml 112 Visiting... http://www.eecs.berkeley.edu/XRG/IAB/ 113 Visiting... http://www.eecs.berkeley.edu/department/history.shtml 114 Visiting... http://www.eecs.berkeley.edu/department/OutreachPrograms.shtml 115 Visiting... http://www.eecs.berkeley.edu/Research/ 116 Visiting... http://www.eecs.berkeley.edu/education/degrees.shtml 117 Visiting... http://coe.berkeley.edu/students/current-undergraduates/majors-minors/simultaneous-degrees.html/ 118 Visiting... http://www.eecs.berkeley.edu/Research/ 119 Visiting... http://www.eecs.berkeley.edu/Research/ 120 Visiting... http://www.eecs.berkeley.edu/Resguide/admin.shtml 121 Visiting... http://www.eecs.berkeley.edu/department/ 122 Visiting... http://www.eecs.berkeley.edu/Research/ 123 Visiting... http://www.eecs.berkeley.edu/deptinfo 124 Visiting... http://www.eecs.berkeley.edu/Research/ 125 Visiting... http://www.eecs.berkeley.edu/Pubs/ 126 Visiting... http://www.eecs.berkeley.edu/education/courses.shtml 127 Visiting... http://www.eecs.berkeley.edu/Scheduling/EE/schedule-next.html 128 Visiting... http://www.eecs.berkeley.edu/Courses/Data/79.html 129 Visiting... http://www.eecs.berkeley.edu/Gradadm/ 130 Visiting... http://www.eecs.berkeley.edu/department/internal.shtml 131 Visiting... http://www.eecs.berkeley.edu/Gradadm/ 132 Visiting... http://www.eecs.berkeley.edu/help 133 Visiting... http://www.eecs.berkeley.edu/Research/ 134 Visiting... http://www.eecs.berkeley.edu/XRG/recruitment.shtml 135 Visiting... http://www.eecs.berkeley.edu/Research/ 136 Visiting... http://www.eecs.berkeley.edu/Colloquium/ 137 Visiting... http://www.eecs.berkeley.edu/Colloquium/Archives/10-11/Fall2010/index.shtml 138 Visiting... http://www.eecs.berkeley.edu/Directions/ 139 Visiting... http://www.eecs.berkeley.edu/Resguide/stud.shtml 140 Visiting... http://www.eecs.berkeley.edu/Programs/Notes/section6.shtml#6.2 141 Visiting... http://www.eecs.berkeley.edu/Programs/Notes/index.shtml 142 Visiting... http://www.eecs.berkeley.edu/Research/ 143 Visiting... http://www.eecs.berkeley.edu/department/people.shtml 144 Visiting... http://www.eecs.berkeley.edu/Resguide/admin.shtml 145 Visiting... http://www.eecs.berkeley.edu/Resguide/admin.shtml#top 146 Visiting... http://www.eecs.berkeley.edu/Resguide/admin.shtml#events 147 Visiting... http://www.eecs.berkeley.edu/Resguide/admin.shtml#parking 148 Visiting... http://www.eecs.berkeley.edu/department/emergency/coryill.shtml 149 Visiting... http://www.eecs.berkeley.edu/education/courses.shtml 150 Visiting... http://www.eecs.berkeley.edu/Scheduling/EE/schedule.html 151 Visiting... http://www.eecs.berkeley.edu/Courses/Data/928.html 152 Visiting... http://www.eecs.berkeley.edu/department/history.shtml 153 Visiting... http://www.eecs.berkeley.edu/Includes/copyright.shtml 154 Visiting... http://www.eecs.berkeley.edu/cal/ 155 Visiting... http://www.eecs.berkeley.edu/alumni/lists.shtml 156 Visiting... http://www.eecs.berkeley.edu/cal/ 157 Visiting... http://www.eecs.berkeley.edu/education/courses.shtml 158 Visiting... http://www.cs.berkeley.edu/Scheduling/faq.shtml 159 Visiting... http://www.cs.berkeley.edu/Research/ 160 Visiting... http://www.cs.berkeley.edu/department/ 161 Visiting... http://www.cs.berkeley.edu/Visiting/Scholars/menu.shtml 162 Visiting... http://www.cs.berkeley.edu/education/degrees.shtml 163 Visiting... http://www.cs.berkeley.edu/education/ 164 Visiting... http://www.cs.berkeley.edu/Research/ 165 Visiting... http://www.cs.berkeley.edu/cal/ 166 Visiting... http://www.eecs.berkeley.edu/Research/ 167 Visiting... http://www.eecs.berkeley.edu/help 168 Visiting... http://www.eecs.berkeley.edu/Research/ 169 Visiting... http://www.eecs.berkeley.edu/Research/ 170 Visiting... http://www.eecs.berkeley.edu/department/internal.shtml 171 Visiting... http://www.eecs.berkeley.edu/education/usli/ 172 Visiting... http://www.eecs.berkeley.edu/Research/ 173 Visiting... http://www.eecs.berkeley.edu/bears/ 174 Visiting... http://crest.berkeley.edu/ 175 Visiting... http://crest.berkeley.edu/carbonroadmap.html 176 Visiting... http://crest.berkeley.edu/bears.html 177 Visiting... http://crest.berkeley.edu/mission.html 178 Visiting... http://sinberise.berkeley.edu/ 179 Visiting... http://sinberise.berkeley.edu/ 180 Visiting... http://sinberise.berkeley.edu/ 181 Visiting... http://sinberise.berkeley.edu/ 182 Visiting... http://sinberise.berkeley.edu/ 183 Visiting... http://sinberise.berkeley.edu/ 184 Visiting... http://sinberise.berkeley.edu/ 185 Visiting... http://sinberise.berkeley.edu/ 186 Visiting... http://sinberise.berkeley.edu/ 187 Visiting... http://sinberise.berkeley.edu/ 188 Visiting... http://sinberise.berkeley.edu/ 189 Visiting... http://sinberise.berkeley.edu/ 190 Visiting... http://sinberise.berkeley.edu/ 191 Visiting... http://sinberise.berkeley.edu/ 192 Visiting... http://sinberise.berkeley.edu/ 193 Visiting... http://sinberise.berkeley.edu/ 194 Visiting... http://sinberise.berkeley.edu/ 195 Visiting... http://sinberise.berkeley.edu/ 196 Visiting... http://sinberise.berkeley.edu/ 197 Visiting... http://sinberise.berkeley.edu/ 198 Visiting... http://sinberise.berkeley.edu/ 199 Visiting... http://sinberise.berkeley.edu/ 200 Visiting... http://www.eecs.berkeley.edu/Research/ 201 Visiting... http://www.berkeley.edu 202 Visiting... http://www.berkeley.edu/students 203 Visiting... http://studentcentral.berkeley.edu/ 204 Visiting... http://studentcentral.berkeley.edu/about 205 Visiting... http://studentcentral.berkeley.edu/faqs 206 Visiting... http://www.eecs.berkeley.edu/Research/ 207 Visiting... http://www.eecs.berkeley.edu/education/usli/ 208 Visiting... http://www.eecs.berkeley.edu/department/people.shtml 209 Visiting... http://www.eecs.berkeley.edu/Research/ 210 Visiting... http://www.eecs.berkeley.edu/Facilities/ 211 Visiting... https://buffy.eecs.berkeley.edu/PHP/bldgreq/startup.php?dept=eecs 212 Visiting... http://www.eecs.berkeley.edu/Research/ 213 Visiting... http://www.eecs.berkeley.edu 214 Visiting... http://www.eecs.berkeley.edu/cal/ 215 Visiting... http://www.eecs.berkeley.edu/department/statistics.shtml 216 Visiting... http://www.eecs.berkeley.edu/education/degrees.shtml 217 Visiting... http://www.eecs.berkeley.edu/Prospective/ugrad.shtml 218 Visiting... http://www.eecs.berkeley.edu/Research/ 219 Visiting... http://www.eecs.berkeley.edu/XRG/eecsgifts.shtml 220 Visiting... http://www.eecs.berkeley.edu/education/ 221 Visiting... http://www.eecs.berkeley.edu/Research/ 222 Visiting... http://www.eecs.berkeley.edu/department/about.shtml 223 Visiting... http://www.eecs.berkeley.edu/department/internal.shtml 224 Visiting... http://www.eecs.berkeley.edu/deptinfo/login.html?returnto=http://www.eecs.berkeley.edu:80/department/internal.shtml 225 Visiting... http://www.eecs.berkeley.edu/Research/ 226 Visiting... http://www.eecs.berkeley.edu/Faculty/Awards/ 227 Visiting... http://www.eecs.berkeley.edu/Faculty/Awards/siam.shtml 228 Visiting... http://www.eecs.berkeley.edu/deptinfo 229 Visiting... http://www.eecs.berkeley.edu/Research/ 230 Visiting... http://www.eecs.berkeley.edu/Resguide/acad.shtml 231 Visiting... http://www.eecs.berkeley.edu/Resguide/acad.shtml#top 232 Visiting... http://www.eecs.berkeley.edu/Resguide/acad.shtml#course.reports 233 Visiting... http://www.eecs.berkeley.edu/Resguide/acad.shtml#top 234 Visiting... http://www.eecs.berkeley.edu/Resguide/acad.shtml#forms 235 Visiting... http://www.eecs.berkeley.edu/Scheduling/CS/ 236 Visiting... http://bulletin.berkeley.edu/courses/compsci/ 237 Visiting... http://bulletin.berkeley.edu/search/?P=COMPSCI 199 238 Visiting... http://bulletin.berkeley.edu/student-life/ 239 Visiting... http://students.berkeley.edu/finaid/ 240 Visiting... http://students.berkeley.edu/prospective-students 241 Visiting... http://www.eecs.berkeley.edu/Research/ 242 Visiting... http://www.eecs.berkeley.edu/bears/ 243 Visiting... http://www.eecs.berkeley.edu/BEARS/2015/program.pdf 244 Visiting... http://www.eecs.berkeley.edu/Research/ 245 Visiting... http://www.berkeley.edu 246 Visiting... http://www.berkeley.edu/research 247 Visiting... http://www.berkeley.edu/research 248 Visiting... http://financialaid.berkeley.edu/ 249 Visiting... http://financialaid.berkeley.edu/estimate-your-financial-aid 250 Visiting... http://financialaid.berkeley.edu/understanding-your-commitment 251 Visiting... http://financialaid.berkeley.edu/berkeley-undergraduate-scholarship 252 Visiting... http://financialaid.berkeley.edu/frequently-asked-questions 253 Visiting... http://financialaid.berkeley.edu/prizes-and-honors-nicola-de-lorenzo-prize-music-composition 254 Visiting... http://financialaid.berkeley.edu/innovative-berkeley-aid-programs 255 Visiting... http://financialaid.berkeley.edu/financial-aid-glance 256 Visiting... http://financialaid.berkeley.edu/graduate-award-guide 257 Visiting... http://financialaid.berkeley.edu/prizes-and-honors-university-medal 258 Visiting... http://www.eecs.berkeley.edu/Research/ 259 Visiting... http://www.eecs.berkeley.edu/Resguide/stud.shtml 260 Visiting... http://www.eecs.berkeley.edu/education/ 261 Visiting... http://www.eecs.berkeley.edu/Gradadm/ 262 Visiting... http://www.eecs.berkeley.edu/MEng/ 263 Visiting... http://www.eecs.berkeley.edu/XRG/menu.shtml 264 Visiting... http://www.eecs.berkeley.edu/Students/directories.shtml 265 Visiting... http://www.eecs.berkeley.edu/Visiting/Scholars/menu.shtml 266 Visiting... http://www.eecs.berkeley.edu/education/ 267 Visiting... http://www.eecs.berkeley.edu/education/courses.shtml 268 Visiting... http://www.eecs.berkeley.edu/Scheduling/CS/schedule.html 269 Visiting... http://www.eecs.berkeley.edu/Courses/Data/335.html 270 Visiting... http://www.eecs.berkeley.edu/Resguide/admin.shtml 271 Visiting... http://www.eecs.berkeley.edu/department/statistics.shtml 272 Visiting... http://www.eecs.berkeley.edu/Research/ 273 Visiting... http://www.eecs.berkeley.edu/department/staffinfo.shtml 274 Visiting... http://www.eecs.berkeley.edu/Colloquium/ 275 Visiting... http://www.eecs.berkeley.edu/education/ 276 Visiting... http://www.eecs.berkeley.edu/Research/ 277 Visiting... http://www.eecs.berkeley.edu/cal/ 278 Visiting... http://www.eecs.berkeley.edu/XRG/menu.shtml 279 Visiting... http://www.eecs.berkeley.edu/Students/ 280 Visiting... http://www.eecs.berkeley.edu/cal/ 281 Visiting... http://www.eecs.berkeley.edu/Diversity/ 282 Visiting... http://www.eecs.berkeley.edu/Research/ 283 Visiting... http://www.eecs.berkeley.edu/department/statistics.shtml 284 Visiting... http://www.eecs.berkeley.edu/Includes/privacy.shtml 285 Visiting... http://www.eecs.berkeley.edu/department/history.shtml 286 Visiting... http://netshow01.eecs.berkeley.edu/zadeh2010.wmv 287 Visiting... http://www.eecs.berkeley.edu/Research/ 288 Visiting... http://www.eecs.berkeley.edu/help 289 Visiting... http://www.eecs.berkeley.edu/Research/ 290 Visiting... http://www.eecs.berkeley.edu/department/internal.shtml 291 Visiting... http://www.eecs.berkeley.edu/Resguide/admin.shtml 292 Visiting... http://www.eecs.berkeley.edu/Resguide/admin.shtml#timesheets 293 Visiting... http://www.eecs.berkeley.edu/department/people.shtml 294 Visiting... http://www.eecs.berkeley.edu/department/staff.shtml 295 Visiting... http://www.eecs.berkeley.edu/XRG/menu.shtml 296 Visiting... http://www.eecs.berkeley.edu/department/history.shtml 297 Visiting... http://www.eecs.berkeley.edu/ 298 Visiting... http://www.eecs.berkeley.edu/Faculty/Homepages/chang-hasnain.html 299 Visiting... http://www.eecs.berkeley.edu/XRG/conferences.shtml 300 Visiting... http://www-bisc.cs.berkeley.edu/BISCSE2005/ 301 Visiting... http://www-bisc.cs.berkeley.edu/XRG/menu.shtml 302 Visiting... http://www-bisc.cs.berkeley.edu/Directions/ 303 Visiting... http://www-bisc.cs.berkeley.edu/department/about.shtml 304 Visiting... http://www-bisc.cs.berkeley.edu/Directions/ 305 Visiting... http://www-bisc.cs.berkeley.edu/Research/ 306 Visiting... http://www-bisc.cs.berkeley.edu/department/staff.shtml 307 Visiting... http://www-bisc.cs.berkeley.edu/department/OutreachPrograms.shtml 308 Visiting... http://www-bisc.cs.berkeley.edu/Research/ 309 Visiting... http://www-bisc.cs.berkeley.edu/Pubs/ 310 Visiting... http://www-bisc.cs.berkeley.edu/department/internal.shtml 311 Visiting... http://www-bisc.cs.berkeley.edu/XRG/ 312 Visiting... http://events.berkeley.edu/index.php/calendar/sn/eecs.html?view=quick&timeframe=month&filter=Secondary%20Event%20Type&filtersel=32 313 Visiting... http://www.eecs.berkeley.edu/Research/ 314 Visiting... http://www.eecs.berkeley.edu/Research/Projects/ 315 Visiting... http://www.eecs.berkeley.edu/Research/Areas/ 316 Visiting... http://www.eecs.berkeley.edu/department/history.shtml 317 Visiting... http://netshow01.eecs.berkeley.edu/zadeh2010.wmv 318 Visiting... http://www.eecs.berkeley.edu/Research/ 319 Visiting... http://www.eecs.berkeley.edu/Faculty/Awards/ 320 Visiting... http://www.eecs.berkeley.edu/Research/ 321 Visiting... http://www.eecs.berkeley.edu/Faculty/Awards/#nms 322 Visiting... http://www.eecs.berkeley.edu/Research/ 323 Visiting... http://www.eecs.berkeley.edu/department/officers.shtml 324 Visiting... http://www.eecs.berkeley.edu/Research/ 325 Visiting... http://www.eecs.berkeley.edu/department/about.shtml 326 Visiting... http://www.eecs.berkeley.edu/department/administration.shtml 327 Visiting... http://www.eecs.berkeley.edu/Research/ 328 Visiting... http://www.eecs.berkeley.edu/department/people.shtml 329 Visiting... http://www.eecs.berkeley.edu/Research/ 330 Visiting... http://www.eecs.berkeley.edu/cal/ 331 Visiting... http://events.berkeley.edu/index.php/calendar/sn/eecs.html?view=quick&timeframe=month&filter=Secondary%20Event%20Type&filtersel=32 332 Visiting... http://www.eecs.berkeley.edu/Research/ 333 Visiting... http://www.eecs.berkeley.edu/cal/ 334 Visiting... http://www.eecs.berkeley.edu/Diversity/ 335 Visiting... http://www.eecs.berkeley.edu/Research/ 336 Visiting... http://www.eecs.berkeley.edu/Research/Areas/Centers/ 337 Visiting... http://www.eecs.berkeley.edu/Research/ 338 Visiting... http://www.eecs.berkeley.edu/XRG/menu.shtml 339 Visiting... http://www.eecs.berkeley.edu/department/officers.shtml 340 Visiting... http://www.eecs.berkeley.edu/Research/ 341 Visiting... http://www.eecs.berkeley.edu/Facilities/ 342 Visiting... http://www.eecs.berkeley.edu/Resguide/roomsched.shtml 343 Visiting... http://www.eecs.berkeley.edu/department/statistics.shtml 344 Visiting... http://guide.berkeley.edu/search/?P=compsci+61a 345 Visiting... http://guide.berkeley.edu/tuition-fees-financial-aid/ 346 Visiting... http://www.eecs.berkeley.edu/Research/ 347 Visiting... http://www.eecs.berkeley.edu/cal/ 348 Visiting... http://www.berkeley.edu 349 Visiting... http://www.berkeley.edu/atoz/dept 350 Visiting... http://financialaid.berkeley.edu/ 351 Visiting... http://financialaid.berkeley.edu/private-alternative-loan 352 Visiting... http://financialaid.berkeley.edu/loans 353 Visiting... http://financialaid.berkeley.edu/grants 354 Visiting... http://financialaid.berkeley.edu/cost-attendance-2014-15 355 Visiting... http://financialaid.berkeley.edu/money-matters-101 356 Visiting... http://www.eecs.berkeley.edu/Research/ 357 Visiting... http://www.eecs.berkeley.edu/education/ 358 Visiting... http://www.eecs.berkeley.edu/education/usli/ 359 Visiting... http://www.eecs.berkeley.edu/Resguide/stud.shtml 360 Visiting... http://www.eecs.berkeley.edu/Students/Handbook/section3.shtml#3.2.4 361 Visiting... http://www.eecs.berkeley.edu/Students/Handbook/section3.shtml#3.3.5 362 Visiting... http://career.berkeley.edu/ 363 Visiting... http://career.berkeley.edu/Tools/Tools 364 Visiting... http://career.berkeley.edu/Tools/JobSearchExercise 365 Visiting... http://career.berkeley.edu/StaffFaculty/StaffFaculty 366 Visiting... http://career.berkeley.edu/Info/MakeAppt 367 Visiting... http://www.eecs.berkeley.edu/Research/ 368 Visiting... http://www.eecs.berkeley.edu/Faculty/Awards/ 369 Visiting... http://www.eecs.berkeley.edu/department/about.shtml 370 Visiting... http://www.eecs.berkeley.edu/Visiting/Scholars/menu.shtml 371 Visiting... http://www.berkeley.edu 372 Visiting... http://newsroom.haas.berkeley.edu/article/patrick-awuah-mba-99-and-founder-ghana%E2%80%99s-aseshi-university-wins-macarthur-genius-grant 373 Visiting... http://www.eecs.berkeley.edu/Research/ 374 Visiting... http://www.eecs.berkeley.edu/Visiting/Scholars/menu.shtml 375 Visiting... http://www.eecs.berkeley.edu/Faculty/Lists/ 376 Visiting... http://events.berkeley.edu/index.php/calendar/sn/eecs.html?view=quick&timeframe=month&filter=Secondary%20Event%20Type&filtersel=32 377 Visiting... http://www.eecs.berkeley.edu/Research/ 378 Visiting... http://www.eecs.berkeley.edu/department/people.shtml 379 Visiting... http://www.eecs.berkeley.edu/department/internal.shtml 380 Visiting... http://www.eecs.berkeley.edu/cal/ 381 Visiting... http://www.eecs.berkeley.edu/education/usli/ 382 Visiting... http://www.eecs.berkeley.edu/Includes/copyright.shtml 383 Visiting... http://www.eecs.berkeley.edu/Facilities/ 384 Visiting... http://www.eecs.berkeley.edu/department/internal.shtml 385 Visiting... http://www.eecs.berkeley.edu/Pubs/ 386 Visiting... http://www.eecs.berkeley.edu/Resguide/stud.shtml 387 Visiting... http://www.eecs.berkeley.edu/education/showcase/ 388 Visiting... http://www.eecs.berkeley.edu/Faculty/Homepages/wolisz.html 389 Visiting... http://www.berkeley.edu 390 Visiting... http://www.berkeley.edu 391 Visiting... http://www.berkeley.edu/about/visit 392 Visiting... http://www.berkeley.edu/about/visit 393 Visiting... http://www.berkeley.edu/research/museumscollections 394 Visiting... http://grad.berkeley.edu/ 395 Visiting... http://grad.berkeley.edu/events/category/professional-development/month/ 396 Visiting... http://grad.berkeley.edu/event/the-hacker-within-pandas/ 397 Visiting... http://gradlectures.berkeley.edu 398 Visiting... http://www.eecs.berkeley.edu/Research/ 399 Visiting... http://www.eecs.berkeley.edu/XRG/conferences.shtml 400 Visiting... http://www.eecs.berkeley.edu/Resguide/admin.shtml 401 Visiting... http://www.eecs.berkeley.edu/Research/ 402 Visiting... http://www.eecs.berkeley.edu/Visiting/Scholars/menu.shtml 403 Visiting... http://www.eecs.berkeley.edu/Pubs/ 404 Visiting... http://www.eecs.berkeley.edu/XRG/ 405 Visiting... http://www.eecs.berkeley.edu/Research/ 406 Visiting... http://www.eecs.berkeley.edu/Faculty/Awards/#nms 407 Visiting... http://www.eecs.berkeley.edu/deptinfo/login.html?returnto=http://www.eecs.berkeley.edu:80/Faculty/Awards/#nms 408 Visiting... http://www.eecs.berkeley.edu/Research/ 409 Visiting... http://www.eecs.berkeley.edu/department/Impact.shtml 410 Visiting... http://www.eecs.berkeley.edu/department/officers.shtml 411 Visiting... http://www.eecs.berkeley.edu/Research/ 412 Visiting... http://www.eecs.berkeley.edu/department/people.shtml 413 Visiting... http://www.eecs.berkeley.edu/department/about.shtml 414 Visiting... http://www.eecs.berkeley.edu/Colloquium/ 415 Visiting... http://www.eecs.berkeley.edu/Colloquium/Archives/05-06/Fall2005/ 416 Visiting... http://www.eecs.berkeley.edu/XRG/ 417 Visiting... http://www.eecs.berkeley.edu/Research/ 418 Visiting... http://www.eecs.berkeley.edu/department/OutreachPrograms.shtml 419 Visiting... http://www.eecs.berkeley.edu/Research/ 420 Visiting... http://www.eecs.berkeley.edu/department/people.shtml 421 Visiting... http://www.eecs.berkeley.edu/XRG/IAB/ 422 Visiting... http://www.eecs.berkeley.edu/Prospective/ugrad.shtml 423 Visiting... http://www.eecs.berkeley.edu/Research/ 424 Visiting... http://www.eecs.berkeley.edu/department/officers.shtml 425 Visiting... http://www.eecs.berkeley.edu/Research/ 426 Visiting... http://www.eecs.berkeley.edu/Prospective/ugrad.shtml 427 Visiting... http://www.eecs.berkeley.edu/Research/ 428 Visiting... http://www.eecs.berkeley.edu/Pubs/ 429 Visiting... http://www.eecs.berkeley.edu/cal/ 430 Visiting... http://www.eecs.berkeley.edu/ 431 Visiting... http://www.eecs.berkeley.edu/Research/Projects/ 432 Visiting... http://www.eecs.berkeley.edu/Resguide/admin.shtml 433 Visiting... http://www.eecs.berkeley.edu/Resguide/admin.shtml#top 434 Visiting... http://www.eecs.berkeley.edu/Staff/Procedures/account.shtml 435 Visiting... https://calnet.calnet.berkeley.edu/myi/questions/set 436 Visiting... http://www.eecs.berkeley.edu/Research/ 437 Visiting... http://www.eecs.berkeley.edu 438 Visiting... http://www.eecs.berkeley.edu/deptinfo 439 Visiting... http://www.eecs.berkeley.edu/Research/ 440 Visiting... http://www.eecs.berkeley.edu/Research/ 441 Visiting... http://www.eecs.berkeley.edu/Research/Projects/ 442 Visiting... http://www.eecs.berkeley.edu/department/people.shtml 443 Visiting... http://www.eecs.berkeley.edu/Faculty/Lists/faculty.shtml 444 Visiting... http://www.eecs.berkeley.edu/Research/ 445 Visiting... http://events.berkeley.edu/index.php/calendar/sn/eecs.html?view=quick&timeframe=month&filter=Secondary%20Event%20Type&filtersel=32 446 Visiting... http://www.eecs.berkeley.edu/Research/ 447 Visiting... http://www.eecs.berkeley.edu/deptinfo/login.html?returnto=http://www.eecs.berkeley.edu:80/Research/ 448 Visiting... http://www.eecs.berkeley.edu/Research/ 449 Visiting... http://www.eecs.berkeley.edu/education/ 450 Visiting... http://www.eecs.berkeley.edu/department/people.shtml 451 Visiting... http://www.eecs.berkeley.edu/Research/ 452 Visiting... http://www.berkeley.edu 453 Visiting... http://www.berkeley.edu/research/museumscollections 454 Visiting... http://essig.berkeley.edu/ 455 Visiting... http://bnhm.berkeley.edu/ 456 Visiting... http://www.eecs.berkeley.edu/Research/ 457 Visiting... http://www.eecs.berkeley.edu/Students/ 458 Visiting... http://www.eecs.berkeley.edu/deptinfo/login.html?returnto=http://www.eecs.berkeley.edu:80/Students/ 459 Visiting... http://www.eecs.berkeley.edu/Research/ 460 Visiting... http://www.eecs.berkeley.edu/Research/Projects/ 461 Visiting... http://www.eecs.berkeley.edu/Research/ 462 Visiting... http://www.eecs.berkeley.edu/Research/ 463 Visiting... http://www.eecs.berkeley.edu/department/OutreachPrograms.shtml 464 Visiting... http://www.eecs.berkeley.edu/Research/ 465 Visiting... http://www.eecs.berkeley.edu/XRG/menu.shtml 466 Visiting... http://www.eecs.berkeley.edu/Research/ 467 Visiting... http://www.eecs.berkeley.edu/department/people.shtml 468 Visiting... http://www.eecs.berkeley.edu/Research/Areas/ 469 Visiting... http://www.eecs.berkeley.edu/department/officers.shtml 470 Visiting... http://www.eecs.berkeley.edu/Research/ 471 Visiting... http://www.berkeley.edu 472 Visiting... http://news.berkeley.edu/ 473 Visiting... http://www.eecs.berkeley.edu/Research/ 474 Visiting... http://www.eecs.berkeley.edu/Diversity/ 475 Visiting... http://www.eecs.berkeley.edu/Research/ 476 Visiting... http://www.eecs.berkeley.edu/cal/ 477 Visiting... http://www.eecs.berkeley.edu/department/internal.shtml 478 Visiting... http://www.eecs.berkeley.edu/department/about.shtml 479 Visiting... http://www.eecs.berkeley.edu/Research/ 480 Visiting... http://www.eecs.berkeley.edu/Faculty/Awards/#turing 481 Visiting... http://www.eecs.berkeley.edu/education/ 482 Visiting... http://www.eecs.berkeley.edu/department/history.shtml 483 Visiting... http://www.eecs.berkeley.edu/education/courses.shtml 484 Visiting... http://www.eecs.berkeley.edu/Scheduling/EE/schedule-draft.html 485 Visiting... http://www.eecs.berkeley.edu/Faculty/Homepages/ctnguyen.html 486 Visiting... http://www.eecs.berkeley.edu/ 487 Visiting... http://www.eecs.berkeley.edu/Faculty/Homepages/salahuddin.html 488 Visiting... http://www.eecs.berkeley.edu/Research/ 489 Visiting... http://www.eecs.berkeley.edu/help 490 Visiting... http://www.eecs.berkeley.edu/Research/ 491 Visiting... http://www.eecs.berkeley.edu/alumni/lists.shtml 492 Visiting... http://www.eecs.berkeley.edu/Includes/privacy.shtml 493 Visiting... http://www.eecs.berkeley.edu/alumni/lists.shtml 494 Visiting... http://www.eecs.berkeley.edu/help 495 Visiting... http://www.eecs.berkeley.edu/Research/ 496 Visiting... http://www.eecs.berkeley.edu/Pubs/ 497 Visiting... http://www.eecs.berkeley.edu/alumni/lists.shtml 498 Visiting... http://www.eecs.berkeley.edu/education/ 499 Visiting... http://www.eecs.berkeley.edu/Students/directories.shtml
prof_ranks = [pair[0] for pair in sorted(profdict.items(), key = lambda item: item[1], reverse=True)]
top_score = profdict[prof_ranks[0]]
for i in range(len(prof_ranks)):
print "%d %f: %s" % (i+1,profdict[prof_ranks[i]]/top_score, prof_ranks[i])
1 1.000000: Chang-Hasnain 2 0.916667: Lee 3 0.583333: Russell 4 0.458333: Joseph 5 0.458333: Franklin 6 0.416667: Patterson 7 0.416667: Paxson 8 0.416667: Sen 9 0.375000: Wu 10 0.375000: Demmel 11 0.333333: Yablonovitch 12 0.291667: Harvey 13 0.291667: Bajcsy 14 0.291667: Brewer 15 0.291667: Bokor 16 0.291667: Hartmann 17 0.291667: Goldberg 18 0.291667: Pisano 19 0.250000: Katz 20 0.250000: Fearing 21 0.208333: Tomlin 22 0.125000: Yelick 23 0.125000: Arias 24 0.125000: Culler 25 0.083333: Liu 26 0.083333: Song 27 0.083333: Salahuddin 28 0.041667: Zakhor 29 0.041667: Sangiovanni-Vincentelli 30 0.041667: Anantharam 31 0.041667: Nguyen 32 0.041667: Rabaey 33 0.041667: Lustig 34 0.041667: Garcia 35 0.041667: Javey 36 0.041667: Darrell 37 0.041667: Tygar 38 0.000000: Boser 39 0.000000: Walrand 40 0.000000: Niknejad 41 0.000000: Fox 42 0.000000: Shenker 43 0.000000: Hellerstein 44 0.000000: Seshia 45 0.000000: Stojanovic 46 0.000000: Sanders 47 0.000000: Ramchandran 48 0.000000: Klein 49 0.000000: Roychowdhury 50 0.000000: Agrawala 51 0.000000: Canny 52 0.000000: Asanović 53 0.000000: Arcak 54 0.000000: O'Brien 55 0.000000: Nikolic 56 0.000000: Keutzer 57 0.000000: Kubiatowicz 58 0.000000: Sastry 59 0.000000: Sahai 60 0.000000: Alon 61 0.000000: Maharbiz 62 0.000000: Malik 63 0.000000: Wawrzynek 64 0.000000: Parekh 65 0.000000: Bachrach 66 0.000000: Abbeel 67 0.000000: Bodik 68 0.000000: Stoica 69 0.000000: Spanos
top_score
24
As you can see, the top score only got 24 mentions, so not only is this method indirect in trying to achieve its goal, but it is quite difficult to efficiently sample the true distribution we want.
# Your code here