Logica proposizionale

a.shatti
Salve a tutti,

ho appena incominciato all'universita' Logica per la Programmazione, sto svolgendo qualche esercizio ma non avendo le soluzioni non so se sono corrette.

-"Aldo va al cinema ma Dario no"
A$\wedge$$\neg$D (Aldo=A; Dario=D)

-"Luigi andra' al cinema o andra' al teatro"
C$\vee$T (Cinema=C; Teatro=T)

-"Se ho lezione di LMB allora e' Martedi' o Venerdi'" (LMB=L; Martedi=M; Venerdi=V)
L $\Rightarrow$ (M $\vee$ V)

-"Non puoi montare sulle montagne russe se sei piu' basso di un metro e se non hai piu' di 16 anni"
(B $\wedge$ $\neg$ A) $\Leftarrow$ $\neg$ M


V=("io vado al cinema") R=("Tu resti a casa")
-"Io vado al cinema se tu resti a casa"
V $\Rightarrow$ R

-"Io vado al cinema solo se tu resti a casa"
V $\Rightarrow$ R

-"Io vado al cinema se e solo se tu resti a casa"
V $\equiv$ R

-"Perche' io vado al cinema e' necessario che tu resti a casa"
R $\Rightarrow$ V

-"Perche' io vado al cinema e' sufficiente che tu resti a casa"
V $\Rightarrow$ R

-"Condizione necessaria e sufficiente perche' io vada al cinema e' che tu resti a casa"
V $\equiv$ R


V=("viaggi a oltre 50 km/h") M=("Prendi la multa")
-"Non superi i 50 km/h"
$\neg$ V

-"Superi i 50 km/h ma non prendi la multa"
V $\wedge$ $\neg$ M

-"Prendi la multa se superi i 50 km/h"
M $\Rightarrow$ V

-"Se non superi i 50 km/h allora non ti fanno la multa"
$\neg$ V $Rightarrow$ $\neg$ M

-"Superare i 50 km/h e' sufficiente per prendere la multa"
V $\Rightarrow$ M

-"Prendi la multa senza superare i 50km/h"
V $\Rightarrow$ $\neg$ M


A=("Aldo ha superato l'esame") B=("Barbara ha superato l'esame") C=("Carlo ha superato l'esame")
-"Solo Carlo ha superato l'esame"
C

-"Solo Aldo non ha superato l'esame"
$\neg$A

-"Solo uno tra Aldo, Barbara e Carlo ha superato l'esame"
A $\vee$ B $\vee$ C

-"Almeno uno tra Aldo, Barbara e Carlo hanno superato l'esame
???

-"Almeno due tra Aldo tra Aldo, Barbara e Carlo hanno superato l'esame"
???

-"Al piu' due tra Aldo, Barbara e Carlo hanno superato l'esame"
???

-"Esattamente due tra Aldo, Barbara e Carlo hanno superato l'esame"
???


Spero di non aver sbagliato topic. Grazie mille dell'attenzione

Risposte
vict85
Prima di tutto, metti tutta la formula tra simboli, verrà visualizzata meglio. Per esempio $A\wedge \neg B$ vs A$\wedge$ $\neg$ B. Devi anche scrivere meno :wink: . Te lo correggo mentre quoto.

"a.shatti":
Salve a tutti,

ho appena incominciato all'universita' Logica per la Programmazione, sto svolgendo qualche esercizio ma non avendo le soluzioni non so se sono corrette.

-"Aldo va al cinema ma Dario no"
$A \wedge \neg D$ (Aldo=A; Dario=D)


Si e no. È corretto se poni \(A\) come "Aldo va al cinema" e \(D\) come "Dario va al cinema". Volendo potresti definire \(\phi(X)\) come "\(X\) va al cinema" e quindi la soluzione sarebbe \(\phi(A)\wedge \neg \phi(D)\) con \(A\) e \(D\) come li hai definiti tu.

"a.shatti":
-"Luigi andra' al cinema o andra' al teatro"
\(C\vee T\) (Cinema=C; Teatro=T)


Discorso simile alla prima.

"a.shatti":
-"Se ho lezione di LMB allora e' Martedi' o Venerdi'" (LMB=L; Martedi=M; Venerdi=V)
\(L \Rightarrow (M \vee V)\)


Ok.

"a.shatti":
-"Non puoi montare sulle montagne russe se sei piu' basso di un metro e se non hai piu' di 16 anni"
\((B \wedge \neg A) \Leftarrow \neg M\)


Qui hai smesso di definire le lettere... In ogni caso è sbagliato. Ragiona sulla tabella della verità di \(\rightarrow\). Insomma cosa implica cosa? Viene prima l'avere meno di 16 anni o il non poter andare sulle montagne russe?

"a.shatti":
V=("io vado al cinema") R=("Tu resti a casa")
-"Io vado al cinema se tu resti a casa"
\(V \Rightarrow R\)


Nel linguaggio comune si potrebbe intendere in entrambe le maniere, ma nella logica il 'se' generalmente corrisponde al \(\leftarrow\). Quindi la risposta corretta è \(R\rightarrow V\). Hai fatto lo stesso errore prima.

"a.shatti":
-"Io vado al cinema solo se tu resti a casa"
\(V \Rightarrow R\)


Il fatto che hai dato la stessa risposta ad entrambe avrebbe dovuto accenderti un campanellino di allarme :-) . Questo è corretto.

"a.shatti":
-"Io vado al cinema se e solo se tu resti a casa"
\(V \equiv R\)


Sicuro che il professore usi \(\equiv\) e non \(\Leftrightarrow\)? Comunque corretto.

"a.shatti":
-"Perche' io vado al cinema e' necessario che tu resti a casa"
\(R \Rightarrow V\)


Che differenza c'è tra questo e "Io vado al cinema solo se tu resti a casa"? L'implicazione è invertita perché se io sono andato al cinema allora è certo che tu sei rimasto a casa. Mentre potrei non andare al cinema anche se tu rimani a casa. Direi che devi ripassare il concetto di implicazione logica.

"a.shatti":
-"Perche' io vado al cinema e' sufficiente che tu resti a casa"
\(V \Rightarrow R\)


A parte il verbo sbagliato nel testo, anche questo è al contrario. Vai a leggere https://it.wikipedia.org/wiki/Condizion ... ufficiente per maggiori informazioni su questa terminologia (tra l'altro non molto comune nella vita reale).

"a.shatti":
-"Condizione necessaria e sufficiente perche' io vada al cinema e' che tu resti a casa"
\(V \equiv R\)


Corretto

"a.shatti":
V=("viaggi a oltre 50 km/h") M=("Prendi la multa")
-"Non superi i 50 km/h"
\(\neg V\)


Sì.

"a.shatti":
-"Superi i 50 km/h ma non prendi la multa"
\(V \wedge \neg M\)


Ok.

"a.shatti":
-"Prendi la multa se superi i 50 km/h"
\(M \Rightarrow V\)


No. Le implicazioni le hai proprio invertite tutte. È l'andare veloce che ti fa prendere la multa.

"a.shatti":
-"Se non superi i 50 km/h allora non ti fanno la multa"
\(\neg V \Rightarrow \neg M\)


Corretto. Sembra che sia il 'se' a metà frase a confonderti.

"a.shatti":
-"Superare i 50 km/h e' sufficiente per prendere la multa"
\(V \Rightarrow M\)


Corretto.

"a.shatti":
-"Prendi la multa senza superare i 50km/h"
\(V \Rightarrow \neg M\)


Perché scomodare l'implicazione, è un semplice \(M \wedge \neg V\) (hai preso la multa ma non hai superato il limite). Adesso è tardi per vedere se le due cose sono equivalenti, dovrei fare qualche calcolo.

"a.shatti":
A=("Aldo ha superato l'esame") B=("Barbara ha superato l'esame") C=("Carlo ha superato l'esame")
-"Solo Carlo ha superato l'esame"
\(C\)


No, ti sei dimenticato il "Solo". Quindi è \(C \wedge \neg A \wedge \neg B\).

"a.shatti":
-"Solo Aldo non ha superato l'esame"
\(\neg A\)


Come prima. Solo Aldo non l'ha superato, quindi gli altri lo hanno fatto. O no? :wink:

"a.shatti":
-"Solo uno tra Aldo, Barbara e Carlo ha superato l'esame"
\(A \vee B \vee C\)


Purtroppo no. Il \(\vee\) è una disgiunzione inclusiva e non esclusiva. Quindi quella formula equivale a chiedere che almeno uno lo ha passato. C'è sicuramente un modo migliore per scriverlo, ma una soluzione è la seguente: \((A \wedge \neg B \wedge \neg C)\vee(\neg A \wedge B \wedge \neg C)\vee(\neg A \wedge \neg B \wedge C)\)

"a.shatti":
-"Almeno uno tra Aldo, Barbara e Carlo hanno superato l'esame
???


Ricordi che \(\vee\) è inclusivo? Bene, questo è il momento di usarlo. La soluzione è \(A \vee B \vee C\).

"a.shatti":
-"Almeno due tra Aldo tra Aldo, Barbara e Carlo hanno superato l'esame"
???


Questo è più complesso. Penso che userei le implicazioni. Infatti se \(\neg A\) allora \(B \wedge C\). In altre parole: \(\bigl(\neg A \rightarrow (B \wedge C)\bigr)\wedge \bigl(\neg B \rightarrow (A \wedge C)\bigr)\wedge \bigl(\neg C \rightarrow (A \wedge B)\bigr)\).

La soluzione non è comunque unica. Questa è la prima che mi è venuta in mente.

"a.shatti":
-"Al piu' due tra Aldo, Barbara e Carlo hanno superato l'esame"
???


Siccome sono in tre, se al più due l'anno passato allora non lo hanno passato tutti e tre. In altre parole \(\neg(A\wedge B\wedge C)\) o equivalentemente \(\neg A\vee \neg B\vee \neg C\).

"a.shatti":
-"Esattamente due tra Aldo, Barbara e Carlo hanno superato l'esame"
???


Questo equivale all'unione dell'ultimo con il penultimo. Insomma \((\neg A\vee \neg B\vee \neg C)\wedge \bigl(\neg A \rightarrow (B \wedge C)\bigr)\wedge \bigl(\neg B \rightarrow (A \wedge C)\bigr)\wedge \bigl(\neg C \rightarrow (A \wedge B)\bigr)\) ma ci sarà qualche altro modo per farlo. Ma comincio ad essere un po' stanco.

Il mio consiglio è, se non ti viene in mente nulla di migliore, enumera tutti i possibili casi. Non sarà elegante, ma non è neanche sbagliato.

"a.shatti":
Spero di non aver sbagliato topic. Grazie mille dell'attenzione


La sezione era corretta e hai rispettato il regolamente in ogni suo punto. :-)

a.shatti
Sei stato veramente gentilissimo! Ti ringrazio e ti auguro una buona giornata

vict85
Prego. Buona giornata anche a te.

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.