web analytics

Stable Marriage Problem Definition

Hoi allemaal, ik heb vandaag een vraagstuk voor je, die je wellicht al in mijn eerdere tutorial hebt gezien, maar laat me je hem nog een keer vertellen. Wat ik ga doen is dit: ik geef je het vraagstuk nog een keer, dan gaan we het over het antwoord hebben, en we gaan het ook hebben over wat we van dit vraagstuk kunnen leren, inclusief hoe het toepasbaar is op een wiskundig probleem in de echte wereld. Het vraagstuk was dit: Jack kijkt naar Anne, maar Anne kijkt naar George.

Jack is getrouwd, maar george niet. Kijkt er een getrouwd persoon naar een ongetrouwd persoon? Er zijn drie mogelijkheden: A) Ja, B) Nee, of C) Kan niet bepaald worden. De stelling was dat meer dan 80% van de mensen dit fout hebben. Dus als je het nog niet geprobeerd hebt, pauzeer de tutorial en doe een poging.

Anders ga ik er vanuit dat je al een antwoord in gedachten hebt. dus nu kan ik je zeggen dat het juiste antwoord A is. Ja, er kijkt een getrouwd persoon naar een ongetrouwd persoon. Ik weet dat sommigen van jullie niet blij zijn met dat antwoord. Waarom is het A en niet C, kan niet bepaald worden? Dus laten we naar dit antwoord kijken, en naar wat we van dit vraagstuk kunnen leren.

Ik vond dit vraagstuk in het boek the science of genius, van scientific american, en dit specifieke vraagstuk werd omschreven in een hoofdstuk van Keith Stanovich. Laten we eens naar de opzet van het vraagstuk kijken. We hebben drie personen, Jack, Anne en George. We weten dat Jack naar Anne keek, wat ik ga weergeven door een pijl te tekenen, zo. Dus dat is Jack die naar Anne keek. En Anne keek naar Georg. Daarvoor teken ik nog een pijl. Jack was getrouwd, en George was ongetrouwd.

Maar er was niets bekend over de burgerlijke staat van anne. De manier waarop die probleem omschreven wordt, is belachelijk. Er is veel gelegenheid om je eigen spannende voorgeschiedenis te verzinnen tussen Jack en Anne en George, en getrouwde mensen die gluren naar ongetrouwde mensen. Maar het vraagstuk zelf werd gebruikt door een docent computerwetenschappen aan de universiteit van Toronto. En toen hij het testte, ontdekte hij dat ruim 80% van de mensen als antwoord gaven ‘Kan niet worden bepaald.’.

Dat was c in onze drie opties. Ik kan drie redenen bedenken waarom mensen dat antwoord zouden geven. Dus laten we daar eens naar kijken. n reden kan zijn dat het vraagstuk niets zegt over waar deze mensen staan. En ik snap dat dat een probleem kan zijn voor mensen die niet zo bedreven zijn in dit soort puzzels. Omdat ze het proberen toe te passen in de fysieke wereld. Dus er wordt gedacht ‘Staan ze in een rij? Of in een driehoek?.

Kunnen ze naar twee mensen tegelijk kijken?’ maar mensen die meer ervaring hebben met dit soort puzzels, zullen weten dat als er iets staat als Anne kijkt naar George, dat het simpelweg een verband is tussen twee objecten. Een ander probleem kan zijn dat het vraagstuk niets zegt over waar George naar kijkt. Ook hier geldt, mensen die meer ervaring hebben met puzzels zullen denken ‘Als die informatie niet gegeven wordt, heb ik het waarschijnlijk niet nodig om tot het antwoord te komen.

Een ander punt is, het vraagstuk zegt kijkt er een getrouwd persoon naar een ongetrouwd persoon? En in dit geval is George ongetrouwd. Dus het is niet relevant waar hij naar kijkt. Wat mij betreft kan hij net zo goed de ruimte in staren. Het derde probleem is dat het vraagstuk niets zegt over Anne’s burgerlijke staat. Is ze getrouwd of niet? Dit is de kern van het probleem. Omdat het op het eerste gezicht lijkt alsof het vraagstuk je niet genoeg informatie geeft.

41 Problem Definition Prims Minimum Spanning Tree Algorithm DSA 2 By Tim Roughgarden

So in this sequence of tutorials, we’re going to apply the greedy algorithm design paradigm to a fundamental graph problem, the problem of computing minimum spanning trees. The MST problem is a really fun playground for greedy algorithm design, because it’s the singular problem in which pretty much any greedy algorithm you come up with seems to work. So we’ll talk about a couple of the famous ones, show why they’re correct,.

And show how they can be implemented using suitable data structures to be blazingly fast. So, I’ll give you the formal problem definition on the next slide but first let me just say informally what it is we’re trying to accomplish. Essentially, what we want do is connect a bunch of points together as cheaply as possible. And, as usual with an abstract problem the objects can mean something very.

Literal. so maybe the points we’re trying to connect are servers in some computer network, or it could represent something more abstract. Like maybe we have a model of documents like Web Pages where we represent them as points in space. And we want to somehow connect those together. Now the main reason I’m going to spend time on the minimum expenditure problem.

Is pedagogical. it’s just a great problem for sharpening your skills with greedy algoritum design and proof of correctness. It’ll also give us another opportunity to see the beautiful interplay between data structures and fast limitation of graph algorithms. That said that minimum expenditure problem does have applications. One very cool one is in clustering, and that I’ll talk about in detail in a later.

Tutorial, it also comes up in networking. so if you do a web search on spanning tree protocol you’ll also find some information about that. So as I said at the beginning the minimum spanning tree problem is remarkable in that it doesn’t just admit one greedy algorithm that’s correct, but in fact it admits multiple greedy algorithms that are correct. we’re going to talk about two of them, the two most well known ones.

But there are even some others believe it or not. So the first one we’re going to discuss beginning in the next tutorial is Prim’s MST algorithm. This dates back over 50 years to 1957. in fact as you’ll see Prim’s algorithm shows a remarkable number of similarities with Dijkstra’s shortest path algorithm. So you might not be surprised to know that Dijkstra also independently had discovered this algorithm a couple of.

Years later. but in fact it was only noticed much later that this exact same algorithm had been first discovered over 25 years earlier by a mathematician named Jarnick. For that reason you’ll sometimes hear this called Jarnick’s algorithm or the PrimJarnick algorithm. for gravity and to be consistent with some of the main text books in the area I’m just going to call this Prim’s algorithm throughout the lectures.

The other algorithm we’re going to cover which is also rightfully famous is Kruskal’s MST algorithm. As far as I know this was indeed first discovered by Kruskal roughly the same time as Prim was doing his algorithm in the mid 50s. And in what sense do I say these algorithms are blazingly fast? Well, they run in almost linear time, linear in the number of edges of the graph.

Leave a Reply