---
dg-publish: true
---
🌫 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 (por passos)
> >**Cada pessoa ocupa só um único gabinete.**
> > 1. para cada pessoa p = 1..4
> > 2. pelo menos um gabinete:    $x_{p1} \lor x_{p2} \lor x_{p3}$
> > 3. no máximo 1 gabinete:   $x_{p1} \implies \neg x_{p2} \land x_{p3} \equiv x_{p1} \implies \neg (x_{p2} \lor x_{p3} ) \equiv x_{p2} \implies \neg x_{p3}$
> > 4.