web version of the ppsn vii invited talk (held on september 9, 2002 by alexander nareyek) because...
Post on 26-Mar-2015
216 Views
Preview:
TRANSCRIPT
Web Version of the PPSN VII Invited Talk(Held on September 9, 2002 by Alexander Nareyek)
Because these are only the slides without any verbal parts, it might be hard to study the document if you did not attend the talk. Some basic comments were added in the form:
# Comment #
Please note that this version of the talk does not contain any videos/music to keep the size at an appropriate level for download. The pictures included in this document were
mostly taken from the world wide web. If you identify any copyright issues, please let me know (alex@ai-center.com).
TitleIs Research Going in the Right Direction?
AbstractWhat about the general direction of our research and the methodology
used? Is it in line with real-world application requirements? Or are we focusing on issues of secondary importance and missing crucial
requirements? Questions like these will be raised in the talk, and the answers will not always be satisfactory. Throughout the talk, the
booming application domain of computer games will serve as an example because its extreme requirements regarding algorithms and production
enable attention to be drawn to many deficiencies in the research sphere.
BioAlexander Nareyek studied computer science at the TU Berlin, where he
also obtained his Ph.D. He won the GMD's 1997 Best Degree Thesis Award, was a winner of the BMWi's Founders Competition Multimedia 1998 and was awarded an enhanced Ph.D. scholarship by the German Research Foundation
(DFG). He is involved in many AI events, e.g. as organizer of several workshops on planning topics and as chair of the IGDA's AI Interface
Standards Committee. Since 2002, he has been guest researcher at CMU on an Emmy Noether fellowship.
Is Research Going in the Right Direction?
Is Research Going in the Right Direction?
Alexander Nareyek<alex@ai-center.com>
Carnegie Mellon University
Or: “Where’s the Cheese?”
“…the Drosophila of Artificial Intelligence…”
# The era of games like chess as a suitable research tool ## is over; they lacks very important features to be considered #
# in today’s research. #
# Games like Pac Man are already 20 years old. Technology ## progress in the domain of computer games is incredible, and #
# they provide highly complex environments. #
Action Games
Role-Play Games
Strategy Games
Sports Games
# Overview of game genres & technology – the videos are not ## included. You may visit web pages like www.fileplanet.com #
# to download movie/demo samples. #
Editing Your Test Scenarios
# Demo not included; many major computer games provide you with ## very advanced editors and scripting languages to implement your #
# own AI behavior. #
Creatures – Genetics at Work
# Demo not included; an example of a game applying ## evolutionary techniques, however, not as a search technique. #
# Nearly no commercial game applies any of our search ## techniques! What are the reasons? #
PPSN VIPPSN VI
Real TimeReal Time
Quality
Time?t
13%
30%
0%
57%
# Hardly any research on engineering anytime behavior. #
# Given response time distribution #
# Automatic anytime ## curve optimization #
DynamicsDynamics
“If anything can go wrong, it will.” Edward A. Murphy, Jr.
PPSN VIPPSN VI
12%
# Things go wrong and our world is constantly changing. ## Algorithms/representations must be able to incorporate this! #
Conceptual FlexibilityConceptual Flexibility
# Not only are real-world applications always a bit different ## and require algorithmic/representational adaptations. #
# Design documents also rarely stay the same during development. ## Let’s represent the design document as a painting… #
Conceptual FlexibilityConceptual Flexibility
# Some weeks later… #
Conceptual FlexibilityConceptual Flexibility
PPSN VIPPSN VI
17%
# And two weeks before the final milestone. #
The “One at a Time” FolksThe “One at a Time” Folks
“Start with one featureand add the others stepwise.”
# Many people want to optimize one featurebefore whey worry about others. #
Efficiency vs. Conceptual FlexibilityEfficiency vs. Conceptual Flexibility
public static final int fac(int n) {
if (n != 0) {
return n * fac(n - 1);
} else {
return 1;
}
}
public static final int fac(int n) {
if (n != 0) {
return n * fac(n - 1);
} else {
return 1;
}
}
An Example:Calculating the Factorial Function
# Textbook version. #
Efficiency vs. Conceptual FlexibilityEfficiency vs. Conceptual Flexibility
public static final int fac(int n) {
int f = 1;
do {
f = f * n;
} while (--n > 0);
return f;
}
public static final int fac(int n) {
int f = 1;
do {
f = f * n;
} while (--n > 0);
return f;
}
Requires only 60.39% of first solution’s time!
# Let’s get rid of the expensive recursion. #
Efficiency vs. Conceptual FlexibilityEfficiency vs. Conceptual Flexibility
public static final int fac(int n) {
switch (n) {
case 1: return 1;
case 2: return 2;
case 3: return 6;
case 4: return 24;
case 5: return 120;
case 6: return 720;
case 7: return 5040;
case 8: return 40320;
case 9: return 362880;
case 10: return 3628800;
case 11: return 39916800;
case 12: return 479001600;
}
return 0;
}
public static final int fac(int n) {
switch (n) {
case 1: return 1;
case 2: return 2;
case 3: return 6;
case 4: return 24;
case 5: return 120;
case 6: return 720;
case 7: return 5040;
case 8: return 40320;
case 9: return 362880;
case 10: return 3628800;
case 11: return 39916800;
case 12: return 479001600;
}
return 0;
}
Requires only 32.02%of first solution’s time!
# We can only compute values up ## to 12 because of an int overflow #
# otherwise! #
Efficiency vs. Conceptual FlexibilityEfficiency vs. Conceptual Flexibility
public static final int fac(int n) {
if (n < 5) {
if (n < 3) {
if (n == 1) {
return 1;
} else {
return 2;
}
} else {
if (n == 3) {
return 6;
} else {
return 24;
}
}
} else {
…
public static final int fac(int n) {
if (n < 5) {
if (n < 3) {
if (n == 1) {
return 1;
} else {
return 2;
}
} else {
if (n == 3) {
return 6;
} else {
return 24;
}
}
} else {
…
Requires only 24.51%of first solution’s time!
# Optimizing value retrieval ## by a balanced tree. #
Efficiency vs. Conceptual FlexibilityEfficiency vs. Conceptual Flexibility
static final int[] facArray = new int[13];
static {
facArray[1] = 1;
facArray[2] = 2;
facArray[3] = 6;
facArray[4] = 24;
facArray[5] = 120;
facArray[6] = 720;
facArray[7] = 5040;
facArray[8] = 40320;
facArray[9] = 362880;
facArray[10] = 3628800;
facArray[11] = 39916800;
facArray[12] = 479001600;
}
public static final int fac(int n) {
return facArray[n];
}
static final int[] facArray = new int[13];
static {
facArray[1] = 1;
facArray[2] = 2;
facArray[3] = 6;
facArray[4] = 24;
facArray[5] = 120;
facArray[6] = 720;
facArray[7] = 5040;
facArray[8] = 40320;
facArray[9] = 362880;
facArray[10] = 3628800;
facArray[11] = 39916800;
facArray[12] = 479001600;
}
public static final int fac(int n) {
return facArray[n];
}
Requires only 2.18%of first solution’s time!
# Further optimizing value ## retrieval by an external array. #
# Great benchmark to be ## published, isn’t it? #
# But not exactly a flexible ## solution anymore… #
Multi-Objective Algorithm DesignMulti-Objective Algorithm Design
Feature A
Feature B
# Algorithm design is a multi-objective task and focusing on only one ## feature such as efficiency will take you away from possible applications! #
DragonBreath Engine Demo
# Demo not included; engine is free and can be downloaded via: ## http://www.ai-center.com/projects/dragonbreath/ #
# Highly flexible by being based on the paradigm of constraint programming ## and easily extensible/adaptable by a very modular concept. Complex dynamic #
# changes can be incorporated during search. Anytime behavior can be engineered ## by switching between given heuristics, adding new ones, or applying learning #
# techniques to adapt to the required behavior. #
Global Search Control
Constraint
ImprovementHeuristic
ImprovementHeuristic
ImprovementHeuristic
Choice ofHeuristic
(Learning)
Variable
report valuechanges
assign newvalue
requestimprovement
report costchanges
Concept of the DragonBreath Engine
ConclusionConclusion
# Go for a mix of different cheeses! Efficiency is just one of the important features! #
Consider to explore new dimensions
in the algorithm design space!
http://www.ai-center.com
Applications likecomputer games
arehelpful and fun!
Open Positions !( students, docs & post-docs )
top related