This commit is contained in:
Alice 2023-09-26 11:19:16 +01:00
parent 36e3ad586c
commit d5ca6727b4
14 changed files with 851 additions and 0 deletions

View file

@ -0,0 +1,91 @@
🌫 18 Setembro 2023 - #MFES
## Ficha 1
> [!note]
> As resoluções dos exercícios aqui contidos podem conter erros. Se detetares um problema (e se o souberes resolver) por favor contacta-nos.
> [!help]+ Ex 1 (Configuração de produtos)
> Certos produtos, como é o caso dos automóveis, são altamente personalizáveis, mas podem haver dependências entre as configurações. Os clientes podem não estar cientes de todas essas dependências, e poderão escolher opções de configuração inconsistentes.
> Como são muitas configurações e muitas dependências, podemos usar um SAT solver para verificar se o cliente escolhe opções de configuração consistentes. Para isso, podemos seguir os seguintes passos:
>
> 1. Codificar as dependências entre configurações como uma formula proposicional $\psi$
> 2. Codificar as opções selecionadas pelo cliente como uma fórmula proposicional $\phi$.
> 3. Usar o SAT solver para verificar se $\psi \land \phi$ não é contraditório.
>
> Considere agora a seguinte dependência entre as configurações disponíveis para a personalização de um automóvel:
>
> *"O ar condicionado Thermotronic comfort requer uma bateria de alta capacidade, exceto quando combinado com motores a gasolina de 3,2 litros."*
>
> Será que um cliente pode escolher o ar condicionado Thermotronic comfort, uma bateria de pequena capacidade e não escolher o motor de 3,2 litros? Como poderia responder a esta pergunta com a ajuda de um SAT solver?
>
> > [!tip]- Resolução
> > Legenda de variáveis utilizadas:
> > A - ar condicionado
> > B - bateria alta capacidade
> > C - motor 3,2 L
> >
> >$A \land \neg B \implies G \equiv \neg (A \land \neg B) \lor G \equiv \neg A \lor B \lor G$
> >
> >$(\neg A \lor B \lor G) \land A \land \neg B \land \neg G$ ----- SAT?
> >
>
> [!help]+ Ex 3 (Configuração de computadores)
> Uma loja de eletrónica permite aos seus clientes personalizar o seu computador, escolhendo entre dois modelos de motherboards e dois modelos de monitor. Cada computador tem que ter obrigatoriamente uma única motherboard, um único CPU, uma única placa gráfica e uma única memória RAM. O computador poderá ou não ter um monitor. A personalização do computador deverá obedecer às regras:
> 1. A motherboard MB1 quando combinada com a placa gráfica PG1, obriga à utilização da RAM1;
> 2. A placa gráfica PG1 precisa do CPU1, exceto quando combinada com a memória RAM2;
> 3. O CPU2 só pode estar instalado na motherboard MB2;
> 4. O monitor MON1 para poder funcionar precisa da placa gráfca PG1 e da memória RAM2.
>
>Codifique este problema em lógica proposicional. Assinale claramente o que denota cada variável proposicional que introduzir e escreva um conjunto de fórmulas proposicionais adequado à sua modelação.
>
> > [!hint]- Resolução
> > Legenda de variáveis utilizadas:
> > $CPU_1; CPU_2; RAM_1; RAM_2; MB_1; MB_2; PG_1; PG_2; MON_1; MON_2$
> >
> > Problema modelado:
> > 1. $CPU_1 \lor CPU_2$
> > 2. $CPU_1 \implies \neg CPU_2$
> > 3. $RAM_1 \lor RAM_2$
> > 4. $RAM_1 \implies \neg RAM_2$
> > 5. $MB_1 \lor MB_2$
> > 6. $MB_1 \implies \neg MB_2$
> > 7. $PG_1 \lor PG_2$
> > 8. $PG_1 \implies \neg PG_2$
> >
> > 9. $MB_1 \land PG_1 \implies RAM_1$
> > 10. $PG_1 \implies CPU_1 \lor RAM_2 \equiv PG_1 \land \neg RAM_2 \implies CPU_1$
> > 11. $CPU_2 \implies MB_2$
> > 12. $MON_1 \implies PG_1 \land RAM_2$
>
> Indique, apenas por palavras, como poderia usar um SAT solver para testar as consistências deste conjunto de regras.
>
> Indique, apenas por palavras, como usaria um SAT solver para se pronuncias quanto à velocidade das seguintes afirmações:
> (a) O monitor MON1 só poderá ser usado com uma motherboard MB1.
> > [!hint]- Resolução
> > ??? $T \models MON_1 \implies MB_1$
> > $T, \neg (MON_1 \implies MB_1) UNSAT$
> > > [!info] $T \models F$ sse $T, \neg F UNSAT$
>
> (b) Um cliente pode personalizar o seu computador da seguinte forma: uma motherboard MB2, o CPU1, a placa gráfica PG2 e a memória RAM1.
> >[!hint]- Resolução
> >$T, MB_2 \land CPU_1 \land PG_2 \land RAM_1$ ---- SAT?
> [!help]+ Ex 2 (Distribuição de Gabinetes)
> Considere que temos 3 gabinetes e queremos distribuir 4 pessoas (Ana=1, Nuno=2, Pedro=3 e Maria=4) por esses gabinetes. Para codificar este problema em lógica proposicional, , vamos ter um conjunto de variáveis proposicionais $x_{p,g}$ com a seguinte semântica:
> $x_{p,g}$ é verdade sse a pessoa $p$ ocupa o gabinete $g$, com $p=1..4$ e $g=1..3$
>
> Considere que forem estipuladas as seguintes regras de ocupação de gabinetes:
> 1. Cada pessoa ocupa um único gabinete.
> 2. O Nuno e o Pedro não podem partilhar gabinete.
> 3. Se a Ana ficar sozinha num gabinete, então o Pedro também terá que ficar sozinho num gabinete.
> 4. Cada gabinete só pode acomodar, no máximo, 2 pessoas.
>
> Escreve um conjunto de fórumlas proposicionais adequado à modelação destas regras.
>
> >[!tip]- Resolução
> > [[Ficha1_ex2.excalidraw]]

View file

@ -0,0 +1,6 @@
25 Setembro 2023 - #MFES
## Links de Resolução de Exercícios
1. https://colab.research.google.com/drive/1hz-eUtQNTV_IeOh2mvOWvm0uG7ob5vGG?usp=sharing
2. https://colab.research.google.com/drive/1GLws5mIyZhtMvVPQ5ZN4rnJnoccdJWGj?usp=sharing
3.

123
MFES/MFES - T - Aula 2.md Normal file
View file

@ -0,0 +1,123 @@
18 Setembro 2023 - #MFES
# Conteúdo
1. [[MFES/T - Aula 2#1. Intro|Intro]]
1. [[MFES/T - Aula 2#1.1 SAT|SAT]]
2. [[MFES/T - Aula 2#1.2 Proposicional Logic (PL)|Lógica Proposicional]]
3. [[MFES/T - Aula 2#SAT Solvers|SAT Solvers]]
# 1. Intro
*Formal modeling* - formally represent the system and its properties in the syntactic conventions that the tool understands and can process.
Formal Logic = logical language (logical symbols + non-logical symbols) + semantics +proof system
### 1.1 SAT
<iframe title="Boolean Satisfiability Problem - Intro to Theoretical Computer Science" src="https://www.youtube.com/embed/uAdVzz1hKYY?feature=oembed" height="113" width="200" allowfullscreen="" allow="fullscreen" style="aspect-ratio: 1.76991 / 1; width: 100%; height: 100%;"></iframe>
The Boolean satisfiability (SAT) problem:
Find an assignment to the propositional variables of the formula such that the formula evaluates to TRUE, or prove that no such assignment exists.
- SAT is an NP-complete decision problem.
- SAT was the first problem to be shown NP-complete.
- There are no known polynomial time algorithms for SAT.
Usually SAT solvers deal with formulas in conjunctive normal form (CNF)
- **literal**: propositional variable or its negation A, ¬A, B, ¬B, C, ¬C
- **clause**: disjuntion of literals. (A _ ¬B _ C)
- **conjunctive normal form**: conjuction of clauses. (A _ ¬B _ C) ^ (B _ ¬A) ^ ¬C
> [!info]+ Cook's theorem(1971)
> SAT is NP-complete
## 1.2 Proposicional Logic (PL)
>[!note] Nota
>Esta secção basicamente só contém revisão de conceitos. Aconselha-se a ver a coisa rapidamente, porque é só a formalidade de lógica escrita por extenso.
Let $A$ be an assignment and let $F$ be a formula. If $A(F) = 1$, then we say **$F$ holds under assignment**, or **$A$ models $F$.**
We write A $\models F$ iff $A(F)=1$, and $A \not \models F$ iff $A(F) = 0$.
An assignment is a function $A$ : $V_{prop} \implies {0,1}$ , that assigns to every
propositional variable a truth value. An assignment $A$ naturally extends to all formulas, $A$ : **Form** $\implies {0,1}$. The truth value of a formula is computed using **truth tables**:
| F | $A$ | $B$ | $\neg A$ | $A \land B$ | $A \lor B$ | $A \implies B$ | $A \iff B$ | $\bot$ | $\top$ |
| --------- | --- | --- | -------- | ----------- | ---------- | -------------- | ---------- | ------ | ------ |
| $A_1 (F)$ | 0 | 1 | 1 | 0 | 1 | 1 | 0 | 0 | 1 |
| $A_2 (F)$ | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 1 |
| $A_3 (F)$ | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 0 | 1 |
| $A_4 (F)$ | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 |
A formula $F$ is:
1. **valid** iff it holds under every assignment. We write $\models F$. A valid formula is called a *tautology*.
2. **satisfiable** iff it folds (true) under some assignment.
3. **unsatisfiable** iff it holds under no assignment. An unsatisfiable formula is called a *contradiction*.
4. **refutable** iff it is not valid.
> [!tip]+ Proposition
> $F$ is **valid** iff $\neg F$ is **unsatisfiable**.
- $F \models G$ iff for every assignment $A$, if $A \models F$ then $A \models G$. We say $G$ is a **consequence** of $F$.
- $F \equiv G$ iff $F \models G$ and $G \models F$. We say $F$ and $G$ are **equivalent**.
- Let $\Gamma = { F_1, F_2, F_3,... }$ be a set of formulas.
- $A \models \Gamma$ iff $A \models F_i$ for each formula $F_i$ in $\Gamma$. We say $A$ models $\Gamma$.
- $\Gamma \models G$ iff $A \models \Gamma$ implies $A \models G$ for every assignment $A$. We say $G$ is a **consequence** of $\Gamma$.
> [!tip]+ Proposition
> - $F \models G$ iff $\models F \implies G$.
> - $\Gamma \models G$ and $\Gamma$ finite iff $\models \land \Gamma \implies G$.
>
- $\Gamma$ is *consistent* or *satisfiable* iff there is an assignment that models $\Gamma$.
- We say that $\Gamma$ is inconsistent or unsatisfiable iff there is not consistent and denote this by $\Gamma \models \bot$.
> [!tip]+ Proposition
> - {$F, \neg F$} $\models \bot$
> - If $\Gamma \models \bot$ and $\Gamma \subseteq \Gamma '$, then $\Gamma ' \models \bot$
> - $\Gamma \models F$ iff $\Gamma, \neg F \models \bot$
- Formula $G$ is a subformula of formula F if it occurs syntactically within F
- Formula G is a strict subformula of F if G is a subformula of $F$ and $G \neg = F$
**Basic Equivalences:**
1. $\neg \neg A \equiv A$
2. $A \lor A \equiv A$
3. $A \land A \equiv A$
4. $A \land \neg A \equiv \bot$
5. $A \lor \neg A \equiv \top$
6. $A \lor B \equiv B \lor A$
7. $A \land B \equiv B \land A$
8. $A \land \top \equiv A$
9. $A \lor \top \equiv \top$
10. $A \land \bot \equiv \bot$
11. $A \lor \bot \equiv A$
12. $A \land (B \lor A) \equiv A$
13. $A \land (B \lor C) \equiv (A \land B) \lor (A \land C)$
14. $A \lor (B \land C) \equiv (A \lor B) \land (A \lor C)$
15. $\neg (A \lor B) \equiv \neg A \land \neg B$
16. $\neg (A \land B) \equiv \neg A \lor \neg B$
17. $A \implies B \equiv \neg A \lor B$
18. $A \iff B \equiv (A \implies B) \land (B \implies A)$
# 2. SAT Solvers
- There are several techniques and algorithms for SAT solving.
- Usually SAT solvers receive as input a formula in a specific syntatical format.
- SAT solvers deal with formulas in **conjunctive normal form (CNF)**.
- Most current state-of-the-art SAT solvers are based on the **Davis-Putnam-Logemann-Loveland (DPLL) framework**.
## 2.1 DPLL Framework
The idea is to **incrementally construct an assignment compatible with a CNF**, propagating the implications of the decisions made that are easy to detect and simplifying the clauses.
A CNF is satisfied by an assignment if all its clauses are satisfied. And a clause is satisfied if at least one of its literals is satisfied.