Hjem Personlig finansiering 10 Algoritmiske problemer endnu for at løse

10 Algoritmiske problemer endnu for at løse

Indholdsfortegnelse:

Video: How Machines Learn 2024

Video: How Machines Learn 2024
Anonim

Algoritmer har faktisk eksisteret i århundreder, så man tror, ​​at forskere ville have opdaget og løst hver algoritme nu. Desværre er det modsatte sandt. Løsning af en bestemt algoritme præsenterer ofte et par flere spørgsmål, som algoritmen ikke løser, og det syntes ikke tilsyneladende, før nogen kom op med løsningen.

Algoritmer er en række trin, der bruges til at løse et problem, og du bør ikke forveksle dem med andre enheder, som ligninger. En algoritme er aldrig en løsning på jagt efter et problem. Ingen ville skabe en række trin for at løse et problem, der endnu ikke eksisterer (eller måske aldrig eksisterer).

Denne liste handler om algoritmiske problemer, der ville tjene et formål, hvis nogen skulle finde en løsning for dem.

Håndtering af tekstsøgninger

Mange tekstsøgninger indebærer brugen af ​​regulære udtryk - en slags stenografi, der fortæller computeren, hvad man skal finde. Den grammatik, der bruges til det regulære udtryk, afhænger af sproget eller applikationen, men du finder regulære udtryk, der bruges på en række steder, herunder tekstbehandlingsprogrammer, e-mail-applikationer, søgedialoger og i mange andre steder, hvor du skal give præcis søgning Vilkår for en række tekstgenstande.

Et af de nuværende problemer med regulære udtryk er, at det ser ud som om hvert applikationsmiljø har et lignende sæt regler, men med lige nok forskelle til at gøre oprettelsen af ​​et søgeord hårdt. Det generelle problem med stjernens højde søger at opdage, om der findes en generaliseret regelmæssig ekspressionssyntax. Hvis det er tilfældet, vil den resulterende algoritme gøre det muligt for nogen at lære kun en metode til at skabe regulære udtryk for at udføre søgninger.

Differentierende ord

Når der arbejdes med tegn, ser en computer tal, ikke bogstaver. Tallene er faktisk kun en serie af 0s og 1s til computeren og har faktisk ingen mening. Kombination af tegn i strenge gør bare serierne 0s og 1s længere. Derfor kan sammenligning af to strenge, noget som et menneske kan gøre med et øjeblik, tage tid inden for en computer, og der er sandsynligvis forvirring mellem konjugater. Hvis du for eksempel ikke er forsigtig med at konstruere algoritmen, kan en computer forvirre enlist og lytte. Vigtigere, computeren ville kræve tid til at skelne forskellen mellem de to. Separationsordsproblemet søger at finde den mindste (og hurtigste) mulige algoritme (en deterministisk endelig automat, DFN, i dette tilfælde) til at udføre ordseparation.Målet er at acceptere et ord og afvise et andet, givet to ord af en bestemt længde.

Bestemmelse af, om en ansøgning slutter

Et af de problemer, Alan Turing foreslog i 1936, er spørgsmålet om, hvorvidt en algoritme, givet en beskrivelse af et program og et input, kunne afgøre, om programmet til sidst ville stoppe stoppe problem). Når du arbejder med en simpel applikation, er det nemt i mange tilfælde at bestemme, om programmet vil stoppe eller fortsætte med at køre i en endeløs sløjfe. Men som programkompleksiteten stiger, bliver det vanskeligere at bestemme resultatet af at køre programmet med en given indgang. En Turing-maskine kan ikke gøre denne bestemmelse; Resultatet er buggy kode med uendelige sløjfer. Intet antal test, der bruger den nuværende teknologi, kan løse dette problem.

En hypercomputer er en computermodel, der går ud over Turing-maskine for at løse problemer som stopproblemet. Sådanne maskiner er imidlertid ikke mulige ved hjælp af den nuværende teknologi. Hvis de var mulige, ville du være i stand til at spørge dem alle slags imponderables, at computere ikke kan svare på nuværende tidspunkt. Denne artikel giver dig en god ide om, hvad der ville ske, hvis nogen kunne løse dette problem.

Oprettelse og brug af envejsfunktioner

En envejsfunktion er en funktion, som er nem at bruge for at få et svar i en retning, men næsten umuligt at bruge med det omvendte svar. Med andre ord bruger du en envejsfunktion til at skabe noget som en hash, der synes at være en del af en løsning til kryptering, personlig identifikation, godkendelse eller andre datasikkerhedsbehov.

Eksistensen af ​​en envejsfunktion er mindre mysterium og mere et spørgsmål om bevis. Mange telekommunikations-, e-handels- og e-banking-systemer er i øjeblikket afhængige af funktioner, der angiveligt er en måde, men ingen ved virkelig, om de virkelig er en måde. Eksistensen af ​​en envejsfunktion er i øjeblikket en hypotese, ikke en teori. Hvis nogen kunne bevise, at der findes en envejsfunktion, ville datasikkerhedsproblemer være lettere at løse fra et programmeringsperspektiv.

Multiplicere rigtigt store tal

Der findes reelt store tal på mange steder. For eksempel overveje at udføre beregningerne, der involverer afstande til Mars, eller måske Pluto. Metoder eksisterer i øjeblikket for at udføre multiplikation på virkelig store tal, men de har tendens til at være langsomme, fordi de kræver flere operationer at fuldføre. Problemet opstår, når tallene er for store til at passe ind i processorens registre. På det tidspunkt skal multiplikationen forekomme i mere end et trin, hvilket forsinker tingene betydeligt. De nuværende løsninger omfatter:

  • Gauss komplekse multiplikationsalgoritme
  • Karatsuba multiplikation
  • Toom-Cook
  • Fourier transformationsmetoder

Selvom mange af de tilgængelige metoder frembringer acceptable resultater, tager de alle tid og når du har mange beregninger at udføre, kan tidsproblemet blive kritisk. Derfor er stort antal multiplikationer et af de problemer, der kræver en bedre løsning end dem, der er tilgængelige i dag.

Dele en ressource lige

Det er måske ikke svært at dele ressourcer, men mennesker, som er misundelig, kan se ressourcen som ulige fordelt, medmindre du kan finde en måde at forsikre alle om, at divisionen er rigtig fair. Dette er den misundelsesfrie kage-skære problem. Selvfølgelig, når du skærer en kage, uanset hvor ret du forsøger at gøre det, er der altid en opfattelse af, at divisionen er uretfærdig. At skabe en retfærdig fordeling af ressourcer er vigtig i dagligdagen for at minimere strid mellem interessenter i enhver organisation og gøre alle mere effektive.

Der findes allerede to løsninger til det misundelsesfrie kagebesparende problem med et bestemt antal mennesker, men der findes ingen generel løsning. Når der er to involverede personer, skærer den første kagen og den anden vælger det første stykke. På den måde sikres begge parter om en ligelig division. Problemet bliver sværere med tre personer, men du kan prøve Selfridge-Conway-løsningen for problemet. Men når du kommer til fire personer, findes der ingen løsning.

Reducer redigering af afstandsberegningstiden

redigeringsafstanden mellem to strenge er antallet af operationer, der kræves for at omdanne en streng til den anden streng. Afstandsberegningen drejer sig om Levenshtein-afstandsoperationerne, som er fjernelse, indsættelse eller substitution af et tegn i strengen. Denne særlige teknik ser anvendelse i naturlige sproggrænseflader, DNA-sekvenskvantificering og alle mulige andre steder, hvor du kan have to lignende strenge, der kræver en form for sammenligning eller modifikation.

Der findes i øjeblikket en række løsninger til dette problem, alle er ret langsomme. Faktisk tager de fleste eksponentiel tid, så den tid, der kræves for at udføre en transformation, tilføjer hurtigt op til det punkt, hvor mennesker kan se pauser i behandlingen af ​​input. Pause er ikke helt så dårlig, når du bruger et tekstbehandlingsprogram, der udfører automatisk ordkontrol og ændrer et stavet ord i den rigtige. Når du bruger stemmegrænseflader, kan pause imidlertid være ret mærkbar og få den menneskelige operatør til at lave fejl.

Løsning af problemer hurtigt

Når maskinlæring starter, og vi tæller mere og mere på computere for at løse problemer, bliver spørgsmålet om, hvor hurtigt en computer kan løse et problem, kritisk. P versus NP problem spørger simpelthen om en computer hurtigt kan løse et problem, når det hurtigt kan bekræfte løsningen på problemet. Med andre ord, hvis computeren med rimelighed kan konstatere, at et menneskeligt svar på et problem er korrekt i polynomisk tid eller mindre, kan det også løse problemet selv i polynomisk tid eller mindre?

Dette spørgsmål blev oprindeligt diskuteret på 1950'erne af John Nash i breve til National Security Agency (NSA) og igen i breve mellem Kurt Gödel og John von Neumann. Udover maskinindlæring (og AI generelt) er dette problem et problem for mange andre felter, herunder matematik, kryptografi, algoritmeforskning, spilteori, multimediebehandling, filosofi og økonomi.

Afspilning af paritetsspillet

I første omgang synes det ikke at være noget nyttigt at løse et spil i det virkelige liv. Ja, spil er sjovt og interessant, men de giver ikke rigtig baggrund for at gøre noget nyttigt - i hvert fald det er den generelle teori. Spilteorien kommer imidlertid til spil i et stort antal virkelige scenarier, hvoraf mange involverer komplekse processer, som en person kan forstå lettere som spil end som egentlige processer. I dette tilfælde hjælper spillet folk med at forstå automatiseret verifikation og controllersyntese, blandt andet. Du kan læse mere om paritetsspillet. Faktisk kan du spille det.

Forståelse af rumlige problemer

For at sætte dette særlige problem i kontekst, skal du tænke på flytende kasser rundt i et lager eller andre situationer, hvor du skal overveje det rum, hvor ting flytter sig. Selvfølgelig, hvis du har mange kasser i et stort lager og de alle har brug for en gaffeltruck til afhentning, vil du ikke forsøge at finde ud af, hvordan du opbevarer dem optimalt ved fysisk at omarrangere dem. Det er her, du skal arbejde gennem problemet ved at visualisere en løsning.

Men spørgsmålet er, om alle rumlige problemer har en løsning. I så fald tænk på en af ​​disse børns puslespil, som du har sat et billede sammen ved at skubbe de små fliser rundt. Det ser ud til, at der findes en løsning i alle tilfælde, men i nogle situationer kan et dårligt udgangspunkt resultere i en situation, der ikke har nogen løsning.

Matematikere som Sam Loyd bruger ofte puslespil til at demonstrere komplekse matematiske problemer, hvoraf nogle ikke har nogen løsning i dag. Besøg disse steder er sjovt, fordi du ikke kun får noget gratis underholdning, men også mad til tanker. De problemer, som disse puslespil rejser, har praktiske anvendelser, men de præsenteres på en sjov måde.

10 Algoritmiske problemer endnu for at løse

Valg af editor

Test din kode med Dreamweavers webstedrapporteringsfunktioner - dummies

Test din kode med Dreamweavers webstedrapporteringsfunktioner - dummies

Hvis du har brugt Dreamweaver til bygg din mobilwebsite, du kan tjekke dit arbejde ved hjælp af Dreamweaver Site Reporting funktionerne. Det lader dig oprette en række rapporter og endda tilpasse dem til at identificere problemer med eksterne links, overflødige og tomme tags, untitled dokumenter og manglende alternativ tekst. Du kan nemt gå glip af problemer - især ...

Sådan bruger du dit eget domæne til dit Squarespace-websted - dummier

Sådan bruger du dit eget domæne til dit Squarespace-websted - dummier

Når du underskriver op for din Squarespace-konto, får du en unik Squarespace-URL, der ser sådan ud: http: // dit kontonavn. Squarespace. com. Hvis du vil have fuldstændig kontrol over branding af dit websted eller blot ønsker en unik webadresse, kan du kortlægge eller pege på et brugerdefineret domæne på din Squarespace-konto. Du har tre muligheder for indstilling ...

Fordelene ved at bruge Markdown på din Squarespace Website - dummies

Fordelene ved at bruge Markdown på din Squarespace Website - dummies

Markdown er en plain- tekst skriftformat, der gør det muligt hurtigt at anvende tekst styling baseret på hvordan du formaterer din Squarespace 6 websteds tekst. Markdown er en af ​​Du bruger to typer blokke, du kan bruge til at tilføje tekst. Du tilføjer indhold til dine Squarespace-sidesider ved at bruge indholdsblokke i Site Manager → Indhold ...

Valg af editor

Wicca og Witchcraft For Dummies Cheat Sheet - dummies

Wicca og Witchcraft For Dummies Cheat Sheet - dummies

Wicca, en heksekunst, er centreret i rituelle Wiccans udfører til specifikke formål, såsom at kommunikere med eller ære guddom. Sabbats er wiccan sol helligdage fokuseret på jordens sti omkring solen, nogle gange omtalt som Årets hjul. Esbats er wiccan månens ferie, der fokuserer på månens cyklus. ...

Sammenhængende trosretninger: almindelige erfaringer i skrifterne - dummies

Sammenhængende trosretninger: almindelige erfaringer i skrifterne - dummies

Interessant de tre Abrahams trosretninger - jødedom, kristendom , og islam - deler meget til fælles, herunder en række af ædle profeter sendt af Gud. På grund af commonality ligger en dyb forbindelse til arv fra profeten Abraham og en tro på en Gud. Koranen finder fælles sted med kristne og jøder (kendt ...

Charmerende din vej til effektiv magi - dummies

Charmerende din vej til effektiv magi - dummies

En firkløver for held. Den jakkesæt, som du altid bærer til jobsamtaler for succes. Ringen du tager aldrig af, fordi den repræsenterer din kærlighed til en anden person. Den hængende du bærer rundt om halsen hver dag for beskyttelse. Den lille statue hængende fra bilens bagspejl til sikker rejse. ...

Valg af editor

Vælger skråninger, kanter og ansigter i blender - dummies

Vælger skråninger, kanter og ansigter i blender - dummies

I Blender's Edit-tilstand, kuben ændrer farve og prikker danner i hver af kubens hjørner. Hver prik er et vertex. Linjen der dannes mellem to hjørner er en kant. Et ansigt i Blender er en polygon, der er dannet af tre eller flere forbindelseskanter. Tidligere er ansigter i Blender ...