Contents of these pages are currently being ported to my new MkDocs based info pages at info.bb-ai.net You will find more detailed information on my main topics there, but some of the topics have not yet been added to that site.
For students doing projects, some additional resources can be found here.
The following topic areas are described in more detail below:
I've got a separate page for this topic.
Some possibilities include:
Previous project work in this area has examined the flocking
behaviour of sheep and the movement of a sheepdog while
herding sheep. A software platform (based on Prolog and
Tcl/Tk) has been developed which allows high-level coding of
agents as Finite State Machines. A number of Java programs
also exist which support this kind of simulation (for
example Robocode). Hence a student working on this project
will be able to chose from a number of different software
tools as a basis for developing their own system.
A wide variety of different topics in the general area of Knowledge
Representation and Reasoning can be supported. Here are some ideas:
A system for representing and reasoning about verbs could be implemented
using either of the approaches mentioned above for the topic of
"Theories of space, time and matter".
As well as these combination problems, there are further ways in which the
inference patterns that occur with ajectives are not captured by standard
logic. One observation is that many adjectives come in polar opposite
pairs --- for example: hot vs. cold,
tall vs. short etc. Another very
common property of adjectives is that they are vague, in the sense
that there are no definite criteria for their application. (How, high must
a person be in order to count as tall.)
The project would involve three main stages:
I've got a separate page
for this topic.
Although it seems to make possible many
technologies that could be of great benefit to humans, there are
also reasons for concern about potential negative and even
disastrous consequences that could result from the development
of Artificial Intelligence.
Examples: River, Forest, Desert, Hill, Bay, Valley, Estuary.
This research looks at identifying the principal characteristics and
parameters of variation of geographic features.
Goal: develop customisable definitions for one or more feature types
and a (simple) visualisation system which can adapt to users' choice
of definition and identify regions satisfying this definition on the
basis of geographic data.
Would require some programming (I suggest Java).
Demonstration software illustrating customisable interpretation of aridity
related features, such as deserts, can be seen here.
Relevant papers are:
Various mathematical models of ecological niche have been developed. An
early, but still widely used model is to regard the ecological niche as a
hyper-cube within a space of environmental parameters. The area within the
cube represents the range of livable conditions for the species. More,
sophisticated models take into account the fact that animal behaviour involves
movement, so a niche is not fully modelled just be considering the environment
at each point in space: one needs to consider a habitat comprising features
(water, food, shelter etc) that are distributed across a neighbourhood.
The aim of this project is to apply a model of ecological niche to implement
software functionality for analysis of animal habitat. Several specific
functions are suggested:
The project would involve some programming (I suggest Java) and/or development
using an existing GIS (e.g. ArcGIS).
Some relevant background information:
The aim of this project is to explore other ways to present calendar
information which might give a more vivid impression of time and events.
My hypothesis is that, rather than using a grid, a better visual
representation would be to present time as a PATH, stretching away into the
future. In order to achieve this, the calendar would be constructed using 3D
graphics so that events in the near future are seen as closer than those in
the distant future. (This would not necessarily require particularly
elaborate 3D graphics, since the idea could be realised with fairly simple
scaling of icons and/or text.)
The relative importance of events could also be represented by size, so that
certain events would be easily visible even though they are relatively far in
the future. Care would need to be taken to ensure that the distance and size
of an event icon do not get mixed up; but this should be possible, since the
distance/time to an event would be indicated by its position on the
3-dimensional display of the time PATH, which would get narrower in the
distance.
Within this general idea, a wide variety of calendar displays are possible. I
suggest that project should focus on developing one style of visualisation but
also allow certain features of the display (such as scaling parameters) to be
modified. This will enable evaluation of what type of view is most accessible
and intuitive for calendar users. Evaluation of the system will also require
comparing the ease of comprehension of the new calendar visualisation with
that of traditional grid-style calendars.
The project would require competence in programming.
By comparing two indistinguishable samples to a third they may become
distinguishable.
It seems that by means of indirect comparison and reasoning, humans
can distinguish differences that cannot be made by direct
perception. However, as yet hardly any experiments have been conducted
to examine the conditions under which this can occur.
The goal is to produce a piece of software that can be used to conduct
colour perception experiments and to try it out on some guinea-pigs
(i.e. human test subjects of suitably docile temperament).
A relatively simple GUI should be sufficient, which can show colour
samples in various configurations and sequences and record
choices/observations made by users.
The software should support experiments such as the following:
In existing systems such dependencies are typically hard-coded so that
producing a new questionnaire involves modification of the underlying
program. A somewhat more sophisticated solution is to represent the
questionnaire as a tree of possible questions, where each question is
a node and the different possible answers correspond to branches from
this note. Each path through the tree then corresponds to a legitimate
sequence of questions.
Although the tree model is very general it does have certain
disadvantages. A typical tree will contain a lot of repetition, since
many questions are independent of each other so the same question will
be asked on many branches of the tree. This means that the tree can
become very large even though the constrains between questions are
relatively simple. Another drawback is that in constructing such a
tree, the questionnaire designer has to commit to a particular
sequence of questions, even when there is no real reason why one
question should come before another. A related problem is that for
large questionnaires, this tree representation is difficult to
maintain and extend. Since it is not always clear whether a particular
ordering of questions in the tree is necessary because of question
dependencies or is just an arbitrary choice, someone modifying the
questionnaire structure may introduce errors when adding, deleting or
modifying questions or possible answers.
A previous final year project (Matthew Robertshaw 2008) looked at an
alternative solution, which seems to have clear advantages over both
the hard-coded and tree-based approaches. The basic idea is to specify
only the actual dependencies among the questions without committing to
a particular question ordering. Possible orderings can then be
generated automatically by finding sequences that satisfy these
constraints. In fact, this can be done dynamically, while the
questionnaire is being answered.
The previous project will provide a good starting point for further
investigation but was somewhat limited in the kinds of question/answer
dependencies that could be represented. A desirable extension (which
would most likely be a minimum requirement for a further project) is
to allow question choices to depend on Boolean combinations of
previous answers. For example, one might want to ask "Do you have a
home internet question" depending on whether a person has answered
"yes" either to the question "Do you own a laptop?" or to the
question "Do you own a desktop computer?". In general a constraint
could depend on a complex combination of possible answers that were
given to one or more previous questions.
Rather finding a question sequence that just meets the hard dependency
constraints, a further development would be to look at how the most
natural orderings for questions can be extracted automatically. For
instance, if one question depends on a previous answer, it seems
preferable that it should be asked soon after the question upon which
it depends. Thus the dependencies can be used to find user orderings
that a user is likely to find helpful.
In implementing such a system many different platforms could be
suitable. There are good reasons why a web-based implementation might
be preferable, but in terms of the primary project objectives it is
the representation and processing of questionnaire structures that is
more important. Whatever platform is chosen the project must consider
the questionnaire both from the point of view of a person filling it
in and from the point of view of the designer of the questionnaire.
In evaluating the outcome of this project, the student should consider
the robustness and flexibility of the algorithm developed as well as
its convenience for users.
The primary aim of this project is not object tracking in itself, but
the implementation of a mechanism for generating descriptions of the
trajectory information output by a tracking program. For instance, an
object may walk, run, fall, rise, roll, bounce, fly, hover; it may
travel in a straight line, a curve, a zig zag etc. Thus the goal would
be to develop a mechanism that reads in the low level trajectory
information and outputs a description of the observed motion using
this kind of high level vocabulary.
The exact scope of the project can be determined by the student. For
instance one might want to achieve a broad coverage of different
descriptions, but be less concerned with reliability, or one might try
to get a more accurate description but in terms of a narrow range of
motion descriptions.
It will not be necessary to develop tracking software from
scratch. Such software is widely available and fairly easy to obtain
and run. For instance, the python-openCV package provides an
accessible platform, for which quite a lot of useful code can be found
on the Internet. Alternatively, one could directly obtain the
trajectory information output from a tracker, either from some source
on the Internet of from members of the Computer Vision research group
here at Leeds. So it may not be necessary to use a tracker software at
all.
Differences between formats mean that tasks which one would expect to be quick
and easy are often time consuming and tedious. For instance, I may use a
Latex tabular environmen to produce a nicely formatted timeble for a
meeting. To then put this on a web-page will involve converting the latex
table format to an HTML table format.
The idea of this project is to build a convenient interactive tool for
transforming files of one format to another. The tool should support file
transformation in a general and flexible way by providing a re-writing
mechanism that can specify a wide class of possible transforms. Moreover, a
user should be able to incrementally build towards a desired transform by
specifying a sequence of simpler steps and seeing the effect that they would
produce.
In order to evaluate effectiveness of the tool, I suggest that tests be
carried out regarding transforming among common file formats, such as the
following:
The project would apply computational analysis and possibly machine learning techniques to find
correlations between candlestick patters and price movements.
More information about Japanese candlestick charts can be found in the
Wikipedia article.
A variety of different projects are possible, working on extending the LUABAB
software for automatically playing Angry Birds.
This system (The Leeds University Angry Birds Artificial Brain) came 4th out
of 20 teams taking part in the international AI Birds comptition, where AI
software attempts to complete unseen levels of Angry Birds.
LUABAB is programmed in Java and interacts with the Google-Chrome version of
Angry Birds via a simple API.
Among the different problem aspects that could be tacked are the following:
AI for Solving Puzzles
Project code: BB-PuzzleAI
Improbable supervisor: Brandon Bennett
Type of project: Exploratory Software.
Area of Interest: AI.
Appropriate for degree programme: Any
Appropriate number of credits: Any
Multiple projects can be considered: Yes
Prerequisites: AI, Programming
AI Search techniques can be used to solve a variety of different puzzles.
The aim could either be to build a special purpose solver for a particular
kind of puzzle, or to compare the performance of various types of general AI
algorithms either on a single puzzle type or on a variety of different kinds
of puzzle.
Artificial Life and Simulation of Intelligent Movement (navigating, chasing, fleeing,
flocking, herding etc.)
Project code: BB-ALife
Improbable supervisor: Brandon Bennett
Type of project: Exploratory Software.
Area of Interest: AI.
Appropriate for degree programme: Any
Appropriate number of credits: Any
Multiple projects can be considered: Yes
Prerequisites: AI, Programming
Simulation of movement has applications to automated
graphical animation and computer games as well as providing
a testbed for robotic control.
Topics in Knowledge Representation and Reasoning
Project code: BB-KRR
Improbable supervisor: Brandon Bennett
Types of project: Theoretical Study or Exploratory
Software.
Area of Interest: Knowledge Representation, AI.
Appropriate for degree programme: Any
Appropriate number of credits: Any
Multiple projects can be considered: Yes
Prerequisites: Knowledge Representation and Reasoning
Considerable work has been conducted at Leeds on the development of logical
theories for reasoning about space and time and about configurations and
movements of material objects. A possible project would be to test one
or more of these theories in relation to some set of reasoning examples,
perhaps confined to a restricted domain or taken from a particular source.
A couple of examples are:
Natural language employes a wide variety of types of adjective, which modify
nouns in different ways. In classical logic, nouns and adjectives are treated
as having essentially the same semantics: both denote sets of objects. Under
this interpretation, the combination of a noun and an adjective simply denotes
the intersection of the two denoted sets. For example, green
frog refers to the set of things that are instances of both
green and frog. However, if we consider a case
such as plastic frog we see that this intersection
interpretation does not work in general, since a plastic frog is not a
frog. Other examples are the phrases: former student and
potential presedent, where there is a temporal or conditional
aspect to the meaning. Adjectives such as large and
tall also cause problems, since the size of a large
elephant will clearly be much greater that that of large
mouse.
Natural Language and the Winograd Schema Challenge
Project code: BB-WSC
Improbable supervisor: Brandon Bennett
Types of project: Theoretical Study or Exploratory
Software.
Area of Interest: Knowledge Representation, AI.
Appropriate for degree programme: Any
Appropriate number of credits: Any
Multiple projects can be considered: Yes
Prerequisites: Knowledge Representation and Reasoning
Potential Dangers of Artificial Intelligence
Project code: BB-AI-Danger
Improbable supervisor: Brandon Bennett
Types of project: Theoretical Study.
Area of Interest:AI
Appropriate for degree programme: Any
Appropriate number of credits: Any
Multiple projects can be considered: Yes
Prerequisites:Preferably some AI, ML or KRR module
Interpreting Vague Geographic Terms
Project code: BB-IVGT
Improbable supervisor: Brandon Bennett
Types of project: Theoretical Study or Exploratory Software.
Area of Interest: Geographic Information, Knowledge Representation.
Appropriate for degree programme: Any
Appropriate number of credits: Any
Multiple projects can be considered: Yes
Prerequisites: Programming Skills (e.g. Java, Python)
Many geographic concepts are vague.
This means that even when we have accurate data regarding properties
of the world there may be many possible interpretations of geographic
features and their boundaries.
The project could either extend existing work, or could develop a
system for some other kind of geographic features.
BB-GIS: Advanced GIS functionality for Animal Habitat Analysis
The possible living conditions of an animal species can be described in terms
of the concept of "ecological niche". Informally, an ecological niche
characterises the places in which a species can live in terms of the kinds of
environment to which it is suited and also the way that it interacts with
other species, in terms of predation, prey and competition for food and
shelter.
You can chose whether to produce a system that works for a range of different
species or is specialised for the characteristics of a small number of
species.
BB-CalVis: 3D Calendar Visualisation
Calendars and timetables are usually presented in the form of a
two-dimensional grid. Although this representation is easy to display, it
bears little relation to the actual structure of time and is not well-suited
to indicating the relative importance and relationship between different
events.
Perception of Barely Discernible Colour Differences
Project code: BB-PBDCD
Improbable supervisor: Brandon Bennett
Types of project: Exploratory Software or Empirical Investigation
Area of Interest: Perception and Cognition
Appropriate for degree programme: Any
Appropriate number of credits: Any
Multiple projects can be considered: Yes
Prerequisites: Programming Skills (e.g. Java, Python)
If two colours are close enough in shade and hue, a human cannot
distinguish them. However, a series of indistinguishable differences
will eventually lead to a difference that is distinguishable.
BB-QUEST: Creating and Manging Structured Questionnaires
Computer-based forms or questionnaires are increasingly used for a
variety of purposes involving information and requirements capture or
problem diagnosis. A significant feature of such questionnaires is
that there is often a dependency between the answers given at one
point in the question sequence and the subsequent questions that
should be asked. To take a simple example, suppose that a user is
asked whether they own a laptop; if they answer "yes" they might then
be asked what model it is or what they use it for, whereas if they
answer "no" these questions will be skipped.
BB-TRAJ: Describing Object Trajectories in Tracked Video Data
Object tracking algorithms are one of the main strands of research in
Computer Vision. Although, there are still problems arising from
factors such as noise, shadows and occlusion, State of the art
tracking software can achieve very good performance in tracking a
variety of different kinds of object. The output of a tracking
algorithm is normally a trajectory or set of trajectories, where each
trajectory is given by a sequence of bounding regions that give the
location of a moving object at each frame of a given video. Although
this kind of information can be very useful for a variety of
applications, it is far removed from the way that humans describe the
motion of moving objects.
BB-IFT: Interactive Transformer for Structured Data Files
Many computer applications read or output data in the form of a structured
text file. A wide variety of such files are commonly used, encoding
information of diverse kinds, such as: an address book, a bibliography, a
calendar, a table of statistics, a list of events, a music playlist, an email
file, a Latex document.
The project would require competence in programming.
I would suggest implementation in Python or Java, although other
platforms can also be considered.
BB-Candle: Analysing and learning Japanese Candle patterns in stock and currency exchange charts
Japanese Candle charts are a way of presenting information about the changing value of financial instruments
(i.e. stocks, shares, commodities, currencies) that are bought and sold on a stock market. The chart consists of a series of
candle icons, which each describe the behaviour of the market over a fixed time period.
Each candle indicates the prices of the financial instrument at the beginning of that period and
also the high and low prices paid for the instrument during that time period. A number of different types
of candlestick can occur depending on different ways that the price may vary across the interval.
Stock analysts believe that by studying the patterns of occurrence of different types of candlestick
one can obtain clues about what will happen to the stock price in the near future; and using these
clues one can make money out of the stock exchange.
BB-AB: Angry Birds AI Competition
*** Unfortunately the Angry Birds interface that previously ran in
the Chrome browser is no longer supported by Rovio (the creators of Angry
Birds). According to the organisers of the AI Birds competition it is
still possible to get it working, so it may be possible. However, I have
tried (albeit not very hard) and failed to get it to work, so it is not
trivial. If you have time you could try to get the bare-bones AI Birds
software working before choosing this project. Alternatively, you could
do a similar project using another game based on a 2D physics engine,
preferably where all the source code is available. ***
Projects on Angry Birds would typically involve programming to
enhance a particular component of the system and carrying
out testing and evaluation of its performance.