Computer Science Homework Solutions
Problem
#5819

Simple Prolog

Simple Prolog: Please, find the assignment in the file attached. If possible, write as much comment as you can - I really need to understand this material. Thank you for your time.

Attached file(s):
Attachments
hw.doc  View File

Attachment Content Summary (Note: view attachment at the above link before purchasing. Actual attachment content may vary slightly from that shown below.)

hw.doc
PROLOG

Due 7/10

NOTE: For your homework, you are not allowed to use the builtin
predicate

definitions.  If, for example, you want to use member/2, create you own

version called mymember/2 (or something).  Same for append, reverse,

sort, and many others.You may use any builtin numeric operators, 'is',
the '[' ']'

brackets for lists, fail, not, and maybe some others

(5) In Prolog, implement the predicate cube/2.  This predicate will
relate a list of numbers to a list of numbers that, for each number in
the first list, contains the number, the square of the number, and the
cube of the number.  The only modes for this predicate are: cube(+,-),
and cube(+,+).  E.g.,

?- cube([2,1,4],A).

A = [2,4,8,1,1,1,4,16,64]

?- cube([],[]).

yes.

?- cube([5],[5,25,125]).

yes.

?- cube([2,3],[2,3,4]).

no.

(5) In Prolog, implement the predicate dotProduct/3.  This predicate
will relate two vectors (represented as lists) to their dot product.
 The only modes for this predicate are: dotProduct(+,+,-), and
dotProduct(+,+,+).  E.g.,

?- dotProduct([1,2,3],[5,5,5],A).

A = 30

?- dotProduct([2],[12],24).

yes.

?- dotProduct([],[0],0).

yes.

?- dotProduct([2,3],[2,3,4],17).

no.

(45) In Prolog, create an ADT for Sets.  Each Set will be represented
as a list of unique atoms.  Assume the same semantics as in Hw3.

(5) setAddElt(E,S1,S2).

S2 = S1 Union {E} 

Assume modes: setAddElt(+,+,-), and SetAddElt(+,+,+).

(5) setDelElt(E,S1,S2).

S2 = S1 - {E}

Assume modes: setDelElt(+,+,-), and SetDelElt(+,+,+).

(5) setMember(E,S).

return E element-of S

Assume any mode.

(10) setEqual(S1,S2).

return S1 == S2 (in Prolog)

Assume modes: setEqual(+,+).

(10) SetUnion(S1,S2,S3).

S3 = S1 Union S2

Assume modes: setUnion(+,+,-), and SetUnion(+,+,+).

(10) Set Intersect(S1,S2,S3).

S3 = S1 Intersection S2

Assume modes: setIntersect(+,+,-), and SetIntersect(+,+,+).

(20) Because Prolog's search engine has the ability to backtrack to find
a solution, Prolog can easily be used to implement a top-down parser.

Assume the following Context-Free-Grammar (CFG) for Boolean Expressions,
with start symbol E.

E --> A or E | A

A --> B and A | B

B --> not B | C

C --> '(' E ')' | true | false

Using Prolog, construct a top-down parser that can be used to parse and
evaluate arbitray Boolean expressions. e.g.,

?- parse(['(',true,and,false,')',or true],V).

V = true.

?- parse([true,or,true,and,false],V).

V = true.

?- parse([true,or,or,true,or,false],V).

No.

Hint: Create a different predicate for each nonterminal in the grammar.

(25) Assume, you only have the numbers 1, 2, 3, and 4.  Further assume
that you only have the operators '+' and '*'.  Lastly, assume that you
can only use a number once.

Using Prolog, determine the number of arithmetic expressions that can be
create to equate to the numbers 30, 31, 32, 33, 34, and 35.  

For example, there are 44 equations that equal 20, e.g.,

?- findExpr(20,E).

E = [1, *, [4, *, [2, +, 3]]] ;

E = [1, *, [4, *, [3, +, 2]]] ;

E = [1, *, [[2, +, 3], *, 4]] ;

E = [1, *, [[3, +, 2], *, 4]] ;

E = [4, *, [2, +, 3]] ;

E = [4, *, [2, +, [1, *, 3]]] ;

E = [4, *, [2, +, [3, *, 1]]] ;

E = [4, *, [3, +, 2]] ;

...

Hint: Use the following as a starting place.

findExpr(N,E):-

    generateExpr(...),

    computeValue(...).
Solution
What is this?
By OTA - Overall OTA Rating
Tyler Xie, MSc (IP) - 4.5/5
Purchase Cost Now
$2.19 CAD (was ~$55.86)
Included in Download
  • Plain text response
  • Attached file(s):
    • hw_Reply.doc
$2.19 Instant Download
Add to Cart
Why you can trust BrainMass.com
  • Your Information is Secure
  • Best Online Academic Help Service
  • Students find real academic Success
Related Solutions
Browse