\documentclass{article}
%\usepackage{times}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

%\usepackage[italian]{babel}
%\usepackage{amsthm}
\usepackage{algorithm} % for pseudo-codes
%\usepackage{enumerate}
\usepackage{algpseudocode}
%\usepackage{DotArrow}
%\usepackage{subfig}
\usepackage{amsmath}
\usepackage{amssymb}
%\usepackage{amsthm}
%%\usepackage{bm}
%%\usepackage{mathtools}
\usepackage{graphicx} 
%\usepackage{wrapfig}
%\usepackage{minibox}
%\usepackage{multirow}
%\usepackage{pifont} % \ding{}
%\usepackage[percent]{overpic}
%\usepackage{scrextend} % labeling environment
%
%\newtheorem{theorem}{Theorem}
%\newtheorem{definition}{Definition}
%\newtheorem{example}{Example}
%
%\renewcommand{\textfraction}{0.05}
%\renewcommand{\floatpagefraction}{0.75}

\newcommand{\centerimage}[5][-7pt]{ % [vskip] | graphics-opt | imgname | label | caption
\begin{figure}[!htb]%
\centering%
\vspace{#1}%
\includegraphics[#2]{#3}%
\caption{#5}\label{#4}\vspace{2mm}%
%\vspace{-3pt}\caption{#5}\label{#4}\vspace{-2pt}%
\end{figure}}

%\includegraphics[trim=1cm 2cm 3cm 4cm, clip=true]{example.pdf}



\begin{document}



\title{Primo Esercizio - Definizioni}


\author{Francesco Gallà, francesco.galla@edu.unito.it}

\maketitle


%========================================================================= 
%%%%%%%                       INTRODUCTION                         %%%%%%%
%========================================================================= 

\section{Definizioni}  \label{sec:definizioni}

\subsection{Numeri Naturali}

L'insieme dei numeri naturali è composto da tutti i numeri interi maggiori o uguali di 0.\\
L'insieme è indicato da $\mathbb{N}$

\subsection{Numeri Interi}

L'insieme dei numeri interi è composto da tutti i numeri i quali possono essere scritti senza una componente frazionaria. Comprendono i numeri naturali e gli interi negativi.\\
L'insieme è indicato da $\mathbb{Z}$

\subsection{Numeri Reali}

L'insieme dei numeri reali è composto da tutti i numeri capaci di rappresentare una quantità sulla linea dei Reali (una linea infinita in direzione positiva e negativa, in cui i numeri interi sono equidistanti). Comprendono i numeri Interi, i numeri Razionali e i numeri Irrazionali.\\
L'insieme è indicato da $\mathbb{R}$

\subsection{Intersezione}

L'intersezione di due insiemi A e B è l'insieme che contiene gli elementi comuni ad A e a B.\\
$A \cap B = \{x : x \in A\, and\, x \in B\}$

\subsection{Unione}

L'unione di due insiemi A e B è l'insieme che contiene tutti gli elementi di A e B.\\
$A \cup B = \{x : x \in A\, or\, x \in B\}$

\subsection{Differenza}

La differenza tra l'insieme A e l'insieme B è l'insieme che contiene tutti gli elementi di A che non sono presenti in B.\\
$A - B = \{x : x \in A\, or\, x \notin B\}$

\subsection{Power Set}

Il Power Set dell'insieme S, o insieme di potenza di S, è l'insieme che contiene tutti i sottoinsiemi di S, compresi l'insieme vuoto e S stesso.
L'insieme è indicato da $\wp(S)$\\
Se la cardinalità del set S è $|S|$, allora la cardinalità di $\wp(S)$ è $2^{|S|}$

\subsection{Complemento}

L'insieme complemento di A è l'insieme che contiene gli elementi non presenti in A in un insieme universo U che contiene tutti gli elementi considerati.\\
$\overline{A} = \{x \in U |\, x \notin A\}$

\subsection{Contenuto}

Un insieme A è contenuto in B se A è un sottoinsieme di B, ovvero se tutti gli elementi di A sono anche elementi di B. Questo implica che B sia un sovrainsieme di A.\\
$A \subseteq B \to \{\forall x \in A | x \in B\}$

\subsection{Strettamente Contenuto}

Un insieme A è strettamente contenuto in B se A è un sottoinsieme di B, ovvero se tutti gli elementi di A sono anche elementi di B, e se esiste almeno un elemento di B che non appartiene ad A (pertanto $A \neq B$).\\
$A \subset B \to \{(\forall x \in A | x \in B\,)\, and\,(\exists x\, | x \in B\, and\, x \notin A)\}$

\subsection{Prodotto Cartesiano}

Il prodotto cartesiano tra due o più insiemi (si consideri A e B) è un insieme contenente tutte le coppie ordinate $(a,b)$ in cui $a$ appartiene ad A e $b$ appartiene a B.\\
$ A \times B = \{(a,b)\, |\, a \in A\, and\, b \in B\}$

\subsection{Relazione di arietà n}

Si definisce arietà di una relazione $\mathbb{D}$ il numero di insiemi a cui si applica quella relazione. Se una relazione ha arietà $n$:\\
$\mathbb{D} \subseteq A_1 \times\, ...\, \times A_n$

\subsection{Relazione binaria}

Una relazione binaria è una relazione $\mathbb{D}$ di arietà 2.\\
$\mathbb{D} \subseteq A_1 \times A_2$

\subsection{Proprietà riflessiva}

Dato un insieme A e una relazione $\mathbb{D}$, $\mathbb{D}$ soddisfa la proprietà riflessiva se e solo se $\forall a \in A\, :\, a \mathbb{D} a$, ovvero se ogni elemento del set A è relativo a se stesso in $\mathbb{D}$.

\subsection{Proprietà simmetrica}

Una relazione binaria $\mathbb{D}$ su un set A è simmetrica se è vero per tutte le coppie $a,b$ in A che $a$ è relativo a $b$ solo se $b$ è relativo ad $a$.\\
$\forall a,b \in A\, :\, a \mathbb{D} b \Leftrightarrow b \mathbb{D} a$

\subsection{Proprietà transitiva}

Una relazione binaria $\mathbb{D}$ su un set A è transitiva se ogni volta che un elemento $a$ è relativo ad un elemento $b$ e $b$ è relativo ad un elemento $c$, allora:\\
$\forall a,b,c \in A\, :\, a \mathbb{D} b\: and\: b \mathbb{D} c \Leftrightarrow a \mathbb{D} c$

\subsection{Relazione di Equivalenza}

Una relazione binaria che è allo stesso tempo riflessiva, simmetrica e transitiva è detta equivalente.\\
La notazione su due elementi $a,b$ di un set è $a \sim b$.

\subsection{Chiusura transitiva}

La chiusura transitiva di una relazione $\mathbb{D}$ è un'altra relazione $\mathbb{D}^+$ che
rappresenta la più piccola relazione transitiva tale che $\mathbb{D} \subset \mathbb{D}^+$.

\section{Funzioni}

\subsection{Definizione}

Una funzione è una relazione tra un set di input e un set di output, con la proprietà che ogni input è relativo ad un solo output.\\
Una funzione è comunemente indicata dal suo dominio di partenza X e dal suo codominio Y: \\
$f\, :\, X \to Y$


\subsection{Funzione di arietà n}

Una funzione di arietà n (o n-aria) e definita su un set S è così indicata:\\
$f\, :\, S^n \to S$

\subsection{Funzione Iniettiva}

Una funzione è detta iniettiva se mappa sempre un elemento del suo dominio ad uno ed un solo elemento del suo codominio.\\
Se $f$ è una funzione di dominio S:\\
$\forall a,b \in S\, :\, f(a) = f(b) \Rightarrow a = b$

\subsection{Funzione Suriettiva}

Una funzione $f\, :\, X \to Y$ è detta suriettiva se:\\
$\forall y \in Y\, :\, \exists x \in X\, |\, f(x) = y$

\subsection{Funzione Biiettiva}

Una funzione è detta biiettiva se è allo stesso tempo iniettiva e suriettiva.

\section{Stringhe e Linguaggi}

\subsection{Alfabeto}

Un alfabeto è un insieme (detto anche $base\, set$) i cui membri sono simboli, che possono includere lettere, caratteri e numeri.\\
Se L è un linguaggio formale, ossia un set finito o infinito di stringhe di finita lunghezza, allora l'alfabeto di L, indicato con $\Sigma$, è l'insieme di tutti i simboli che possono comparire in una qualunque stringa di L.

\subsection{Lettere e stringhe}

Una stringa è una sequenza finita di membri (simboli) di un alfabeto $\Sigma$. Una lettera è un simbolo.

\subsection{Stringa vuota}

La stringa vuota $\varepsilon$ è un caso particolare di stringa di lunghezza 0.

\subsection{Concatenazione}

La concatenazione di stringhe è l'operazione di unire le stringhe una a seguito dell'altra.\\
La concatenazione si indica con il simbolo $+$:\\
$ "Hello"\, +\, "World"\, =\, "HelloWorld"$

\subsection{Ripetizione}

La ripetizione di stringhe è l'operazione di concatenare la stessa stringa $S$ un numero $n$ di volte.\\
La ripetizione si indica con il simbolo $*$:\\
$ "Hello"*2\, =\, "HelloHello"$

\subsection{Prefisso e Suffisso}

Un prefisso di una stringa $S$ è una sottostringa di $S$ che si presenta all'inizio di $S$.\\
Se $S\, =\, s_1\, ...\, s_n$ allora il suo prefisso è $\hat{S} =\, s_1\, ...\, s_m$ con $ m \leq n$.\\
Un suffisso di una stringa $S$ è una sottostringa di $S$ che si presenta alla fine di $S$.

\section{Grafi}

\subsection{Definizione}

Un grafo è una struttura matematica che rappresenta un insieme di oggetti (vertici) in cui alcune coppie di essi sono connesse da archi. \\
Un grafo è quindi una coppia ordinata $G\, =\, (V,E)$ che comprende un insieme V di vertici e un insieme E di archi, che sono associati a V come subset di due elementi di V.

\subsection{Diretti / indiretti}

Un grafo indiretto (o semplice) è un grafo in cui gli archi non hanno orientamento, pertanto considerando due archi $(x,y),(y,x)$ dove $ x,y \in V$:\\
L'arco $(x,y)$ è identico all'arco $(y,x)$.\\
Questo significa che gli archi sono coppie non ordinate di vertici. In un grafo con $n$ vertici e senza cicli possiamo dire che il numero massimo di archi è $\frac{n*(n-1)}{2}$
\\
\\
Un grafo diretto è un grafo in cui gli archi hanno orientamento. Gli archi sono rappresentati come frecce che collegano un vertice ad un altro. Essendo in questo caso E un insieme di coppie ordinate, possiamo dire che:\\
Un arco $(x,y)$ è considerato diretto da $x$ a $y$.

\subsection{Bipartiti}

Un grafo bipartito è un grafo in cui l'insieme V di vertici può essere diviso in due insiemi disgiunti e indipendenti W e X, di modo che ogni arco connetta un vertice in W con un vertice in X.\\
Si indica con $G\, =\, (W,X,E)$ dove $ V\, =\, W \cup X\, and\, W \cap X\, =\, \emptyset$

\subsection{Nodi sorgente e destinazione}

In un grafo diretto, è possibile definire nodi sorgente e nodi destinazione. I nodi sorgente sono quelli per cui il numero di archi in input è $0$, mentre i nodi destinazione sono quelli per cui il numero di archi in output è$0$.\\
Per cui, se $v \in V$ è un nodo sorgente, il suo indegree sarà 0:\\
$deg^-(v)\, =\, 0$\\
Per cui, se $v \in V$ è un nodo destinazione, il suo outdegree sarà 0:\\
$deg^+(v)\, =\, 0$\\


\subsection{Funzione di etichettatura per archi e nodi}

In un generico grafo G, è possibile definire funzioni di etichettatura (o di colorazione) dei nodi. Definendo un insieme di etichette S e l'insieme dei vertici V, si definisce:\\ 
$f\, :\, V \to S$

\subsection{Cammini e lunghezza dei cammini}

Un cammino in un grafo è una sequenza finita o infinita di archi che collegano una sequenza di vertici distinti l'uno dall'altro. Un cammino di lunghezza $k$ è rappresentato da una sequenza alternata di $k$ vertici ed archi.\\
$v_0,e_0,v_1,e_1,\,...\,v_{k-1},e_{k-1},v_k$

\subsection{Cicli}

Un ciclo è un cammino, inteso come sequenza di vertici ed archi, in cui nessun vertice si ripete eccetto il primo (che è anche l'ultimo). Un ciclo di lunghezza $n$ è detto $n-ciclo$.\\
Si nota che i sottoinsiemi di $V,E$ che formano il ciclo all'interno del grafo $G\, =\, (V,E)$ a loro volta identificano un grafo ciclico.

\subsection{Grafi fortemente connessi / componenti fortemente connesse terminali}

Un grafo diretto è detto fortemente connesso se ogni vertice è raggiungibile da ogni altro vertice.\\
La relazione binaria di essere fortemente connessi è una relazione di equivalenza, e i sottografi indotti dalle classi di equivalenza sono detti componenti fortemente connesse.\\
Le componenti fortemente connesse sono dette terminali se non raggiungono nessun'altra componente a parte se stesse.

\subsection{BSCC - Bottom Strongly Connected Component} 

Una BSCC è una componente fortemente connessa da cui nessun vertice al di fuori della BSCC è raggiungibile.

\subsection{Albero}

Un albero è un grafo indiretto in cui ogni coppia di vertici è connessa da solo un arco. Per questo, ogni grafo indiretto, connesso e aciclico è un albero.

\subsection{In/out degree di un nodo}

L'indegree di un nodo è il numero di archi entranti nel nodo, mentre l'outdegree è il numero di archi uscenti dal nodo. Sia $G\, =\, (V,E)$ e $v \in V$:\\
$indegree\, di\, v\, =\, deg^-(v)$\\
$outdegree\, di\, v\, =\, deg^+(v)$

\section{Matrici}

\subsection{Definizione}

In matematica, una matrice è un vettore bidimensionale di numeri o altri oggetti matematici per i quali sono definite addizione e moltiplicazione. Gli oggetti sono disposti in righe e colonne. Una matrice ha una dimensione indicata dal numero di righe e il numero di colonne.\\
Una matrice A caratterizzata da $n$ righe e $m$ colonne:\\
\\
$
A\, =
\begin{bmatrix}
    a_{11}       & a_{12} & a_{13} & \dots & a_{1m} \\
    a_{21}       & a_{22} & a_{23} & \dots & a_{2m} \\
    \hdotsfor{5} \\
    a_{n1}       & a_{n2} & a_{n3} & \dots & a_{nm}
\end{bmatrix}
$

\subsection{Somma di matrici}

La somma di matrici è definita come addizione degli elementi corrispondenti di due matrici A, B, che pertanto devono essere compatibili, ovvero $row(A) = row(B)\, and\, col(A) = col(B)$.\\
La matrice risultante $C\, =\, A\, +\, B$ avra' quindi lo stesso numero di righe e colonne delle due matrici sommate.\\
Considerando due matrici A,B con $n$ righe ed $m$ colonne:\\
\\
$
\begin{bmatrix}
    a_{11}       & a_{12} & a_{13} & \dots & a_{1m} \\
    a_{21}       & a_{22} & a_{23} & \dots & a_{2m} \\
    \hdotsfor{5} \\
    a_{n1}       & a_{n2} & a_{n3} & \dots & a_{nm}
\end{bmatrix}
+
\begin{bmatrix}
    b_{11}       & b_{12} & b_{13} & \dots & b_{1m} \\
    b_{21}       & b_{22} & b_{23} & \dots & b_{2m} \\
    \hdotsfor{5} \\
    b_{n1}       & b_{n2} & b_{n3} & \dots & b_{nm}
\end{bmatrix}
=
$\\
\\
$
=
\begin{bmatrix}
    a_{11}+b_{11} & a_{12}+b_{12} & \dots & \dots & a_{1m}+b_{1m} \\
    a_{21}+b_{21} & \dots \\
    \dots \\
    a_{n1}+b_{n1}       & \dots
\end{bmatrix}
$

\subsection{Prodotto di matrici}

Considerando una matrice A di dimensioni $n \times m$ e una matrice B di dimensioni $m \times p$, il loro prodotto AB è definito come una matrice di dimensioni $n \times p$, in cui le $m$ componenti sulla riga di A sono moltiplicate con le $m$ componenti sulla riga di B.\\
Pertanto, considerando la matrice $C\, =\, A \times B$, ogni componente $c_{ij}$ di C sarà:\\

$ c_{ij}\, =\, a_{i1}b_{1j} + \dots + a_{im}b_{mj}\, =\, \sum_{k=1}^{m} a_{ik}b_{kj}\, [\forall i \in 1 \dots n\, and\, \forall j \in 1 \dots p]$

\subsection{Prodotto vettore per matrice}

Dato che possiamo definire un vettore come una matrice in cui una delle dimensioni è 1, possiamo anche definire il prodotto tra una matrice A e un vettore $x$. Il prodotto tra matrice e vettore è definito solo nel caso in cui $col(A) = rows(x)$, per cui dobbiamo utilizzare il vettore come se fosse una matrice colonna, ossia una matrice in cui il numero di colonne è 1.\\
Per calcolare il prodotto tra A e $x$ possiamo considerare lo stesso procedimento definito per il prodotto tra una matrice A e una generica matrice B. Otteniamo quindi di dover calcolare il prodotto scalare di $x$ con ognuna delle righe di A.\\
Il risultato di una moltiplicazione tra una matrice A di dimensioni $n \times m$ e un vettore $x$ di dimensioni $m \times 1$ è un vettore colonna di dimesioni $n \times 1$.
%=========================================================================================================

%\subsection{La rete di Petri}  \label{ssec:reteA-PN}


%La Figura~\ref{img:reteA} rappresenta la rete di Petri P/T del primo esercizio (reteA). 
%Il master è  modellato dai posti .... e dalle transizioni ....
%La richiesta del servizio verso l'unico tipo di slave (slave di tipo 1) \`e gestita attraverso un buffer in ingresso (posto Pxx) allo slave e uno in uscita (posto Qxx). 

%%\centerimage{trim=1cm 10cm 3cm 4cm, clip=true}
	%\centerimage{width=\columnwidth}
%{ReteLettoriScrittori.pdf}{img:reteA}
	%{Modello P/T della reteA}


%\subsection{I risultati}  \label{ssec:reteA-res}

%%===================== TEST 2 FMS 
%\begin{table}
	%\centering
	%%\includegraphics[width=\columnwidth]{imgs/ztest2.pdf}
	%\caption{Performance result  for ReteA}
	%\label{tab:reteA}
%\end{table}
%%===================== 

%La Tabella~\ref{tab:reteA} elenca la dimensione dello spazio degli stati al variare del numero $M$ di master e $S$ di slave. Si pu\`o osservare come, al variare di ...., il numero di stati .... aumenta/diminuisce in modo lineare/quadratico ...

%\begin{equation} \label{eq:xii}
	%xi_i = (I - T_i)^{-1} \cdot
			%\sum^m_{j=i+1} (F_i \cdot xi_j) \qquad i \leq k
%\end{equation}%


%A CSLTA  property over the set $AP$ of atomic proposition is defined as
%\begin{equation} 
  %%	\text{\emph{(\CSLTA\ state formula)}\qquad}
	%\Phi ::= p ~|~ \neg\Phi ~|~ \Phi \wedge \Phi ~|~ 
			 %%\mathcal{S}_{\bowtie \lambda}(\Phi) ~|~ 
			 %\mathcal{S}_{\bowtie\lambda}(\Phi)  ~|~
			 %\mathcal{P}_{\bowtie\lambda}(\mathcal{A})  \qquad~
%\end{equation}



%\begin{algorithm}
  %\begin{algorithmic}
    %\Function{ModelCheck}{$\{Z_j\}$ components of ${Z}$, $s_0$ : initial state}
      %\State $\pi^{(0)} : S\times Z \rightarrow {R}$
         %\Comment{sparse vector of state probabilities}
      %\For{each  $Z_j$,  taken in forward topological order} %, with $0 < j \leq K$}
         %\State $H_j =$ all the tuples $(s,z)$ with 
                  %$\pi^{(j-1)}[(s,z)] \neq 0 \,\wedge\, z \in Z_j$ 
      %\EndFor
      %\State\Return{$\pi^{(K)}[\top]$}
    %\EndFunction
  %\end{algorithmic}
  %\caption{Pseudocode of ......}\label{algo:fwd:otf}
%\end{algorithm}














\end{document}
