Вы находитесь на странице: 1из 5

21/08/14 10:56 am Assignments

Page 1 of 5 https://t-square.gatech.edu/portal/tool/7aad5d84-39df-4119-b421-b45bb862ee54?panel=Main
Assignment - In progress
Complete the form, then choose the appropriate button at the bottom.
Title Project 1
Due Sep 15, 2014 3:00 am
Status Not Started
Grade Scale Points (max 50.0)
Modified by instructor Aug 21, 2014 10:35 am
Instructions
!"#$%
The goal of Knowleuge-Baseu AI is to uevelopment human-level, human-like intelligence. To that enu, one
way of evaluating the success of KBAI agents is to have them take human intelligence tests. In this pioject,
you will uevelop agents that can auuiess a specific intelligence test. In paiticulai, in this pioject, youi
agents will solve 2x1 visual analogy pioblems using piopositional iepiesentations.
&'()'*(+%
Besign an agent that can answei 2x1 visual analogy pioblems baseu on piopositional iepiesentations.
You will have access to 2u sample pioblems to use in uesigning youi agent. Aftei you submit youi coue,
youi agent will be iun against these 2u basic pioblems, as well as 2u auuitional testing pioblems that you
have not seen befoie. You will also wiite a uesign iepoit of ioughly 1uuu woius uesciibing the way youi
algoiithm woiks, its ielative stiengths, anu its ielative weaknesses.
!(,,*-. 0,#),(1%
To get staiteu, uownloau the coue package attacheu to this assignment. The coue package is available in
two languages: }ava anu Python. You may choose to use eithei. Containeu in the package aie thiee things:
the coue, the API, anu the sample pioblems.
23( 4"1(%
Fiist, the uownloauable package has a numbei of eithei }ava oi Python files: Pioject1, PioblemSet,
RavensPioblem, RavensFiguie, Ravens0bject, RavensAttiibute, anu Agent. 0f these, you shoulu "-$5
21/08/14 10:56 am Assignments
Page 2 of 5 https://t-square.gatech.edu/portal/tool/7aad5d84-39df-4119-b421-b45bb862ee54?panel=Main
mouify the Agent class. You may make changes to the othei classes to test youi agent, wiite uebug
statements, etc. Bowevei, when we test youi coue, we will use the ")*.*-#$ veisions of these files as
uownloaueu heie. Bo not iely on changes to any class except foi Agent to iun youi coue. In auuition to
Agent, you may also wiite youi own auuitional files anu classes foi inclusion in youi pioject.
In Agent, you will finu two methous: a constiuctoi anu a Solve methou. The constiuctoi will be calleu at
the beginning of the piogiam, so you may use this methou to initialize any infoimation necessaiy befoie
youi agent begins solving pioblems. Aftei that, Solve will be calleu on each pioblem. You shoulu wiite the
Solve methou to ietuin its answei to the given question, eithei "1", "2", "S", "4", "S", oi "6". Note these
shoulu be ietuineu as Stiings. You may uo all the piocessing within Solve, oi you may wiite othei
methous anu classes to help youi agent solve the pioblems.
When iunning, the piogiam will automatically loau questions fiom the Pioblems foluei. It will then ask
youi agent to solve each pioblem one by one anu wiite the iesults to Results.txt. You may check
Results.txt to see how well youi agent peifoimeu.
23( 678:
Incluueu in the uownloauable is the API foi inteiacting with the coue (APIinuex.html in the
uownloauable). You may use this anu the in-line comments to unueistanu the stiuctuie of the pioblems.
Biiefly, howevei:
Pioject1: The main uiivei of the pioject. This file will loau each pioblem fiom a file, auu it to a
pioblem set, senu each pioblem to youi agent one by one, anu wiite the iesults to Results.txt.
Agent: The class in which you will uefine youi agent. When you iun the pioject, youi Agent will be
constiucteu, anu then its Solve methou will be calleu on each RavensPioblem. At the enu of Solve,
youi agent shoulu ietuin an answei foi that pioblem.
PioblemSet: A list of RavensPioblems.
RavensPioblem: A single pioblem, such as the one shown eailiei in this uocument. Incluueu in
RavensPioblem is eithei a BashNap (}ava) oi Bictionaiy (Python) of the inuiviuual Figuies (that is,
the squaies labeleu "A", "B", "C", "1", "2", etc.) fiom the pioblem. The RavensFiguies associateu with
keys "A", "B", anu "C" aie the pioblem itself, anu those associateu with the keys "1", "2", "S", "4", "S",
anu "6" aie the potential answei choices. RavensPioblem also has a Stiing iepiesenting the name of
the pioblem anu a Stiing iepiesenting the type of pioblem ("2x1", "2x2", oi "SxS").
RavensFiguie: A single squaie fiom the pioblem, labeleu eithei "A", "B", "C", "1", "2", etc.
RavensFiguies contain lists of Ravens0bjects. In the example above, the squaies labeleu "A", "B", "C",
"1", "2", "S", "4", "S", anu "6" woulu each be sepaiate instances of RavensFiguie, each with a list of
Ravens0bject.
Ravens0bject: A single object, typically a shape, within a RavensFiguie, such as a ciicle oi squaie.
Foi example, in the pioblem above, the Figuie "C" woulu have two Ravens0bjects, one foi each
squaie in the figuie. Ravens0bjects contain a name anu a list of RavensAttiibutes.
RavensAttiibute: A single vaiiable-value paii. Foi example, foi the squaies in figuie "C", each woulu
have two RavensAttiibutes: shape:squaie anu fill:no. ueneially, but not always, the iepiesentation
will only have those attiibutes that vaiy within the pioblem; foi example, in the pioblem above,
'size' uoes not vaiy, anu so 'size' is not an attiibute in the iepiesentation. This will not always be
tiue, howevei.
23( 7)"9$(:;%
Incluueu in the uownloauable aie twenty pioblems foi you to test youi agent on. You can see images in
the Pioblems (Images) foluei. The piopositional iepiesentations foi the pioblems aie locateu in the
Pioblems foluei. Insiue the Pioblems foluei aie subfolueis foi each Pioblem Set. "Basic Pioblems"
contains the main pioblems youi agent must solve. "Challenge Pioblems" contains a hanuful of auuitional
haiuei pioblems, anu "Classmates' Pioblems" contains pioblems that youi classmates have uesigneu.
Challenge anu Classmates' pioblems aie optional.
21/08/14 10:56 am Assignments
Page 3 of 5 https://t-square.gatech.edu/portal/tool/7aad5d84-39df-4119-b421-b45bb862ee54?panel=Main
All pioblems will automatically be loaueu into RavensPioblem objects by Pioject1.py oi Pioject1.java, so
you uon't neeu to woiiy about uealing with the input youiself. Bowevei, in uesigning youi agent, you'll
likely want to look at the iepiesentations to get a feel foi what kinu of infoimation they pioviue.
Each iepiesentation staits with thiee lines foi the pioblem's name (e.g. "2x1 Basic Pioblem u1"), type
(e.g. "2x1"), anu coiiect answei (e.g. "S"). Then, each figuie of the pioblem is uefineu by its name: "A", "B",
"C", "1", "2", "S","4", "S", oi "6". 0nuei each figuie is a list of objects in the figuie, nameu staiting with "Z"
anu woiking backwaius. The objects aie inuenteu once. Then, unuei each object is a list of attiibutes,
sepaiateu by colons, such as shape:squaie anu fill:no. These aie inuenteu twice.
Foi example, the following is the fiist poition of the iepiesentation foi the pioblem above:
2x1 Problem 06 (the name of the problem)
2x1 (the type of problem, either 2x1, 2x2, or 3x3)
5 (the correct answer to the problem)
A (the first figure)
Z (the first shape in the first figure)
shape:plus (an attribute of the first shape)
angle:0 (an attribute of the first shape)
Y (the second shape in the first figure)
shape:plus (an attribute of the second shape)
angle:0 (an attribute of the second shape)
B (the second figure)
Z (the first shape in the second figure)
shape:plus (an attribute of the first shape)
angle:45 (an attribute of the first shape)
Y (the second shape in the second figure)
shape:plus (an attribute of the second shape)
angle:45 (an attribute of the second shape)

2(;,*-. 7)"9$(:;%
In auuition to the 2u pioblems uownloaueu with the coue, youi agents will also be iun against 2u Testing
Pioblems that you have not seen befoie. These pioblems will test youi agent against pioblems that it was
not uesigneu specifically to solve; aftei all, if the goal heie is to cieate human-level, human-like
intelligence, then youi agent shoulu be able to auuiess new pioblems so long as they aie in a foimat that
the agent unueistanus.
These Testing Pioblems will be veiy similai to the Basic Pioblems. They will not involve any shapes,
tiansfoimations, oi attiibutes that youi agent has not alieauy encounteieu, but they will use them in new
combinations. ueneially, if youi agent is uesigneu sounuly anu geneially, you shoulu expect it to get
ioughly as many Testing Pioblems as Basic Pioblems coiiect. When giauing, youi agent will be iun
against the Basic Pioblems fiist, then any Challenge oi Classmates' pioblems, then the Testing Pioblems.
<3(<=6-;+()>?%
A key aspect of Knowleuge-Baseu AI is leaining, but leaining is facilitateu by feeuback. It woulu be
uifficult foi youi agent to leain if it uiu not know what pioblems it hau gotten iight oi wiong in the past.
While it's completing the pioblems, youi agent has the option to check its answeis using the
checkAnswei methou in RavensPioblem. The checkAnswei methou iequiies that the agent give an
answei, anu in ietuin, the checkAnswei methou ietuins the coiiect answei. 0nce youi agent has calleu
checkAnswei on a pioblem, it cannot change its answei to the pioblem; in othei woius, youi agent
cannot change its answei aftei seeing the coiiect answei. Bowevei, it can use the knowleuge of the
coiiect answei to change its own ieasoning so that it has a bettei chance of getting futuie pioblems
21/08/14 10:56 am Assignments
Page 4 of 5 https://t-square.gatech.edu/portal/tool/7aad5d84-39df-4119-b421-b45bb862ee54?panel=Main
coiiect.
Note that using the checkAnswei methou is optional. The Solve methou shoulu always ietuin youi agent's
answei to the pioblem. If youi agent calleu checkAnswei befoie ietuining an answei at the enu of Solve,
howevei, the answei passeu to checkAnswei will be useu in scoiing.
@AB*<*(-<5%
Efficiency can be a majoi concein with these agents; some pioblems can iequiie ieasoning that takes an
enoimous amount of time. It is acceptable foi youi agent to take a few minutes to auuiess the pioblems,
but it shoulu not take significantly longei than that. Bowevei, youi agent shoulu show some signs of
piogiess to show that it is not stuck in an infinite loop. Foi example, you may use piint statements to
output when each pioblem has been solveu oi when a step has been successfully completeu.
C(;*.- D(E"),%
In auuition to youi agent, you shoulu also wiite anu submit a uesign iepoit of ioughly 1uuu woius. This
uesign iepoit shoulu uo a numbei of things. Fiist, it shoulu uesciibe the ieasoning youi agent uses. Bow
uoes it woik. Seconu, it shoulu uesciibe how the agent comes to some of its coiiect answeis. Thiiu, it
shoulu uesciibe why youi agent makes some of the mistakes it uoes. Fouith, it shoulu uesciibe what
coulu be uone to impiove the agent if you hau moie time, iesouices, oi piocessing powei. Youi uesign
iepoit can incluue uiagiams in auuition to the ~1uuu woius.
0F9:*;;*"-%
To submit youi pioject, uploau eithei Agent.py oi Agent.java as well as any othei new files you have
cieateu that aie necessaiy foi youi agent to iun. Bo -", uploau any of the othei files fiom the oiiginal
uownloauable coue; if you uo, they will be oveiwiitten by oui own veisions of these files.
!)#1*-.%
Youi giaue will be baseu on thiee components:
Youi agent's answei to the 2u Basic Pioblems uownloaueu with the pioject (2u possible points).
Youi agent's answei to 2u Testing Pioblems that you have not seen befoie (2u possible points).
Youi uesign iepoit (1u possible points).
Note that many of the pioblems aie veiy uifficult anu youi agent is ceitainly not expecteu to solve all of
them. A 4S out of Su (9u%) shoulu not be consiueieu the thiesholu foi an A. A SS out of Su woulu be an
amazing scoie. uiaues will be noimalizeu acioss the class as well.
G(;, 7)"H(<,;%
At the conclusion of each pioject, the five best piojects will be selecteu anu, with the stuuents'
peimission, posteu foi public viewing. The selection of the five "best" will be maue in laige pait baseu on
how many pioblems each stuuent's agent gets coiiect, but it may also be baseu paitially on subjective
analysis by the giaueis. If a paiticulai pioject takes a paiticulaily unique appioach, foi example, it may be
selecteu as an exemplaiy pioject even if othei piojects technically peifoimeu bettei.
I*9)#)*(;%
You aie welcome to use exteinal libiaiies. If you choose to uo so, make suie to incluue them in youi
uploau, anu make suie youi coue piopeily accesses them.
JF(;,*"-;K
If you have any questions, uo not hesitate to ask in the pioject help aiea of the Piazza foium.
L",( ," 75,3"- F;();%
Because Python uoes not suppoit piivate vaiiables, it is piogiammatically possible to uiiectly access anu
mouify the coiiectAnswei anu givenAnswei vaiiables in RavensPioblem.py. C" -", #<<(;; ,3(;(
'#)*#9$(; 1*)(<,$5M When we giaue youi coue, the names of these vaiiables will be changeu, anu youi
coue will not iun if you attempt to access these vaiiables uiiectly. Insteau, only access these vaiiables
21/08/14 10:56 am Assignments
Page 5 of 5 https://t-square.gatech.edu/portal/tool/7aad5d84-39df-4119-b421-b45bb862ee54?panel=Main
thiough the checkAnswei methou anu by ietuining youi agent's answei to each pioblem at the enu of the
Solve methou.
Additional resources for assignment
Project1-Java.zip ( 1 MB; Aug 20, 2014 6:41 pm )
Project1-Python.zip ( 1 MB; Aug 20, 2014 6:41 pm )
Submission
Assignment Text
This assignment allows submissions using both the text box below and attached documents. Type your comments in the box below
and use the Add Attachments button to include other documents. Save frequently while working.


Source
Style Format Font Size
Attachments
No attachments yet
Select a file from computer no le selected Choose File

Вам также может понравиться