Post on 04-Jun-2018
8/13/2019 Mw1 Research
1/14
16/04/2012
1
HowtodoresearchGiorgioButtazzo
g.buttazzo@sssup.it
http://retis.sssup.it/~giorgio/h2d.html
AimofthecourseTo provide some
hints on
what to doand
whatnotto dowhen you areinterested in:
doin research
writing papers
presenting your results
2
Outline
1. Howtosettleforresearch
2. Howtowritescientificpapers
.
4. Gettingintothepublicationprocess
5. Howtomakepresentations
6. Simulatingasmallconference
3
MeaningofresearchResearch = Re - Search
Re again Search examine carefully, try, test, probe
4
Detailed study of a subject aimed at inventing new
solutions for specific problems (engineering approach).
Research
Detailed and systematic study aimed at discoveringnew knowledge about our world (scientific approach).
Scientists vs. EngineersScientists
Interested in the world as it is
Goal: understand how it works
Discover laws on what already exists
5
Engineers
Interested in changing the
world
Goal: solve practical issues
Invent something that does
not exist
Basic vs. Applied ResearchSome people like to distinguish between:
Basic research
aimed at advancing our knowledge with little concern
for any immediate practical benefits.
6
Applied research
aimed at achieving some practical outcomes that are
useful to the society.
8/13/2019 Mw1 Research
2/14
16/04/2012
2
Good vs. BadResearchSome other people prefer to distinguish between:
Good research: rigorous scientific study aimed at
advancing knowledge and producing new results that
(sooner or later) will be useful for the society;
7
Bad research: study aimed at producing specific products
without long term objectives or general implications.
According to this view, a research is applied if there exists
someone capable ofusing the results to build practical things.
Theory vs. Practice The believe that a theoretical study is not useful to the
society is completely wrong!
Whats more relevant for the society? The theory of
electro-magnetic field or a practical study to optimize a
screwdriver?
8
PasteursQuadrantbyDonaldStokes,1997
Quest for
HighPurebasic
research
Useinspired
research
Niels Bohr Louis Pasteur
9
Fun amenta
Understanding
Consideration of use
Low High
Low Pure
applied
research
Bad
research
ThomasEdison
WhatisEngineering?
Cost-effective
Engineering is the development of
cost-effective solutions to practical problems,
through the application of scientific knowledge
10
Considering design trade-offs on resource usage
Solutions
Emphasis on building devices, but also methodologies
Practical problems
problems that matter to people and improve human life
Application of scientific knowledge
Systematic use of analytical techniques
ElementsforasuccesfulresearchThe path to success consists of three simple elements:
Find what interests you that you can do well and is
needed by the people. - Lui Sha
11
your
talent
your
interest
social
needs
Elementsforasuccesfulresearchyour
talent
your
interest
social
needs
Understading yourself
12
What is easier for you, writing a complex
software program or proving a difficult theorem?
What excites you?
What excites the community?
Does it fall into your skills?
8/13/2019 Mw1 Research
3/14
16/04/2012
3
Researchstepbystep0. Find
a
topic 1. Understandthefieldandthe
applicationdomain
13
2. T in o
the
problem
3. Forma ize
the
problem
4. Findasolution
totheproblem
Researchstepbystep5. Validate
your
solutioninpractice
6. Compareyoursolutionagainstexisting
14
ones
8. Communicatethesolution
totheworld
7. Extendthesolutionto
moregeneralcases
Typicalresearchprocess
idea
start with simple
assumptions
model
use examples
and simulations
conjecture solution
15
clean upgeneralize
more realistic
assumptions
1. Understandingthefield Why is it important?
What are the mainapplication areas?
en y e ey componen s an o your
system.
Whatdisciplines areneededtounderstanddetails?
Doyouhavetherequiredexpertise?
Ifnot,whichcoursesdoyouneedtoattend?
16
1. Understandingthefield Are there ethical issues involved (e.g., weapons,
animals)? Better to clear these things up before
starting.
a o peop e a a rea y wor e on e op c o
know tricks, shortcuts, and bottlenecks.
Read the documentation related to the main
components (HW and SW).
You must become the Master on that subject.
17
Read the literature related to your problem. Search
on the right conference proceedings (ask your
supervisor about the top conferences in the topic).
Conference papers have more recent results.
1. Understandingthefield
Get familiar with thework done before(if any): use
tools, read the source code, run demos, test the
system functionality, discover critical points and take
notes on strange behaviors.
18
8/13/2019 Mw1 Research
4/14
16/04/2012
4
Commonmistakes Think, plan, read, and never
get into the main game
Reading is important, but it is also
important you start experiments, simulations and analysis.
19
.
When reading papers, be critic,
never take everything as a dogma.
The highest impact on research is due to
novel ideas that criticize imprecise thinking.
Read papers as a reviewer!
2. Thinkingofaproblem What is thenovel contributionyou would like to give
to the field?
Make a wish list, from big dreams to smaller (but
.
Which features would you like to have on your
system?
Go back to the literature to see if some problem has
already been solved.
20
Commonmistakes Choosing a wrong direction
Your supervisor may have the
experience to advise on this.
21
Too simplistic assumptions
Nobody will be interested in a
solution that is not applicable
to a real situation.
Commonmistakes The problem has already been solved
Carefully look at the literature!!
Dont getdesperate,youmay
22
;
Extendtheexistingsolutionto
moregeneral
cases;
Slightlychangetheproblemto
covermorerealisticcases;
Findanotherproblem.
3. Formalizingtheproblem If the problem is too complex, break it into a set of
smaller subproblems.
Build amodelof your system:
C ear y i enti y t e assumptions you nee to simp i y
reality (butnot too much);
Define the metrics for evaluating the outputs of your
system and its performance;
Define the systeminterface.
23
3. Formalizingtheproblem Distinguish variables between:
System parameters(variables you dont want to change);
Input variables(primary variables affecting your method)
Design variables (variables you want to change to apply
your control actions);
State variables (variables describing the system state and
behavior);
Output variables (variables you want to measure to
evaluate the performance of your method).
24
8/13/2019 Mw1 Research
5/14
16/04/2012
5
3. Formalizingtheproblem Find relationsamong the variables: how outputs are
influenced by inputs?
If relations cannot be easily derived by the physics,
make experiments:
Decide asingle input variable;
Decide asingle output variable;
Fix the others as parameters;
Vary the inputvariable in a given range;
Measure the outputfor each value of the input.
25
Example1Determine the timing of a traffic lights in a crossroad:
What are the relevant variables?
duration of green (G)
eriod T)
26
STOP
STOPS1S2
S1
S2
GT
flow in each road (i)
queue lengths (qi)
average car speed (v)
average delay of a car
Example2Design a communication protocol in a computer network:
What are the relevant variables?
number of nodes n
network to olo
27
average load
message size M
message rate T network bandwidth B
end-to-end delay D
error probability p
Example3Design a control algorithm for a robotic device:
Relevant variables
ball position: x
28
Ball & Beam a spee : v
beam angle:
servo angle:
sampling period: T
settling time:
overshoot:
ball mass: m
ball radius: r
beam length: L
ball's moment of inertia: J
gravitational acceleration: g
System parameters
4. Findingasolution Experiments can give good hints for finding a
solution.
Even theoretical results can come to your mind by
first looking at experimental data.
Sometime, experimental data can be performed to
find counterexamples. Counterexamples brings
usually bad news, but they are extremely useful to
identify critical situations and countermeasures to
avoid them.
29
4. Findingasolution If the solution is an algorithm, evaluate its
computational complexity. If it is too high, simplify
the assumptions or try heuristic approaches.
Write notes and comments every week to
30
mon tor t e progress o your researc :
problems encountered (how you solved them);
experiments you carried out;
assumptions you are making;
scenarios you have considered, etc.
Everything will be useful when you write a paper.
8/13/2019 Mw1 Research
6/14
16/04/2012
6
5. Validatingthesolution Implement the solution;
Apply the solution to one or morespecific cases;
Evaluate the performanceaccording to the metrics
previously defined, under several conditions
(different values of the input or state variables).
31
5. ValidatingthesolutionOften, evaluating the solution on a simulated system is
more practical and reasonable. In this case:
input or state variables should be generated as
random numbers within given ranges and realistic
distributions.
output variables should be averaged onseveral runs
for each input configuration.
Remember to record both mean and variance for
each set of output values.
32
6. Comparingthesolution Search the literature to find different solutions to the
same problem;
Identify all the differences (assumptions, model,
com lexit erformance
Implement the best methods you have found.
Run thesame set of experimentsfor each approach.
If your solution performs worse than the others for
all possible scenarios, then you are in trouble.
33
6. Comparingthesolution Before giving up, make sure you compare the
approaches with respect to different metrics:
often its reasonable to sacrifice performance for
a lower complexity or a more realistic model.
Sometime the improvement is observed only within
a certain range of the input variables.
This can still be interesting, since that range can
occur for particular systems, for which your
solution can be more appropriate than the others.
34
7. ExtendingthesolutionGo back to the assumptions you made to simplify the
system model:
Are there assumptions that are too artificial or
restrictive?
How the solution and the results would change by
relaxing those assumptions?
How could the model be enriched with more
variables describing more details?
35
7. Extendingthesolution Are there other components to be considered?
Is the analysis tight? Is there space for
improvements?
Are experimental results complete?
36
8/13/2019 Mw1 Research
7/14
16/04/2012
7
8. CommunicatingthesolutionAs soon as you have got an interesting result, write a
technical report, do not wait until the whole project is
finished.
Remember toregisterthe technical report and put it
on your we page.
If the work is done together with your supervisor, ask
him/her torevise it and put it on his/her web page,
which has much more visibility to the external world.
This ensures you the paternity of the result, in the case
somebody should publish a similar work.37
8. Communicatingthesolution Then, select a conference with your supervisor and
write a paper for that conference. This is important
for receiving a quick feedback (normally after 23
months) from a number of reviewers.
In the meantime, you can keep working to extend
your work.
If the paper is accepted, you have to make a
presentation at the conference. This is a ver y
constructive experience, which is important for a
number of reasons.38
8. CommunicatingthesolutionWhy presenting a paper at a conference is important?
You have the unique possibility to join a community
of experts andexchange interesting ideas;
After your presentation, some people can give you a
feedback to improve your work;
You have the possibility to attract the interest of big
gurus in the field and to make contactswith a lot of
interesting people.
39
8. Communicatingthesolution With the feedback you received from the reviewers
and from people at the conference, you can think of
writing astronger paperfor a journal.
The issue on how to write a research paper will be
covered in detail later on.
40
Generaladvices If you have a hard deadline,dont rely on someone else.
Most students underestimate the importance of
physical aspects, such as:
Using asensorto acquire data into your program;
Making an actuator to move and build a function
that controls it as desired;
Orderingdevices and have them on your desk;
Makinga new printed circuit from scratch;
Solderingcomponents and testing them.
41
Generaladvices Write down an idea when you have it, because you
may easily forget it by the time you get to the office.
Some ideas come early in the morning, so keep
paper and pencil on your bedside table. Some ideas
, .
Do not be afraid to admit your ignorance. In academic
research one is continually venturing into new areas.
Perfectionism and attention to detail is a virtue.
Taken to excess, it is a vice.
42
8/13/2019 Mw1 Research
8/14
16/04/2012
8
Howtogetideas
Make aselective reading: quickly go through the paper
Read widely, but remember, reading is not what
research is about. Too much reading could be a major
danger that could prevent new ideas to flourish.
,
specific points. Questions to always have in mind:
What is the main problem to be solved?
What are the main assumptions.
If you dont understand the math, make a step back to
learn and then return to study the approach.
43
Howtogetideas What to read?
conference papers are the most up to date, but
often details are available in technical reports.
Most of the time theke ideais not in the details
but in the methodology.
When details are important and you cannot find
them, contact the authors directly by Email:
Often they feel honored to be considered and will be
happy to provide additional information on their work.
44
Howtogetideas Reading approach
Some degree of skepticism is appropriate when
approaching most papers.
Dont trust anythingyou read.
Verify the theoretical results and judge theassumptions trying to imagine them applied to
your system.
45
Howtogetideas? Thinkofsomepracticalissue
Startfromproblemsthatreallybotheryou:
Dissatisfaction isthemajorsourceofinspiration
46
Howtogetideas? Bedrivenbypassions
PassionisoneofthestrongestforcesinNature
Searchthewebusing
combinedkeywords,like:
47
music&statistics
painting&algorithms
biking&sensors
soccer&measurement
Youwillfindinteresting
unexpectedresults.
Howtogetideas? ObserveNature(Animals,plants,phenomena)
AllsolutionsfoundbyNaturearecharacterizedby
HighEfficiency
Beautyandelegance
48
8/13/2019 Mw1 Research
9/14
16/04/2012
9
Howtogetideas? Lookintootherfields
Getknowledgefromotherfields:
differentproblemsmayhavesimilarsolutions
49
At the beginning,
documents were
written using a
single font: Courier
Many different fonts
are available today
much nicer to read!
An example:
Howtogetideas?An interesting story
Simply out ofcuriosity, Steve Jobs decided to attend a
calligraphy course, where he learned all about
typefaces, fonts, letter spacing, and what is needed to
50
.
The course had no practical value that he could
imagine, and he took itjust for pleasure.
Ten years later, his experience was crucial for the
design of the Macintosh user interface, which set a
standard for all word processors.
Howtogetideas?What do we learn?
Curiosity means pursuing something that
does not necessarily have an obvious
51
.
We examine something merely because it
seemsinteresting. Later, we may discover unexpected
connectionswith what we are doing that can
form the basis for new ideas.
Somehints Its very usefulmaking lists, and thenorganizing them.
Examples are lists of questions, possible experiments,
possible surveys, sources of data, etc.
Imagine the results of experiments before making
them: if the results were to be ..., then we would
conclude .... otherwise our conclusion would be ....
Think of an experiment that nobody else has done,
and do it. The emphasis here is on doing something
because it can be done, not because you actually
understand the implications.
52
TakeadvantageofbeinginaLab Talk to peopleto know what they are doing.
Ask successful researchers in your department if
the have articular methods for ettin ideas.
Whattodoifyoudonthaveideas?
Attend seminars: you can find interest topics and
you learn how to present (or not to present).
Brainstorm with your colleagues about problems
they have.
Collaborate with someone on a common problem.53
Whattodoifyoudonthaveideas? Criticizeapaperbysomeoneelse:
Are there assumptions that are too artificial or
restrictive?
How could the model be enriched with more
variables, describing more details?
Are there other components to be considered?
Is the analysis tight? Is there space for
improvements?
Are experimental results complete?54
8/13/2019 Mw1 Research
10/14
16/04/2012
10
Whattodoifyoudonthaveideas? Buildontopofexistingwork:
Can I improve the experiments?
Can I improve the theory?
From deterministic to statistical analysis.
From fixed priorities to dynamic priorities.
From uniprocessor to multiprocessor or distributed.
From single goal to multiple goals (feasibility + energy)
Can I build a tool that does it automatically?
55
Whattodoifyoudonthaveideas? Reducecomplexity
System are becoming more and more complex
Sometime too complex to be properly used or
Simplification is a very promising process in the
future at many levels:
Less computational complexity
Smaller program size
Simpler interfaces
56
SeekforsimplicityAchievingsimplicityisverydifficult,because
Simplicityimplies:
deepunderstanding
distilling
beautyandelegance
Itneedstime,
Goodideasneedincubationanddeepthinking
57
ExamplesinscienceE=mc2
F=maF=kx
V = R I
58
f actori al (n) {
i f ( n == 0) r eturn 1;return ( n * f actori al ( n- 1) ) ;
}
AchievingsimplicityStrategies to handle complexity:
Partitioning
so a on
Abstraction
59
Partitioning
It is the process of dividing a system into independent
parts that can be studied in isolation.
60
8/13/2019 Mw1 Research
11/14
16/04/2012
11
Isolation
It is the process of focusing on a specific component, to
understand its behavior in relation with the others:
61
Abstraction
An Abstraction is a concept that connects a set of
items as agrouporcategory.
Abstractionsreducethe information content, retaining
what is relevant for aparticular purpose.
62
ball
Abstraction
InComputer Science, abstractions allow program designers
to separate methods from implementation mechanisms,
so that they do not depend on software or hardware:
Examples
A queue
A resource manager
A virtual processor
63
AchievingsimplicityTechniques to simplify a process:
Reducefunctionality
64
Hideextra functions
Organizeyour knowledge
Reduce
Today, new functions are included just because it is
possible, not because they are needed.
Reduce functionality
65
Reduce
Balance betweenessentialandfancy
Crucial issue to be addressed
What to remove?
66
set mode
c lock alarm
downup
date temp
8/13/2019 Mw1 Research
12/14
16/04/2012
12
Reduce
Simplicity saves you time. And time is value.
67
UP DOWN
clock alarm
Hide
If you cannot reduce any further, hide nonessential functions.
68
Crucial issues to be addressed
What to hide?
Where to put?
Hide
Extra functions can be revealed only when
needed
69
Hide
Hiding can be hierarchical
70
Organize
Group similar items into categories
71
Organize
Making a taxonomyis crucial for grasping the key
features of a set of similar items:
State of the art papers
Scheduling algorithms
Control schemes
Poweraware strategies
72
8/13/2019 Mw1 Research
13/14
16/04/2012
13
Organize
When I started working onNeural Networks:Back propagation
Kohonen networks
Q-learning
73
Self-organizing maps
Reward-Based Functions
Recurrent networks
Associative networks
Competitive learning
Hopfield networks
Reinforcement Learning
Organize
Slowly some order emerged from the chaos
Learning paradigms
74
supervised competitive reinforcement
Hopfield Back-Prop. Kohonen. ASE-ACE Q-learining.SOM.
Organize
Rate-Monotonic
Deadline Monotonic
EDF
The same thing happened onRealTime Systems:
75
Sporadic Server
Priority Inheritance
Priority Ceiling
Slack Stealer
Least Laxity First
Fixed Priority Scheduling
Polling Server
Organize
The same thing happened on RealTime Systems
Scheduling algorithms
76
Fixed-priorities
RM DM EDF LLF CBSPS
Dynamic priorities
periodic aperiodic periodic aperiodic
DS TBS
Organize
Strategies useful for achieving organization:
List all the features
Sort
Group into categories
Integrate (reduce to fewer groups)
77
Organize
The key of software organization:
78
VERY IMPORTANT
a TAB character is not equivalent to N spaces
8/13/2019 Mw1 Research
14/14
16/04/2012
14
Organize
void sort(int *v, int n)
{
int i, j; // array indexesint min, k; // value and index of minimum element
int temp; // temporary variable
for (i=0; i