Algorithm Design - Jon Kleinberg (Addison-Wesley, 2006)