Learning Outcomes Assessed:
- Demonstrate an understanding of the steps involved in AI application building
- Demonstrate an understanding of the algorithms, building blocks and techniques used in AI.
- Demonstrate the ability to implement a small system incorporating AI techniques.
Search and State Space: Causal Networks
Diagram below is the example of causal network from the real-world manufacturing business model. Causal networks (and Bayesian or belief networks which are similar) are Directed Acyclic Graphs (DAG's) made up of the nodes, each representing a concept and arcs (or edges) which represent the influence. For example productivity affects assembly cost, sales price and assembly design. The degree to which one concept affects another can be represented as the weight on arc (these are listed below the diagram for clarity). These networks can be used to aid decision making and offer Deep Knowledge for Rule Based Systems applications.
Weights and connections represented as prolog relationships:
connected(productivity,assembly_cost,25).
connected(productivity,sales_price,15).
connected(economy_conditions,market_demand,15).
connected(assembly_cost,sales_price,55).
connected(productivity,assembly_design,30).
connected(economy_conditions,assembly_cost,15).
connected(assembly_cost,competitiveness,15).
connected(market_demand,market_share,10).
connected(quality_control,competitiveness,25).
connected(assembly_design,market_demand,30).
connected(assembly_quality,sales_price,30).
connected(assembly_quality,assembly_cost,60).
connected(assembly_design,competitiveness,35).
connected(competitors_advert,market_share,10).
connected(competitiveness,market_share,50).
connected(sales_price,competitiveness,30).
connected(sales_price,market_demand,25).
connected(sales_price,market_share,30).
connected(quality_control,assembly_design,25).
connected(quality_control,market_demand,30).
connected(sales_price,assembly_design,45).
Specification:
- Produce search function (either Breadth First or Best First) which will search between any two concept nodes to see if one affects the other (see indicative marks below). If coding a Heuristic Search you must search in order of descending weight value.
- Comment your code extensively and make sure you use indicative naming for the rule and variable names.
- Don't forget that you can debug and can test constituent prolog rules separately.
Marks will be allocated for:
- Suitable, justified choice of search technique, description, associated problems and description of each. Also a description and justification of how such problems will be dealt with in your implementation.
- proper commenting
- appropriate meaningful variable names
- well formatted and easy to read code
- neat concise solutions
- coding your own sort routine
- for incomplete assignments:
a) working list processing
b) signs of the right thought processes