Hem Personliga finanser 10 Algoritmiska problem ännu för att lösa - dummies

10 Algoritmiska problem ännu för att lösa - dummies

Innehållsförteckning:

Video: The era of blind faith in big data must end | Cathy O'Neil 2024

Video: The era of blind faith in big data must end | Cathy O'Neil 2024
Anonim

Algoritmer har faktiskt funnits i århundraden, så du tror att forskare skulle ha upptäckt och löst varje algoritm nu. Tyvärr är motsatsen sant. Att lösa en viss algoritm presenterar ofta några fler frågor som algoritmen inte löser och det verkade inte tydligt förrän någon kom upp med lösningen.

Algoritmer är en rad steg som används för att lösa ett problem, och du bör inte förväxla dem med andra enheter, till exempel ekvationer. En algoritm är aldrig en lösning på jakt efter ett problem. Ingen skulle skapa en serie åtgärder för att lösa ett problem som ännu inte finns (eller kan aldrig existera).

Denna lista handlar om algoritmiska problem som skulle tjäna ett syfte om någon skulle hitta en lösning för dem.

Hantera textsökningar

Många textsökningar inbegriper användningen av reguljära uttryck - ett slags stenografi som berättar för datorn vad man ska hitta. Den grammatik som används för det reguljära uttrycket beror på språket eller applikationen, men du hittar vanliga uttryck som används på ett antal platser, inklusive ordbehandlare, e-postprogram, sökdialoger och på alla andra ställen där du behöver tillhandahålla exakt sökning Villkor för en rad textobjekt.

Ett av de nuvarande problemen med regelbundna uttryck är att det verkar som om varje applikationsmiljö har en liknande uppsättning regler, men med tillräckligt många skillnader för att skapa en sökterm hård. Det generaliserade stjärnhöjdsproblemet syftar till att upptäcka huruvida en generaliserad regelbunden expressionssyntax existerar. Om så är fallet skulle den resulterande algoritmen göra det möjligt för någon att lära sig en metod för att skapa regelbundna uttryck för att utföra sökningar.

Differentierande ord

När man arbetar med tecken ser en dator siffror, inte bokstäver. Siffrorna är faktiskt bara en serie av 0s och 1s till datorn och har egentligen ingen mening. Kombinationen av tecken i strängar gör bara serien av 0s och 1s längre. Följaktligen kan man jämföra två strängar, något som en människa kan göra i ett ögonkast, ta tid inom en dator och förvirring är sannolikt mellan konjugat. Om du till exempel inte är noga med att konstruera algoritmen kan en dator förvirra enlist och lyssna. Viktigare, datorn skulle kräva tid för att skilja skillnaden mellan de två. Skiljeproblemet syftar till att hitta den minsta (och snabbaste) möjliga algoritmen (en deterministisk ändlig automat, DFN, i detta fall) för att utföra ordseparation.Målet är att acceptera ett ord och avvisa ett annat, med två ord av en viss längd.

Att avgöra om en ansökan kommer att sluta

Ett av de problem som Alan Turing föreslog 1936 är frågan om en algoritm, med en beskrivning av ett program och en ingång, kunde avgöra om programmet skulle sluta stoppproblem). När man arbetar med en enkel applikation är det lätt att i många fall avgöra huruvida programmet stannar eller fortsätter att springa i en ändlös loop. Men eftersom programkomplexiteten ökar blir det svårare att bestämma resultatet av att köra programmet med vilken ingång som helst. En Turing-maskin kan inte göra denna bestämning; Resultatet är buggy-kod med oändliga loopar. Inget antal test som använder nuvarande teknik kan lösa detta problem.

En hyperdator är en datormodell som går utöver Turing-maskinen för att lösa problem som stoppproblemet. Sådana maskiner är emellertid inte möjliga med användning av nuvarande teknik. Om de var möjliga skulle du kunna fråga dem alla slags imponderables att datorer inte kan svara för närvarande. Den här artikeln ger dig en bra bild av vad som skulle hända om någon kunde lösa detta problem.

Skapa och använda envägsfunktioner

En enkelriktad funktion är en funktion som är lätt att använda för att få ett svar i en riktning, men nästan omöjligt att använda med det omvända svaret. Med andra ord använder du en envägsfunktion för att skapa något som en hash som skulle framstå som en del av en lösning för kryptering, personlig identifiering, autentisering eller andra datasäkerhetsbehov.

Förekomsten av en enkelriktad funktion är mindre mysterium och mer en fråga om bevis. Många telekommunikations-, e-handels- och e-banksystem förlitar sig för närvarande på funktioner som påstås enstaka, men ingen vet verkligen om de verkligen är en väg. Förekomsten av en envägsfunktion är för närvarande en hypotes, inte en teori. Om någon kunde bevisa att en enkelriktad funktion finns, skulle datasäkerhetsfrågor vara lättare att lösa ur ett programmeringsperspektiv.

Multiplicera riktigt stora siffror

Egentligen finns stora antal på många ställen. Tänk på att utföra beräkningarna med avstånd till Mars, eller kanske Pluto. Metoder finns för närvarande för att utföra multiplikation på riktigt stora antal, men de tenderar att vara långsamma eftersom de kräver flera operationer att slutföra. Problemet uppstår när siffrorna är för stora för att passa in i processorns register. Vid den tidpunkten måste multiplikationen ske i mer än ett steg, vilket fördröjer sakerna avsevärt. De nuvarande lösningarna innefattar:

  • Gauss komplexa multiplicationsalgoritm
  • Karatsubas multiplikation
  • Toom-Cook
  • Fourier transformationsmetoder

Även om många av de metoder som för närvarande finns tillgängliga ger goda resultat, tar de alla tid och när du har många beräkningar att utföra kan tidsproblemet bli kritiskt. Följaktligen är ett stort antal multiplikationer ett av de problem som kräver en bättre lösning än de som finns tillgängliga idag.

Dela en resurs lika

Det kan inte verka svårt att dela resurser lika, men människor, som är avundsjuk, kan se att resursen är ojämnt uppdelad om du inte hittar ett sätt att försäkra alla om att divisionen verkligen är rättvis. Detta är den avundasfria kakskärningsproblemet. Naturligtvis, när du skär en tårta, oavsett hur rättvist du försöker göra det, finns det alltid uppfattningen att divisionen är orättvis. Att skapa en rättvis fördelning av resurser är viktig i det dagliga livet för att minimera strid mellan intressenter i någon organisation och göra alla mer effektiva.

Två lösningar finns redan för det avundsjuka kakskärningsproblemet med ett visst antal människor, men ingen allmän lösning finns. När det är två personer som är involverade, skär den första kakan och den andra väljer den första delen. På detta sätt är båda parter försäkrade om en jämn uppdelning. Problemet blir svårare med tre personer, men du kan prova Selfridge-Conway-lösningen för problemet. Men när du kommer till fyra personer finns ingen lösning.

Reducera beräkningstid för beräknad distans

Redigeringsavstånd mellan två strängar är antalet operationer som krävs för att omvandla en sträng till den andra strängen. Avståndsberäkningen går runt Levenshtein-distansoperationerna, som är borttagning, infogning eller substitution av ett tecken i strängen. Denna speciella teknik ser användning i naturliga språkgränssnitt, DNA-sekvensering och alla andra ställen där du kan ha två liknande strängar som kräver någon form av jämförelse eller modifiering.

Ett antal lösningar för detta problem finns för närvarande, alla är ganska långsamma. Faktum är att de flesta tar exponentiell tid, så den tid som krävs för att utföra en omvandling lägger snabbt upp till den punkt där människor kan se pauser i behandlingen av inmatningen. Pausen är inte riktigt så dålig när du använder en ordbehandlare som utför automatiska ordkontroller och ändrar ett felstavat ord i rätt. Men när du använder röstgränssnitt kan pausen bli ganska märkbar och få den mänskliga operatören att göra misstag.

Problemlösning snabbt

När maskininlärningen startar och vi räknas mer och mer på datorer för att lösa problem, blir problemet med hur snabbt en dator kan lösa ett problem kritiskt. P-versus NP-problemet frågar helt enkelt om en dator snabbt kan lösa ett problem när det snabbt kan verifiera lösningen på problemet. Med andra ord, om datorn med rimlighet kan fastställa att ett mänskligt svar på ett problem är korrekt i polynomaltid eller mindre, kan det med andra ord lösa problemet själv i polynomaltid eller mindre?

Denna fråga diskuterades ursprungligen på 1950-talet av John Nash i brev till National Security Agency (NSA) och igen i brev mellan Kurt Gödel och John von Neumann. Förutom maskininlärning (och AI i allmänhet) är detta problem ett problem för många andra områden, inklusive matematik, kryptografi, algoritmforskning, spelteori, multimediabehandling, filosofi och ekonomi.

Spelar paritetsspelet

Först kan det inte vara så användbart att lösa ett spel i det verkliga livet. Ja, spel är roliga och intressanta, men de ger inte riktigt en bakgrund för att göra något användbart - åtminstone det är den allmänna teorin. Spelteorin spelar dock in spel i ett stort antal scenarier i verkligheten, av vilka många innefattar komplexa processer som någon lättare kan förstå som spel än som faktiska processer. I det här fallet hjälper spelet människor att bland annat förstå automatiserad verifiering och styrningssyntes. Du kan läsa mer om paritetsspelet. Faktum är att du kan spela det.

Förstå rumsliga problem

Tänk på att det här problemet i ett sammanhang, tänk på rörliga lådor runt i ett lager eller några andra situationer där du måste överväga det utrymme där saker rör sig. Självklart, om du har många lådor i ett stort lager och alla behöver en gaffeltruck för att hämta, vill du inte försöka hitta hur man lagrar dem optimalt genom att omorganisera dem fysiskt. Det är här du behöver arbeta igenom problemet genom att visualisera en lösning.

Emellertid är frågan om alla rumsliga problem har en lösning. Tänk i det här fallet på en av de barnens pussel som du sätter en bild tillsammans genom att skjuta de små kakel runt. Det verkar som om en lösning borde finnas i alla fall, men i vissa situationer kan en dålig utgångspunkt resultera i en situation som inte har någon lösning.

Matematiker som Sam Loyd använder ofta pussel för att visa komplicerade matematiska problem, av vilka några inte har någon lösning idag. Att besöka dessa platser är roligt för att du inte bara får lite fri underhållning men också, mat för tanke. De problem som dessa pussel höjer har praktiska tillämpningar, men de presenteras på ett roligt sätt.

10 Algoritmiska problem ännu för att lösa - dummies

Redaktörens val

Fastighetsprofessionens grunder för fastighetslicensexamen - dummies

Fastighetsprofessionens grunder för fastighetslicensexamen - dummies

Fastighetsexamen kommer att förvänta dig att du har ett grundläggande grepp på fastighetsbranschen. Du tror att det bara är uppenbart att veta vad de viktigaste spelarna gör i en fastighetsaffär, men på grund av den terminologi de delar, blir skillnaderna mellan spelarna lite muddlade. Här är snabba beskrivningar ...

Kostnadsmetoden för fastighetslicensexamen - dummies

Kostnadsmetoden för fastighetslicensexamen - dummies

En metod för att uppskatta Värdet på fastigheter kallas kostnaden. Du måste känna till formeln för fastighetslicensexamen. Kostnadsmetoden baseras på tanken att komponenterna i en fastighet eller marken och byggnaderna kan läggas till för att komma fram till ...

Studie för fastighetslicensexamen - dummies

Studie för fastighetslicensexamen - dummies

När var sista gången du tog en multipelvalsexamen ? Eller, för den delen, någon examen? Det är troligt att det var länge sedan. Kanske överväger du huruvida du ska bli en fastighetsmäklare, men du är lite avskräckt av tanken på att du måste göra ett test. Vad du kan ...

Redaktörens val

Följer ett basketspel på tv - dummies

Följer ett basketspel på tv - dummies

Du kommer bli mycket mer ute av att titta på ett basketspel på TV - eller till och med leva - om du gör mer än att se bollen gå in i rammen. Kolla in dessa insider tips för att fånga den verkliga åtgärden och öka din njutning av sporten. Förutse nästa pass Försök att tänka som ...

Top 5 Fantasy Basketball League Sites - Dummies

Top 5 Fantasy Basketball League Sites - Dummies

Att hitta och gå med på en fantasy basketplats kan ibland vara skrämmande uppgift eftersom så många alternativ är tillgängliga och de flesta webbplatser ser lika ut. Bara för att webbplatser ser ut som det betyder inte nödvändigtvis att de mäter i värde. Vissa webbplatser erbjuder gratis ligor, andra betalade - och vissa webbplatser tillhandahåller bara standard liga ...

Tryck på motståndarna i Basket - Dummies

Tryck på motståndarna i Basket - Dummies

Pressen är kort för tryck. Ofta kallad en fullrättspress, det här är ett anfallande försvar som används på backen, där målet är att tvinga en omsättning. Vanligtvis används efter en gjord korg, svänger pressgruppen över motståndarna i backcourt; Om motståndarna lyckas få bollen förbi halvvägs (kallad brytning ...

Redaktörens val

Hur R beräknar oändliga, odefinierade och saknade värden - dummies

Hur R beräknar oändliga, odefinierade och saknade värden - dummies

Lyckligtvis kan R hantera dataanomalier som förvirrar några andra statistiska plattformar. I vissa fall har du inte reella värden att beräkna med. I de flesta verkliga dataset saknas faktiskt åtminstone några värden. Dessutom har vissa beräkningar oändlighet som ett resultat (som att dividera med noll) eller kan inte ...

Hur man lägger till linjer i en plot i R-dummies

Hur man lägger till linjer i en plot i R-dummies

I R, lägger du till rader i en plott på ett mycket liknande sätt att lägga till poäng, förutom att du använder funktionen linjer () för att uppnå detta. Men använd först lite R magi för att skapa en trendlinje genom data, kallad en regressionsmodell. Du använder lm () -funktionen för att uppskatta en linjär ...

Hur man lägger till en andra dimension i R-dummies

Hur man lägger till en andra dimension i R-dummies

Förutom vektorer kan R representera matriser som ett objekt du arbetar och beräknar med. Faktum är att R verkligen lyser när det gäller matrisberäkningar och -operationer. Vektorer är nära relaterade till en större klass av objekt, arrays. Arrayer har två mycket viktiga egenskaper: De innehåller bara en enda typ av värde. De har ...