Indholdsfortegnelse:
- Håndtering af tekstsøgninger
- Differentierende ord
- Bestemmelse af, om en ansøgning slutter
- Oprettelse og brug af envejsfunktioner
- Multiplicere rigtigt store tal
- Dele en ressource lige
- Reducer redigering af afstandsberegningstiden
- Løsning af problemer hurtigt
- Afspilning af paritetsspillet
- Forståelse af rumlige problemer
Video: How Machines Learn 2024
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.