ätande filosoferna

ett klassiskt datorvetenskapligt problem om tillgång till gemensamma resurser: Fem filosofer sitter runt ett matbord och ska äta ris. Men det finns bara fem ätpinnar, placerade mellan filosoferna. Varje filosof har alltså en ätpinne till vänster och en till höger, så varje pinne ligger mellan två filosofer. Och för att äta behöver man ju två pinnar, så alla kan inte äta samtidigt. Man får inte ta två pinnar på en gång, utan man måste först ta en, sedan (utan att man behöver släppa den första) den andra. Risken är att alla blir sittande med var sin ätpinne och väntar. – Utmaningen är att hitta ett regelsystem som gör att alla med minsta möjliga väntetid får disponera två pinnar så att de kan äta. Problemet formulerades av programmeringsexperten Edsger Dijkstra†. – På engelska: the dining philosophers. – Mer om de ätande filosoferna i Wikipedia. – Läs också om aktivt dödläge och contention samt om det spelteoretiska problemet middagsätarens dilemma.

[datorvetenskap] [programmering] [ändrad 18 december 2019]

parallellism

körning av datorprogram på flera processorer eller kärnor som arbetar relativt oberoende av varandra. – För att parallellism ska vara möjlig måste programmet alltså vara uppdelat i trådar som samtidigt kan köras från början till slut utan att behöva vänta på resultat från andra trådar. (Jämför med concurrency, samtidighet.) Parallellism förutsätter att programmet körs på ett datorsystem med flera processorer, minst en för varje tråd. Huvudtyper är symmetriska multiprocessorsystem och massivt parallella datorsystem.

[parallellt] [programmering] [ändrad 25 februari 2022]

vektor

Vektor med namn på detaljerna utsatta.
Vektorns detaljer. (Från Wikipedia)
    1. – i programmering: en serie tal i en bestämd ordning. (Ett slags datastruktur);
    2. – i matematik: tecknad pil som beskriver en riktad kraft. Pilens längd visar kraftens belopp. – Ett mer abstrakt sätt att beskriva en vektor är att räkna upp koordinaterna för dess ändpunkter. Om vi ritar en vektor på rutat papper behöver vi två koordinater för startpunkten och två för slutpunkten, alltså fyra. Men man kan tänka sig vektorer som beskriver krafter i fler dimensioner, och då blir det fler siffror. Sådana sifferserier kan kallas för vektorer även om man inte ritar dem som en pil. Därav den datortekniska betydelsen, se ovan. – Man talar ibland om flerdimensionella vektorer, men då menar man att vektorn beskriver en kraft i en flerdimension­ell rymd. Själva vektorn, alltså talserien, är alltid endimension­ell (en rät linje). Därför är det skillnad mellan en vektor och en array: en array kan vara flerdimensionell, men det kan inte en vektor. – Se också tensor;
    3. – se vektorisering.

    – På engelska används vector också i betydelsen bärare, som disease vector, smittbärare, och attack vector. (Vector är latin för bärare.)

    [bildbehandling] [datastrukturer] [matematik] [skadeprogram] [ändrad 21 maj 2023]

konjunktion

i formell logik: motsvarighet till vardagsspråkets och. – Om man binder ihop två påståenden med OCH i formell logik och programmering måste båda vara sanna, annars anses det sammansatta påståendet som helhet vara falskt. I formell logik används tecknet ∧ för konjunktion, i programmering ofta engelska AND. Även tecknen · (upphöjd punkt) och & förekommer. – Sökvillkoret ”A AND B” tar, om man använder det i en sökmotor på webben, fram webbsidor som innehåller både A och B – men inte sidor som bara nämner ett av dem. Alltså: om man söker på ”sill AND brännvin” får man upp alla sidor som nämner både sill och brännvin (inte nödvändigtvis intill varandra), men inte sidor som nämner bara ett av orden. (Se och‑förval.) – Se också det omvända, NAND. – En sanningsvärde­tabell för konjunktion ser ut så här:

– ”Båda påståendena A och B är sanna” (A∧B) :

A B A∧B
sant sant sant
sant falskt falskt
falskt sant falskt
falskt falskt falskt

[logik] [programmering] [ändrad 8 oktober 2019]

NOR

(not OR) – inget av två eller flera; varken A eller B. – NOR är ett logiskt villkor som används i program­me­ring: av två påståenden måste båda vara falska. (Exempel: Är du sjukskriven? Har du egen firma? Om du svarar nejbåda frågorna har du rätt till arbetslöshetsersättning – annars inte.) – NOR är negationen av (motsatsen till) det logiska villkoret OR, närmare bestämt till det som i logik heter inklusiv disjunk­tion. Inom programmering är NOR intressant därför att alla andra logiska villkor kan skrivas som kombinationer av NOR‑villkor. Villkoret NOR kan breddas till att gälla fler än två påståenden. Då måste alla påståendena vara falska. – Kallas på svenska också för neller. – Jäm­för med NAND. – NOR flash är en av huvudtyperna av flashminne. Transistorerna i en minnes­cell följer vill­koret NOR: det räcker med att en av transistorerna tar emot en hög ingå­ende spänning (=sant) för att hela cellen ska ge ifrån sig en låg utgående spänning (=falskt). – En sanningsvärdetabell för NOR ser ut så här:

– Inget av påståendena A och B är sant (A NOR B) :

A B A NOR B
sant sant falskt
sant falskt falskt
falskt sant falskt
falskt falskt sant

[förkortningar på N] [logik] [programmering] [ändrad 6 november 2021]

boolesk

Tecknat porträtt av George Boole (färglagt).
George Boole (från Wikipedia).

(Boolean)boolesk logik, boolesk algebra – ett sätt att uttrycka logiska problem som matematik. – Boolesk algebra är upp­kallad efter George Boole (mer om honom längre ner). – Två saker gör att boolesk logik passar för datorteknik:

  1. – boolesk algebra löser logiska pro­blem med matematiska metoder. Om du kan beskriva ett problem med den booleska algebrans termer så kan du sedan lösa det mekaniskt, vilket inne­bär att du kan programmera en dator att lösa problemet;
  2. – boolesk algebra representerar logikens två sanningsvärden sant och falskt med den binära matematikens två siffror 1 och 0. Det passar bra för datorer, eftersom datorernas logiska kretsar (processorerna) också arbetar med två lägen, och av. Datorernas kretsar är komplice­rade tillämp­ningar av boolesk algebra.

– Boolesk algebra är inget konstigt: det är ett sätt att beskriva vanlig matematik och logik som råkar passa in på hur datorer är konstruerade. I boolesk algebra används villkoren AND (konjunktion), OR (disjunktion) och NOT (negation). Det finns fler logiska villkor än AND, OR och NOT, till exempel IF THEN (implikation) och XOR (exklusiv disjunktion). Men de tre booleska termerna räcker. Alla andra logiska villkor kan nämligen ut­tryckas med kom­binationer av AND, OR och NOT samt parenteser. – Boolesk algebra är uppkallad efter logikern George Boole (1815—1864). Han strävade efter att för­ena formell logik och matematik i ett gemensamt symbolspråk. Booles principer kom till användning när de första datorerna konstruerades. – Boolesk uttalas ”bolsk” med O som i sol. – Mer i Wikipedia.) – Det engelska ordet Boolean används ibland i betydelsen binär, alltså när svaret på en fråga är ja eller nej, sant eller falskt, ett eller noll – inga mellanvärden. – Språkligt: Benämningen booleansk förekommer också på svenska, men den är onödig, eftersom det inte finns något som heter booleanism.

[logik] [personer] [programmering] [ändrad 26 juli 2021]

NAND

(not AND) – inte båda, icke och – ett logiskt villkor som används i programmer­ing. Det är motsatsen till villkoret AND, se konjunktion. – AND betyder att av två påståenden måste båda vara sanna; NAND betyder att minst ett av påståendena, eller båda, måste vara falskt. – Exempel: villkoret ”regn NAND snö” godkänner ”regn men inte snö”, ”snö men inte regn”, ”varken snö eller regn”, men inte ”regn och snö”. NAND‑villkoret kan också tillämpas på fler än två påstå­enden: ett eller flera av påståendena får då vara sanna, men inte alla. Alla andra logiska villkor kan skrivas som kombinationer av NAND‑villkor. – Jämför med NOR. – NAND flash memory, NAND‑minne, är en av huvudtyperna av flashminne. Det syftar på att transis­to­rerna i minnescellerna är sammankopplade enligt det logiska villkoret NAND: bara om alla transistorerna i cellen får en hög ingående spänning (=sant) blir det en låg utgå­ende spänning (=falskt). – En sannings­värde­tabell för NAND ser ut så här:

– Påståendena A och B får inte båda vara sanna” (A NAND B) :

A B A NAND B
sant sant falskt  
sant falskt sant
falskt sant sant
falskt falskt sant

[förkortningar på N] [logik] [programmering] [ändrad 14 november 2018]