stel je voor dat je een dief bent die een museumtentoonstelling berooft van verleidelijke Sieraden, geodes en zeldzame edelstenen. Je bent hier nieuw in, dus je hebt maar één rugzak meegenomen. Uw doel moet zijn om weg te komen met de meest waardevolle objecten zonder overbelasting van uw tas totdat het breekt of wordt te zwaar om te dragen. Hoe kies je uit de objecten om je buit te maximaliseren? Je kunt alle artefacten en hun gewichten opsommen om het antwoord met de hand uit te werken., Maar hoe meer objecten er zijn, hoe zwaarder deze berekening wordt voor een persoon—of een computer.
dit fictieve dilemma, het” knapzak probleem”, behoort tot een klasse van wiskundige problemen die bekend staan om het verleggen van de grenzen van computing. En het ranselprobleem is meer dan een gedachte-experiment. “Veel problemen waarmee we in het leven worden geconfronteerd, of het nu zakelijk, financieel, inclusief logistiek, containerschepen Laden, vliegtuigen Laden — dit zijn allemaal knapzakproblemen,” zegt Carsten Murawski, professor aan de Universiteit van Melbourne in Australië., “Vanuit een praktisch perspectief is het rugzakprobleem alomtegenwoordig in het dagelijks leven.”
onderzoekers maakten ooit gebruik van de complexiteit van het probleem om computerbeveiligingssystemen te creëren, maar deze kunnen nu worden gekraakt omdat het probleem zo goed is bestudeerd. Nu technologie die de sloten van onze digitale communicatie kan verbrijzelen aan de horizon opdoemt, kan het rugzakprobleem nieuwe manieren inspireren om zich voor te bereiden op die revolutie.
alles of niets
het knapzak-probleem behoort tot een klasse van “NP” – problemen, wat staat voor “niet-deterministische polynoomtijd”.,”De naam verwijst naar hoe deze problemen een computer dwingen om door vele stappen te gaan om tot een oplossing te komen, en het aantal neemt dramatisch toe op basis van de grootte van de ingangen—bijvoorbeeld, de inventaris van items om uit te kiezen bij het vullen van een bepaalde ransel. Per definitie hebben NP-problemen ook oplossingen die gemakkelijk te controleren zijn (het zou triviaal zijn om te controleren of een bepaalde lijst van items in feite in een rugzak past).,”The problem the theoretici started to look at was how efficient a particular task can be carried out on a computer”, schrijft Keith Devlin in het boek The Millennium Problems. Bijvoorbeeld: gegeven een lijst van 1 miljoen museum artefacten met hun gewichten en monetaire waarden, en een rugzak beperkt tot 25 pond, een computer zou moeten lopen door elke mogelijke combinatie om de ene met de meest lucratieve trek te genereren. Gegeven een onbepaalde tijd, kan een computer brute kracht gebruiken om grote gevallen als deze te optimaliseren, maar niet op tijdschalen die praktisch zou zijn., “We denken dat je de hele aarde met processors kunt bedekken en ze kunt laten draaien tot de hitte van het universum sterft en nog steeds niet in staat bent om relatief kleine gevallen van geschikte versies van deze problemen op te lossen,” zegt Noah Stephens-Davidowitz, een Microsoft Research Fellow aan het Simons Institute in Berkeley, Californië.
sommige NP-problemen zoals het knapzak-voorbeeld hebben een speciale eigenschap: begin jaren zeventig toonden Stephen Cook en Richard Karp aan dat verschillende NP-problemen konden worden omgezet in één enkel probleem van de formele logica., Daarom, als men efficiënt kon worden opgelost en geverifieerd met een algoritme, konden ze allemaal. Deze eigenschap staat bekend als ” NP volledigheid.”
een van de meest hardnekkige vragen in de informatica en wiskunde is of deze “NP” – problemen, inclusief het ranselprobleem, echt verschillen van “P” – problemen, die kunnen worden opgelost in de zogenaamde polynoomtijd. Als P = NP, dan is het mogelijk om elk probleem op te lossen waarvan de oplossingen gemakkelijk te verifiëren zijn, zegt Stephens-Davidowitz. Dus, als deze ongelijkheid blijft bestaan, zal het algemene ransel probleem altijd moeilijk zijn.,