Föreläsningsöversikt 1.3¶
- Admin
- Matematik och diskret matematik
- Mängdlära
- Venndiagram
Admin¶
Påminnelse, Python-material!¶
- Kurslitteratur
- Skansholm (2019) kap 1-2, 5.1-5.3.2, 5.3.5, 5.4, kap 6.1-6.2, 6.4, kap 8.1-8.2
- Jodys videos
- 1-5 & 7 är relevanta för Tema 1
- Mindre än 25 minuter totalt, men väl värt att upprepa
- https://web.microsoftstream.com/channel/5bf65e11-e261-45aa-ab27-0ec34e2b10e4
- Alternativ kurslitteratur
- Exempelvis Learning Python, 5ed av Mark Lutz
- Python Tutor
- https://pythontutor.com/python-debugger.html
Påminnelse, Begreppsseminarium 1¶
- Förberedelser
- titta på videos
- gör övning
- lämna in Entry Ticket (deadline: kl. 12 dagen innan seminariet)
- OBS! Entry Ticket inlämnad i tid krävs för deltagande på begreppsseminariet!
- På seminariet
- diskussion
Kort om GPT och generativ AI i kursen¶
- Om ni använder det, använd det för att lära er programmera själva
- Kod som ni redovisar och lämnar in ska ni skriva själva
- Inlämningar som ni genererat via GPT och inte förstår in i minsta detalj betraktas som fusk
- Lärare och assistenter är skyldiga att anmäla misstänkt fusk till LiUs disciplinnämnd
Vad gör viss matematik diskret?¶
Diskret matematik¶
- Behandlar diskreta matematiska strukturer.
- Diskreta i betydelsen åtskilda.
- Inget att göra med att vara diskret i betydelsen lågmäld, förtegen, finkänslig, etc.
- På engelska discrete, inte discreet.
- T.ex.
- Heltal
- Det finns inget heltal mellan talet 1 och 2, de är åtskilda.
- Studenter som läser kursen 729G46 i år.
- Alla studenter är separata entiteter, de är åtskilda.
- Husnummer
- Vi har Storvägen 1, Storvägen 2 - Storvägen 1,5 finns normalt sett inte, adresserna är åtskilda.
- Heltal
Icke-diskret matematik?¶
- Behandlar kontinuerliga matematiska strukturer
- Kontinuerlig i betydelsen "steglös"
- T.ex.
- Reella tal
- Det finns oändligt många reella tal mellan 1 och 2, vi kan steglöst flytta mellan dem.
- Geometri
- Vi kan alltid minska eller öka ett avstånd, oavsett hur litet eller stort det är, vi kan steglöst förändra storlekar.
- Derivator och integraler
- Per definition kontinuerliga till den grad att icke-kontinuiteter orsakar huvudverk.
- Reella tal
Tillämpningar av diskret matematik¶
- Modellering av diskreta domäner ("ämnesområden")
- Formell beskrivning av t.ex. en Turingmaskin
- Beskrivning av ett socialt nätverk
- Logistik
- Datalogi
- Relationella databaser
- Kryptering
- Algoritmer, t.ex. kortaste vägen mellan två städer (karta = graf)
Ämnen inom diskret matematik¶
- Mängdlära
- Matematisk logik
- Abstrakt algebra
- Tal- och informationsteori
- Grafteori
- Kombinatorik
- Ordningsteori
Får egna föreläsningar¶
- Mängdlära
- Matematisk logik
- Abstrakt algebra
- Tal- och informationsteori
- Grafteori
- Kombinatorik
- Ordningsteori
Dyker upp här och där¶
- Mängdlära
- Matematisk logik
- I AI-kursen
- Abstrakt algebra
- Boolesk algebra
- I databaskursen
- Tal- och informationsteori
- Talsystem
- Textrepresentation
- Grafteori
- Kombinatorik
- I statistikkurser
- Ordningsteori
- Sortering
Idag¶
- Mängdbegreppet
- Venn-diagram
- Kardinalitet
- Delmängd
- Mängdalgebra
- Union
- Snitt
- Differens
- Mängder och funktioner?
Mängdbegreppet¶
Mängd (eng. set)¶
- "Samling av unika ting"
- Exempel:
- Kogvetettan
- Böcker du har läst
- Heltal
- Rektanglar
- Fester jag minns ( $\subset$ fester jag har varit på, men vi kommer till det)
Diskreta och kontinuerliga mängder¶
- Diskreta (uppräkneliga):
- Heltalen
- Försöksdeltagare
- Böcker
- Kontinuerliga (ouppräkneliga):
- Reella talen
- Trianglar
- Mätvärden i ett experiment (ibland)
- Båda kan vara oändliga
Venn-diagram, att visualisera mängder¶
Var är matematiken?¶
Lite definitioner och notationer¶
$$ A = \{ a_1, a_2, \ldots, a_n \} $$
- $A$ är en mängd som består av $n$ stycken unika element
- Mängder noteras ofta med versal och ofta i exempel som $A$, $B$ och $C$ (snarare än $X$, $Y$ och $Z$)
- (Undantag är vanliga)
- Elementen noteras ofta med gemen, med samma bokstav som mängden, och med ett index som börjar på $1$
Venn-diagram och matematisk notation¶
$$ L_{KogVet} = \{Charlie, Kacper, Simon\} \quad L_{IP} = \{Charlie, Johan\} \quad L_{Y} = \{Kacper, Michael, Mio\} $$
Mängder är oordnade¶
$$ \{ Erik, Sam \} = \{ Sam, Erik \} $$
- Elementens ordning har ingen betydelse ur mängdläre-perspektiv.
- Gäller även mängder av tal
$$ \{ 1,2,3 \} = \{ 2,3,1 \} = \{ 3,2,1 \} = \{ 1,3,2 \} $$
Element i mängder är unika¶
$$ \{ Ludde, Annika, Ludde \} = \{ Ludde, Annika \} $$
- Ett vanligt sätt att i programmering ta ut alla unika element i t.ex. en lista är att konvertera till språkets datatyp för mängder. Per definition måste då eventuella upprepningar försvinna.
- Det kommer inte på duggan, men att förstå och kunna använda detta kan definitivt underlätta på duggan.
Måste mängder beskrivas genom uppräkning?¶
$$ \mathbb{Z} = \{ x | x \text{ är ett heltal}\} $$
- Här används så kallad mängdbyggare för att beskriva mängden $\mathbb{Z}$, som är det generellt accepterade namnet för mängden av alla heltal. Utläses ofta som "$\mathbb{Z}$ är mängden av alla $x$ sådana att $x$ är ett heltal". Några andra vanliga talmängder:
- $\mathbb{N}$ naturliga talen ( $\{ 0, 1, 2, 3, \ldots \}$ )
- $\mathbb{Z}^+$ positiva heltalen ( $\{ 1, 2, 3, \ldots \}$ )
- $\mathbb{Z}^-$ negativa heltalen ( $\{ \text{-}1, \text{-}2, \text{-}3, \ldots \}$ )
- $\mathbb{Q}$ rationella talen
- $\mathbb{R}$ reella talen
- $\mathbb{C}$ komplexa talen
- Kuriosa: När en mängd istället definieras genom uppräkning, t.ex. $\mathbb{Z} = \{\ldots, \text{-}2, \text{-}1, 0, 1, 2, 3, \ldots \}$ kallas det för roster-notation.
Mängdbyggare, exempel¶
- $ A = \{ n | n \text{ har egenskapen...}\} $
- $ M = \{ x | x \text{ är ett udda heltal}\} $
- $M$ är mängden av alla $x$ sådana att $x$ är ett udda heltal
- $ N = \{ x | x \in \mathbb{Z}, x \text{ är udda}\} $
- (Notera att här är $M = N$ )
- Rationella tal: $\mathbb{Q} = \{ x/y | x,y \in \mathbb{Z} \}$
- $\mathbb{Q}$ är mängden av alla $x/y$ sådana att $x$ och $y$ tillhör mängden hela tal
Tillhörighet¶
Om $x$ är ett värde som finns i mängden $A$ så säger vi att $x$ tillhör $A$: $x \in A$
Givet
- $L_{KogVet} = \{Charlie, Kacper, Simon\}$,
- $L_{IP} = \{Charlie, Johan\}$ och
- $L_{Y} = \{Kacper, Michael, Mio\}$
Så gäller att
- $ Charlie \in L_{KogVet} $ ($Charlie$ tillhör mängden $L_{KogVet}$)
- $ Kacper, Michael \notin L_{IP} $ ( $Kacper$ och $Michael$ tillhör inte mängden $L_{IP}$ )
Delmängd¶
- Om $A$ och $B$ är mängder och alla element i $A$ också är i $B$ så är $A$ en delmängd till $B$: $A \subseteq B$
- $\{ Charlie, Simon \} \subseteq L_{KogVet}$
- Om samma situation som ovan gäller, men det finns något $x$ sådant att $x \in B$ men $x \notin A$ så är $A$ en strikt delmängd till $B$: $A \subset B$
- $\{ Charlie, Simon \} \subset L_{KogVet}$ men
- $\{ Charlie, Simon, Kacper \} \not\subset L_{KogVet}$
- Jämför med relationen $\leq$
- OBS! Delmängd och tillhörighet är inte samma sak.
- Tillhörighet är en relation mellan vilka värden som helst och någon mängd
- Delmängd är en relation mellan mängder
Ett par speciella mängder: $\mathbb{U}$¶
- Universum, $\mathbb{U}$, eller universella mängden, mängden av alla element.
- I verkligheten finns ingen sådan mängd (det går till och med att bevisa matematiskt att ingen sådan mängd kan existera, men det är överkurs).
- Vi definierar $\mathbb{U}$ på ett sätt som är lämpligt för det problem vi behandlar.
- När vi t.ex. diskuterar lärare i den här kursen och vilka program vi läst, så kan vi säga att
- $\mathbb{U} = \{ Charlie, Johan, Kacper, Michael, Mio, Simon\}$
Ett par speciella mängder: $\emptyset$¶
- Tomma mängden, $\emptyset$ eller $\{\}$, mängden utan några element.
- $\emptyset$ har den speciella egenskapen att $\emptyset \subseteq S$ för alla mängder $S$
- Dvs. $\emptyset$ är en delmängd till alla mängder
Kardinalitet¶
- Storleken på en mängd $A$ kallas för $A$:s kardinalitet och skrivs $|A|$
- Kardinaliteten är antalet element i en mängd
- T.ex. $ L_Y = \{ Kacper, Michael, Mio \}$ så $|L_Y| = 3$
- Överkurs: Vad är kardinaliteten hos en oändlig mängd som t.ex. $\mathbb{N}$?
- Det beror på hur stor oändlighet vi pratar om men alla uppräkningsbara oändliga mängder, t.ex. $\mathbb{N}$, har kardinaliteten $\aleph_0$, större oändligheter har kardinaliteten $\aleph_1$, $\aleph_2$, osv.
- (Det är rimligt att få åtminstone viss ångest av ovanstående helt sanna påstående, fråga Georg Cantor, mängdlärans fader.)
Mängder i Python¶
- Klassen
set
kogvetare = {"Charlie", "Kacper", "Simon", "Charlie"} # explicit beskrivning av en mängd
print(kogvetare)
ylist = ["Kacper", "Michael", "Mio"]
yset = set(ystudenter) # omvandla en lista med värden till en mängd
{'Kacper', 'Simon', 'Charlie'}
Mängder i mängder¶
Mängder i mängder¶
- En mängd kan vara ett element i en annan mängd
$$ \begin{align} L_{IP} &= \{Charlie, Johan\} & & \\ L_{Y} &= \{Kacper, Michael, Mio\} & & \\ L_{TekS} &= \{Charlie, Johan, Kacper, Michael, Mio\} \qquad & |L_{TekS}| &= 5 \\ L_{TekP} &= \{L_{IP}, L_{Y}\} & & \\ L_{TekP} &= \{\{Charlie, Johan\}, \{Kacper, Michael, Mio\}\} & |L_{TekP}| &= 2 \end{align} $$
- OBS! Mängden $L_{TekS} \neq L_{TekP}$
- Nedanstående uttryck är sanna:
$$ \begin{align} Johan &\in L_{IP} \\ Johan &\notin L_{TekP} \\ L_{IP} &\in L_{TekP} \end{align} $$
Igen, notera skillnaden mellan tillhör och delmängd¶
$ \begin{align} L_{IP} &= \{Charlie, Johan\} & & \\ L_{Y} &= \{Kacper, Michael, Mio\} & & \\ L_{TekS} &= \{Charlie, Johan, Kacper, Michael, Mio\} & & \\ L_{TekP} &= \{L_{IP}, L_{Y}\} & & \\ L_{TekP} &= \{\{Charlie, Johan\}, \{Kacper, Michael, Mio\}\} & & \end{align} $
- $Johan \in L_{IP}$
- värdet $Johan$ tillhör $L_{IP}$ eftersom $Johan$ är ett element i $L_{IP}$
- $L_{IP} \notin L_{TekS}$
- Värdet $L_{IP}$ tillhör inte $L_{TekS}$ eftersom $L_{IP}$ inte är ett element i $L_{TekS}$
- $L_{IP} \in L_{TekP}$
- Värdet $L_{IP}$ tillhör $L_{TekP}$ eftersom $L_{IP}$ är ett element i $L_{TekP}$
- $\{Johan\} \notin L_{IP}$
- Värdet som är mängden som innehåller $Johan$ tillhör inte $L_{IP}$ eftersom $\{Johan\}$ inte är ett element i $L_{IP}$
- $\{Johan\} \subset L_{IP}$
- Däremot mängden som innehåller $Johan$ är en strikt delmängd av $L_{IP}$ eftersom alla element i $\{Johan\}$ finns i $L_{IP}$
Disjunkta mängder¶
- Mängderna $A$ och $B$ är disjunkta (eng. disjoint) om $A$ och $B$ inte har några gemensamma element
- Alternativt uttryckt
- inget element i $A$ finns i $B$ och
- inget element i $B$ finns i $A$
- Exempelvis, givet
- $L_{IP} = \{Charlie, Johan\}$ och
- $L_{Y} = \{Kacper, Michael, Mio\}$
- så är $L_{IP}$ och $L_{Y}$ disjunkta.
Mängdalgebra¶
Mängdalgebraiska operationer¶
- Union
- Snitt
- Differens
- Komplement
- Symmetrisk differens
Mängdalgebra: Union, $\cup$¶
- Unionen (eng. union) av $A$ och $B$
- Informellt: Skapa en ny mängd där alla element från $A$ ingår, och alla element från $B$ ingår
- I Python:
|
-operatorn
- $A = \{bil,buss,motorcykel\}$
- $B = \{cykel,motorcykel\}$
- $ A \cup B = \{bil,buss,cykel,motorcykel\}$
- I Python:
{"bil", "buss", "motorcykel"} | {"cykel", "motorcykel"}
Venn-diagram: Union¶
- Vi kan färglägga vissa delar av ett Venn-diagram för att visa vilken del som representerar resultatet av en operation
$$ A \cup B $$
Mängdalgebra: Snitt, $\cap$¶
- Snittet (eng. intersection) av mängden $A$ och $B$
- Informellt: Skapa en ny mängd med alla element som finns både i $A$ och $B$
- I Python:
&
- $A = \{bil,buss,motorcykel\}$
- $B = \{cykel,motorcykel\}$
- $ A \cap B = \{motorcykel\}$
- I Python:
{"bil", "buss", "motorcykel"} & {"cykel", "motorcykel"}
Snitt och disjunkta mängder¶
- Kom ihåg: $A$ och $B$ är disjunkta om de inte har några gemensamma element, dvs $$ A \cap B = \emptyset $$
Union och snitt, räkneregler¶
- Kommutativitet
- $A \cup B = B \cup A$
- $A \cap B = B \cap A$
- Associativitet
- $(A \cup B) \cup C = A \cup (B \cup C)$
- $(A \cap B) \cap C = A \cap (B \cap C)$
- Distributivitet
- $A \cup (B \cap C) = (A \cup B) \cap (A \cup C)$
- $A \cap (B \cup C) = (A \cap B) \cup (A \cap C)$
Mängdalgebra: Komplement, $^\complement$¶
- Komplementet (eng. complement) till mängden $𝐴$
- Informellt: Skapa en ny mängd med alla element som finns i $\mathbb{𝑈}$ men inte i $𝐴$ (ta bort element i $𝐴$ från $\mathbb{𝑈}$)
- Ekvivalent med differensen mellan $\mathbb{𝑈}$ och $𝐴$
- $\mathbb{𝑈} = \mathbb{Z}$ (alla heltal)
- $ A = \{x | x \text{ är ett primtal}\} $
- $ A^\complement = \{x | x \text{ är ett heltal men inte ett primtal}\} $
Venn-diagram: Komplement¶
$$
A^\complement
$$
Venn-diagram: Komplement¶
$$
B^\complement
$$
Räkneregler, komplement¶
Involution eller dubbelkomplement
- $(A^\complement)^\complement = A$
Komplementlagarna för universum och tomma mängden
- $\emptyset^\complement = \mathbb{U} $
- $\mathbb{U}^\complement = \emptyset $
De Morgans lagar
- $(A \cup B)^\complement = A^\complement \cap B^\complement$
- $(A \cap B)^\complement = A^\complement \cup B^\complement$
Mängdalgebra: Differens eller relativt komplement, $\setminus$¶
- Differensen (eng. set difference) eller relativa komplementet (eng. relative complement) av mängden $A$ och mängden $B$
- Informellt: Skapa en ny mängd där alla element finns i $A$, men inte i $B$ (ta bort element i $B$ från $A$)
- I Python:
-
- $A = \{bil,buss,motorcykel\}$
- $B = \{cykel,motorcykel\}$
- $ A \setminus B = \{bil,buss\}$
- I Python:
{"bil", "buss", "motorcykel"} - {"cykel", "motorcykel"}
Mängdalgebra: Symmetrisk differens, $\Delta$¶
- Symmetriska differensen (eng. symmetric difference), disjunkta unionen (eng. disjunctive union), eller mängdsumman (eng. set sum) av mängden $A$ och mängden $B$
- Informellt: Skapa en ny mängd med alla element som finns i $A$ eller $B$ men inte i båda (ta bort snittet från unionen)
- Ekvivalent med
- $(A \cup B) \setminus (B \cap A)$
- och
- $(A \setminus B) \cup (B \setminus A)$
- $A = \{bil,buss,motorcykel\}$
- $B = \{cykel,motorcykel\}$
- $ A \Delta B = \{bil,buss,cykel\}$
- I Python:
{"bil", "buss", "motorcykel"}.symmetric_difference({"cykel", "motorcykel"})
Formell definition av en Turingmaskin¶
Following Hopcroft and Ullman (1979,p. 148), a (one-tape) Turing machine can be formally defined as a 7-tuple $M = \langle Q, \Gamma, b, \Sigma, \delta, q_0, F \rangle$ where
- $\Gamma$ is a finite, non-empty set of tape alphabet symbols;
- $b \in \Gamma$ is the blank symbol (the only symbol allowed to occur on the tape infinitely often at any step during the computation);
- $\Sigma\subseteq\Gamma\setminus\{b\}$ is the set of input symbols, that is, the set of symbols allowed to appear in the initial tape contents;
- $Q$ is a finite, non-empty set of states;
- $q_0 \in Q$ is the initial state;
- $F \subseteq Q$ is the set of final states or accepting states. The initial tape contents is said to be accepted by $M$ if it eventually halts in a state from $F$.
- $\delta: (Q \setminus F) \times \Gamma \not\to Q \times \Gamma \times \{L,R\}$ is a partial function called the transition function, where L is left shift, R is right shift. If $\delta$ is not defined on the current state and the current tape symbol, then the machine halts; intuitively, the transition function specifies the next state transited from the current state, which symbol to overwrite the current symbol pointed by the head, and the next head movement.
Inlämningsuppgift 1¶
- Övningar i mängdlära
- 8 uppgifter som ger 1 eller 2 poäng med möjlighet till max 10 poäng
- 7 av 10 poäng krävs för godkänt
- Lämnas in som pdf i Sendlab (
tema1_matte
) senast 9e september kl 23.59 - Eventuell komplettering genom att förklara varför de fel man gjorde var fel