Inteligenta Artificiala

Nu esti logat.

Munca individuala laborator 1 - Introducere in Prolog, fapte, reguli, comparatii, recursivitate

Punctaj: 80p

Nr. 1

  1. Scrieti o baza de cunostinte care sa ilustreze cat mai bine urmatoarele afirmatii:
    • Pisica este un mamifer.
    • Catelul este un mamifer.
    • Vrabia este pasare.
    • Vrabia spune cip.
    • Pitigoiul este pasare.
    • Pitigoiul spune cip.
    • Paunul este pasare.
    • Mamiferele si pasarile sunt vietati.
    • Pisica spune miau.
    • Paunul spune miau.
    • Catelul spune ham.
    • Pisica e mai puternica decat pitigoiul si decat vrabia. Catelul e mai puternic decat pisica. Paunul e mai puternic decat catelul.

    Pe baza acestor fapte mai definiti voi un predicat acelasi_tip(-Animal1, -Vorba1, -Animal2, -Vorba2), care are ca solutii toate perechile de animale care sunt de acelasi fel (mamifere, pasari), impreuna cu sunetul lor specific.

  2. Scrieti un predicat (calculeaza_numar(-Nr)) care are ca solutii toate numerele naturale de 4 cifre unde:
    • prima cifra e un numar prim par
    • au cifre distincte
    • toate cifrele sunt mai mici strict decat 5
    • penultima cifra e mai mare decat ultima
    Puneti intr-un comentariu primele solutii ale predicatului (sa zicem primele 5 dar puteti pune si mai multe, insa nu toate fiindca s-ar putea sa fie prea multe).
  3. Avand faptele:
    obiect(a).
    obiect(b).
    obiect(c).
    obiect(d).
    Sa se scrie predicatul care obtine toate combinatiile de 4 obiecte (va fi un predicat cu 4 parametri de iesire) cu proprietatile urmatoare:
    • primul element sa nu fie niciodata c.
    • al doilea element sa fie diferit de al 3-lea element.
    • in caz ca primul element este a, al 4 element poate fi doar b sau d.
  4. Fie sirul definit prin z(0)=3, z(n)=3*z(n-1)+2. Sa se creeze un predicat care are ca prim parametru (de intrare) indicele in sir iar in al doilea parametru se calculeaza valoarea elementului din sir cu acel indice.

Nr. 2

  1. Scrieti o baza de cunostinte care sa ilustreze cat mai bine urmatoarele afirmatii:
    • Ceaiul e lichid.
    • Ceaiul este dulce.
    • Prajitura e solida.
    • Prajitura este dulce.
    • Sucul de lamaie este lichid.
    • Sucul de lamaie ese acru.
    • Painea este solida.
    • Painea este sarata.
    • Ceaiul, prajitura, sucul si painea sunt feluri de mancare.
    • Samponul este lichid.
    • Samponul este amar.
    • Dulce si sarat sunt gusturi placute, acru si amar, nu. (si ca sa nu fie obiectii, afirmatia e doar de dragul exercitiului, chiar daca unii nu sunteti de acord cu ea)

    Pe baza acestor fapte mai definiti voi un predicat per_alimente(-Aliment1, -Aliment2) care sa calculeze toate perechiile de alimente(feluri de mancare) in care primul are un gust placut iar celalalt nu.

  2. Scrieti un predicat (calculeaza_numar(-Nr)) care are ca solutii toate numerele naturale de 4 cifre unde:
    • prima cifra e strict mai mare decat 2
    • toate cifrele sunt distincte si pare
    • a doua cifra e mai mare sau egala decat dublul primeia
    • ultimele 2 cifre au modulul diferentei mai mic strict decat 5
    Puneti intr-un comentariu primele solutii ale predicatului (sa zicem primele 5 dar puteti pune si mai multe, insa nu toate fiindca s-ar putea sa fie prea multe).
  3. Avand faptele:
    obiect(a).
    obiect(b).
    obiect(c).
    obiect(d).
    Sa se scrie predicatul care obtine toate combinatiile de 4 obiecte (va fi un predicat cu 4 parametri de iesire) cu proprietatile urmatoare:
    • ultimul element e mai mic decat al doilea
    • al treilea element nu poate fi niciodata d.
    • primul element nu e nici a si nici b daca al 3-lea este c
  4. Fie sirul definit prin z(0)=1, z(n)=1+z(n-1)*2. Sa se creeze un predicat care are ca prim parametru (de intrare) indicele in sir iar in al doilea parametru se calculeaza valoarea elementului din sir cu acel indice.

Nr. 3

  1. Scrieti o baza de cunostinte care sa ilustreze cat mai bine urmatoarele afirmatii:
    • Casa este din piatra.
    • Cabana e din lemn.
    • Blocul e din piatra.
    • Cortul e din panza.
    • Piatra, lemnul si panza sunt materiale.
    • Palatul e din piatra.
    • Piatra e mai rezistenta decat lemnul.
    • Lemnul e mai rezistent decat panza.
    • Palatul si blocul sunt inalte
    • Casa si cortul sunt scunde.

    Pe baza acestor fapte mai definiti voi un predicat mai_rezistent(-Constructie1, -Constructie2), care are ca rezultat, toate perechiile de constructii in care prima e mai rezistenta decat a doua.

  2. Scrieti un predicat (calculeaza_numar(-Nr)) care are ca solutii toate numerele naturale de 4 cifre unde:
    • a doua cifra e divizibila cu 3
    • primele 3 cifre sunt distincte
    • ultimele doua sunt mai mari strict decat 5
    • prima cifra e mai mica decat suma celei de-a doua si celei de-a treia
    • a 4-a cifra este para
    Puneti intr-un comentariu primele solutii ale predicatului (sa zicem primele 5 dar puteti pune si mai multe, insa nu toate fiindca s-ar putea sa fie prea multe).
  3. Avand faptele:
    obiect(a).
    obiect(b).
    obiect(c).
    obiect(d).
    Sa se scrie predicatul care obtine toate combinatiile de 4 obiecte (va fi un predicat cu 4 parametri de iesire) cu proprietatile urmatoare:
    • al doilea element e sigur a daca primul este b sau d.
    • al treilea element poate fi doar a sau c
    • primul element e mai mic sau egal decat ultimul.
  4. Fie sirul definit prin z(0)=2, z(1)=3, z(n)=z(n-1)-3+z(n-2). Sa se creeze un predicat care are ca prim parametru (de intrare) indicele in sir iar in al doilea parametru se calculeaza valoarea elementului din sir cu acel indice.

Nr. 4

  1. Scrieti o baza de cunostinte care sa ilustreze cat mai bine urmatoarele afirmatii:
    • Fotbalul se joaca in echipa.
    • In fotbal se foloseste o minge.
    • Tenisul nu necesita echipa.
    • In tenis se foloseste o minge.
    • Boxul nu necesita echipa.
    • La box nu e nevoie de minge.
    • Baschetbalul se joaca in echipa.
    • In baschetbal se foloseste o minge.
    • Rugby se joaca in echipa.
    • In rugby se foloseste o minge.
    • Fotbalul, tenisul, boxul, baschetbalul, rugby-ul sunt sporturi.
    • Boxul si rugby-ul sunt sporturi violente, celelalte nu.

    Pe baza acestor fapte mai definiti voi un predicat sport_em(?Sport) care are drept solutii toate sporturile care se joaca in echipa, folosesc o minge si nu sunt violente.

  2. Scrieti un predicat (calculeaza_numar(-Nr)) care are ca solutii toate numerele naturale de 4 cifre unde:
    • prima cifra e divizibila cu 5
    • toate cifrele sunt distincte si mai mici sau egale cu 7
    • a doua cifra e mai mare decat prima
    • ultimele 2 cifre sunt impare
    Puneti intr-un comentariu primele solutii ale predicatului (sa zicem primele 5 dar puteti pune si mai multe, insa nu toate fiindca s-ar putea sa fie prea multe).
  3. Avand faptele:
    obiect(a).
    obiect(b).
    obiect(c).
    obiect(d).
    Sa se scrie predicatul care obtine toate combinatiile de 4 obiecte (va fi un predicat cu 4 parametri de iesire) cu proprietatile urmatoare:
    • primul este c sau b daca al treilea element este d
    • al treilea element sa fie diferit de al 4-lea element
    • ultimul element e a.
  4. Fie sirul definit prin z(0)=5, z(n)=2*z(n-1)-3. Sa se creeze un predicat care are ca prim parametru (de intrare) indicele in sir iar in al doilea parametru se calculeaza valoarea elementului din sir cu acel indice.

Nr. 5

  1. Scrieti o baza de cunostinte care sa ilustreze cat mai bine urmatoarele afirmatii:
    • Lalaeaua poate fi galbena sau rosie.
    • Trandafirul poate fi rosu sau alb.
    • Zambila poate fi roz alba sau mov
    • Panseluta e multicolora.
    • Laleaua, trandafirul, zambila si panseluta sunt flori.
    • Trandafirul si panseluta sunt comestibile.
    • Trandafirul miroase mai frumos decat laleaua.
    • Zambila miroase mai frumos decat trandafirul

    Pe baza acestor fapte mai definiti voi un predicat pereche flori(-Fl1,-Fl2) unde cele doua flori au un atribut comun (fie ambele sunt comestibile, fie pot avea aceeasi culoare).

  2. Scrieti un predicat (calculeaza_numar(-Nr)) care are ca solutii toate numerele naturale de 4 cifre unde:
    • prima cifra e intre 3 si 7,
    • ultimele 3 cifre sunt distincte
    • a doua cifra si a 3-a au aceeasi paritate
    • prima cifra e mai mare decat ultima
    Puneti intr-un comentariu primele solutii ale predicatului (sa zicem primele 5 dar puteti pune si mai multe, insa nu toate fiindca s-ar putea sa fie prea multe).
  3. Avand faptele:
    %obiect(nume, greutate)
    obiect(a,10).
    obiect(b,20).
    obiect(c,10).
    obiect(d,15).
    Sa se scrie predicatul care obtine toate combinatiile de 4 obiecte (va fi un predicat cu 4 parametri de iesire) cu proprietatile urmatoare:
    • al doilea element are numele in ordine alfabetica mai mic decat numele celui de-al 3-lea element
    • al treilea element sa fie diferit de al 4-lea element
    • daca ultimul element are greutate 10, atunci primul element este c sau d .
  4. Fie sirul definit prin z(0)=1, z(1)=1, z(2)=1, z(n)=z(n-3)+z(n-2)-z(n-1). Sa se creeze un predicat care are ca prim parametru (de intrare) indicele in sir iar in al doilea parametru se calculeaza valoarea elementului din sir cu acel indice.

Nr. 6

  1. Scrieti o baza de cunostinte care sa ilustreze cat mai bine urmatoarele afirmatii:
    • Bau-Bau si Buhuhu sunt fantome.
    • Zorssiki si Worzziki sunt extraterestri.
    • Coltisor, si Dintisor sunt vampiri.
    • Vampirii sunt mai infricosatori decat extraterestri.
    • Fantomele sunt mai infricosatoare decat vampirii.
    • Bau-Bau are 308 ani, Buhuhu 1070, Zorssiki 430, Worzziki 25, Coltisor si Dintisor au ambii 500.

    Pe baza acestor fapte mai definiti voi un predicat batranel_infricosator(-Nume,-Tip) care are ca solutie toti monstruletii(numele si tipul lor), cu proprietatea ca au varsta peste 400 de ani, si exista un monstrulet astfel incat sa fie mai infricosatori decat acela.

  2. Scrieti un predicat (calculeaza_numar(-Nr)) care are ca solutii toate numerele naturale de 4 cifre unde:
    • ultima cifra nu este divizibila cu 3
    • modulul diferentei dintre prima si a 3-a cifra e mai mic decat 5
    • a doua cifra e mai mare deat a 3-a cifra
    • prima cifra e diferita de celelalte 3.
    Puneti intr-un comentariu primele solutii ale predicatului (sa zicem primele 5 dar puteti pune si mai multe, insa nu toate fiindca s-ar putea sa fie prea multe).
  3. Avand faptele:
    %obiect(nume, greutate)
    obiect(a,10).
    obiect(b,20).
    obiect(c,10).
    obiect(d,15).
    Sa se scrie predicatul care obtine toate combinatiile de 4 obiecte (va fi un predicat cu 4 parametri de iesire) cu proprietatile urmatoare:
    • al treilea element nu este c
    • primele doua elemente au greutati distincte daca ultimul element este a sau b.
    • primul element are numele in ordine alfabetica mai mare decat numele celui de-al 2-lea element
  4. Fie sirurile definite prin a(n)=2*n, si z(0)=1, z(n)=z(n-1)+3*a(n). Sa se creeze un predicat care are ca prim parametru (de intrare) indicele in sirul z iar in al doilea parametru se calculeaza valoarea elementului zn din sir.

Nr. 7

  1. Scrieti o baza de cunostinte care sa ilustreze cat mai bine urmatoarele afirmatii:
    • Sandalele, pantofii, ghetele, cizmele si adidasii sunt incaltaminte.
    • Sandalele se poarta vara.
    • Ghetele si cizmele se poarta iarna.
    • Toamna si primavara se poarta pantofi si ghete
    • Adidasii se poarta in toate anotimpurile.
    • Adidasii sunt mai comozi decat ghetele.
    • Ghetele sunt mai comode decat cizmele.
    • Cizmele sunt mai comode decat sandalele.

    Pe baza acestor fapte mai definiti voi un predicat incaltaminte_anotimp(-Nume,-Anotimp,-Comod) care da pe rand tipurile de incaltaminte(sandale, adidasi etc.) impreuna cu anotimpul in care se poarta, iar in ultimul parametru e pus un '+' daca exista un tip de incaltaminte fata de care sa fie mai comode, si '-' in caz contrar.

  2. Scrieti un predicat (calculeaza_numar(-Nr)) care are ca solutii toate numerele naturale de 4 cifre unde:
    • suma primelor doua cifre este egala cu a treia
    • a 3-a cifra este para, ultima cifra e mai mare decat prima
    • a doua si a 4-a cifra sunt diferite, a 4-a cifra este para
    • Dupa ce ati scris numerele, scrieti in fisierul prolog care rezolva
    • testul si un predicat (calculeaza_numar(Nr)) care are ca solutii aceste numere
    Puneti intr-un comentariu primele solutii ale predicatului (sa zicem primele 5 dar puteti pune si mai multe, insa nu toate fiindca s-ar putea sa fie prea multe).
  3. Avand faptele:
    %obiect(nume, greutate)
    obiect(a,10).
    obiect(b,20).
    obiect(c,10).
    obiect(d,15).
    Sa se scrie predicatul care obtine toate combinatiile de 4 obiecte (va fi un predicat cu 4 parametri de iesire) cu proprietatile urmatoare:
    • al treilea element nu este a
    • primul element este c daca al doilea element are greutate 10 sau 15.
    • ultimul element are numele in ordine alfabetica mai mic sau egal decat numele primului element
  4. Fie sirurile definite prin a(n)=2+n, si z(0)=1, z(n)=2*z(n-1)+a(n)-a(n-1). Sa se creeze un predicat care are ca prim parametru (de intrare) indicele in sirul z iar in al doilea parametru se calculeaza valoarea elementului zn din sir.

Nr. 8

  1. Scrieti o baza de cunostinte care sa ilustreze cat mai bine urmatoarele afirmatii:
    • Morcovul are culoare portocalie.
    • Portocala are culoare portocalie.
    • Marul poate fi verde sau rosu.
    • Fasolea poate fi verde sau galbena.
    • Iarba si trifoiul sunt verdzi
    • Morcovul si fasolea sunt legume.
    • Marul si portocala sunt fructe.
    • Iarba si trifoiul sunt plante furajere
    • Marul e mai dulce decat portocala.
    • Portocala e mai dulce decat fasolea.
    • Fructele si legumele sunt alimente.

    Pe baza acestor fapte mai definiti voi un predicat acelasi_tip(-Aliment1, -Aliment2) care sa calculeze toate perechiile de alimente care au o proprietate comuna (aceeasi culoare sau acelasi tip(ambele legume, ambele fructe)).

  2. Scrieti un predicat (calculeaza_numar(-Nr)) care are ca solutii toate numerele naturale de 4 cifre unde:
    • prima cifra e divizibila cu 4
    • a doua cifra e 2,3 sau 4
    • suma ultimelor doua cifre este numar par
    • prima cifra e mai mare decat ultima
    • prima cifra e diferita de a 2-a cifra
    Puneti intr-un comentariu primele solutii ale predicatului (sa zicem primele 5 dar puteti pune si mai multe, insa nu toate fiindca s-ar putea sa fie prea multe).
  3. Avand faptele:
    %obiect(nume, greutate)
    obiect(a,10).
    obiect(b,21).
    obiect(c,10).
    obiect(d,15).
    obiect(e,8).
    Sa se scrie predicatul care obtine toate combinatiile de 4 obiecte (va fi un predicat cu 4 parametri de iesire) cu proprietatile urmatoare:
    • al doilea element nu are greutate para
    • daca primul element are numele in ordine alfabetica mai mic sau egal decat numele celui de-al treilea element, atunci sigur al treilea este c.
    • ultimul element este diferit de primele doua
  4. Fie sirul definit prin z(0)=1, z(1)=2, z(n)=3*z(n-1)-z(n-2). Sa se creeze un predicat care are ca prim parametru (de intrare) indicele in sirul z iar in al doilea parametru se calculeaza valoarea elementului zn din sir.