Why are google maps displayed incorrectly?

What are some of the different algorithmically challenging problems with well defined solutions used in the companies like Facebook and Google?

  • We learn a lot of Algorithms from textbooks and other sources. But a vast majority of problems encountered in real world that have well defined solutions are easily recognized. For example: Finding a shortest path from a source to destination in Google Maps would use a shortest path algorithm. It is evident that any programmer would easily figure out that it is a shortest path problem. Also he wont have trouble figuring out how the Graph should be constructed. And even if he did not know shortest path algorithm (this is not a very good example) he could refer a research paper and writing the code would be trivial. Lets take an example of non-real world problem. Suppose we have a chess board with some of the cells missing. What is the maximum number of rooks can we place in the chess board so that no rook is attacking another? This is a fairly difficult problem with well defined solution and can be solved by maximum bipartite matching. However even if one knew that this is a bipartite matching problem one would still need to figure out what should be the vertices and how to construct the graph. Many problems involving Dynamic Programming (DP) problems are difficult. Sometimes we use Dynamic Programming in trees and graphs. If the problem is not a very popular problem like LCS, RMQ, LCA, then we need to spend time thinking what should be the DP state. From my experience most of the problems in the industries which have a well defined solution are easy to notice. Moreover they come up as popular problems. Ofcourse there are mostly problems that don't have a well defined solutions, like what should be displayed in the News Feed of Facebook.  But that is not my concern. I want to know what are such problems that have well defined solutions and they are not easy to figure what algorithm is to be used. Also if algorithm were to be known it is not so easy to code it because the algorithm is not directly applicable or are not popular.

  • Answer:

    Some problems that may appear in the industry. Airplane ticket pricing: Given a large set of historical pricing rules. Find out a set of legs for a trip that optimize for cost and travel time. Maps: Points of interest. Given a point on a map, find the closest k points of interest to this current point. Geo location. Given a point on a map, find the county the point is in. Pathfinding. The algorithms you learn in school won't work well on a graph that spans the entire US or the entire world, but there are great algorithms that tackle the problem. Web Search: Build an approximate autocomplete feature for a large dictionary (Google Suggest, Facebook/Quora autocomplete). Spell correction. Segmentation. Given a string of letters without spaces find a way to segment them into words. (it's a frequent problem in german, chinese, japanese or korean). Computing Pagerank. Computing the eigen vectors for a huge sparse matrix needs some interesting algebraic algorithms. Machine Translation. Spam detection. Ads: Ad Serving. Given many contracts that list different types of targeting and a user view. Evaluate fast which contracts are eligible to show an ad. Inventory Management. Selling reservation based targeted advertisements becomes an allocation problem that can be translated in a network flow problem. Infrastructure: Distributed hash tables for caching. Distributed sort for hadoop/mapreduce.

Cosmin Negruseri at Quora Visit the source

Was this solution helpful to you?

Other answers

One problem I think of is page ranking. Given some pages, a set of parameters such that using these a score can be assigned to every page, it is simple to rank pages, by just finding an aggregate score using individual scores.   But in real world, we have many problems. Example, we have a really large number of pages, and we don't have any such set of parameters. What we have is that there are connections among the pages, and that score of each page affects all the pages that are connected to it. Seeing this scenario, any engineer will just simply think this is a graph problem. But, this in fact is a problem of linear optimization. Rank of each page is a linear function of ranks or all the pages that it has incoming edges from.   This actually turns out to be a problem of the form "solve AX = 0".

Pathan Salman

Just Added Q & A:

Find solution

For every problem there is a solution! Proved by Solucija.

  • Got an issue and looking for advice?

  • Ask Solucija to search every corner of the Web for help.

  • Get workable solutions and helpful tips in a moment.

Just ask Solucija about an issue you face and immediately get a list of ready solutions, answers and tips from other Internet users. We always provide the most suitable and complete answer to your question at the top, along with a few good alternatives below.