Sei sulla pagina 1di 86

UNITIII

SEARCHMETHODSANDVISUALIZATION

SearchbysimulatedAnnealing
Stochastic,AdaptivesearchbyEvaluation
EvaluationStrategies
GeneticAlgorithm
GeneticProgramming
VisualizationClassificationofVisualDataAnalysis
Techniques
DataTypes
VisualizationTechniques
Interactiontechniques
SpecificVisualdataanalysisTechniques.
Introduction
Variousalgorithmsproposedforplacementin
circuits.
ConstructiveplacementvsIterative
improvement.
SimulatedAnnealinganiterative
improvementalgorithm.

Motivation
Annealinginmetals
Heatthesolidstatemetaltoahightemperature
Coolitdownveryslowlyaccordingtoaspecificschedule.
If the heating temperature is sufficiently high to ensure
random state and the cooling process is slow enough to
ensure thermal equilibrium, then the atoms will place
themselves in a pattern that corresponds to the global
energyminimumofaperfectcrystal.
SimulatedAnnealing
Step1:InitializeStartwitharandominitialplacement.Initializea
veryhightemperature.
Step2:MovePerturbtheplacementthroughadefinedmove.
Step 3: Calculate score calculate the change in the score due to
themovemade.
Step4:ChooseDependingonthechangeinscore,acceptorreject
the move. The prob of acceptance depending on the current
temperature.
Step 5: Update and repeat Update the temperature value by
loweringthetemperature.GobacktoStep2.
TheprocessisdoneuntilFreezingPointisreached.
Algorithmforplacement

AlgorithmSIMULATEDANNEALING
Begin
temp=INITTEMP;
place=INITPLACEMENT;
while(temp>FINALTEMP)do
while(inner_loop_criterion=FALSE)do
new_place=PERTURB(place);
C=COST(new_place)COST(place);
if(C<0)then
place=new_place;
elseif(RANDOM(0,1)>e(C/temp))then
place=new_place;
temp=SCHEDULE(temp);
End.
Parameters
INITTEMP=4000000;
INITPLACEMENT=Random;
PERTURB(place)
1.Displacementofablocktoanewposition.
2.Interchangeblocks.
3.Orientationchangeforablock.
SCHEDULE.
Coolingschedule
ConvergenceofsimulatedAnnealing

AT INIT_TEMP Unconditional Acceptance

HILL CLIMBING Move accepted with


probability
= e-(^C/temp)
COST FUNCTION, C

HILL CLIMBING

HILL CLIMBING

AT FINAL_TEMP

NUMBER OF ITERATIONS
Algorithmforpartitioning
AlgorithmSA
Begin
t=t0;
cur_part=ini_part;
cur_score=SCORE(cur_part);
repeat
repeat
comp1=SELECT(part1);
comp2=SELECT(part2);
trial_part=EXCHANGE(comp1,comp2,cur_part);
trial_score=SCORE(trial_part);
s=trial_scorecur_score;
if(s<0)then
cur_score=trial_score;
cur_part=MOVE(comp1,comp2);
else
r=RANDOM(0,1);
if(r<e(s/t))then
cur_score=trial_score;
cur_part=MOVE(comp1,comp2);
until(equilibriumattisreached)
t=t(0<<1)
until(freezingpointisreached)
End.
QualitativeAnalysis

Randomizedlocalsearch.
Issimulatedannealinggreedy?
Controlledgreed.
Onceawhileexploration.
Isagreedyalgorithmbetter?Whereis
thedifference?
Theballonterrainexample.
BallonterrainexampleSimulatedAnnealingvs
GreedyAlgorithms

Theballisinitiallyplacedatarandompositiononthe
terrain.
Fromthecurrentposition,theballshouldbefiredsuch
thatitcanonlymoveonestepleftorright.
Whatalgorithmshouldwefollowfortheballtofinally
settleatthelowestpointontheterrain?
Applications
Circuitpartitioningandplacement.
Strategyschedulingforcapitalproductswith
complexproductstructure.
UmpireschedulinginUSOpenTennis
tournament!
Eventbasedlearningsituations.
JigsawpuzzlesIntuitiveusageof
SimulatedAnnealing
Givenajigsawpuzzlesuchthatone
hastoobtainthefinalshapeusingall
piecestogether.
Startingwitharandomconfiguration,
thehumanbrainunconditionally
choosescertainmovesthattendtothe
solution.
However,certainmovesthatmayor
maynotleadtothesolutionare
acceptedorrejectedwithacertain
smallprobability.
Thefinalshapeisobtainedasaresult
ofalargenumberofiterations.
SimulatedAnnealingalgorithmsareusuallybetterthangreedy
algorithms, when it comes to problems that have numerous
locallyoptimumsolutions.
Simulated Annealing is not the best solution to circuit
partitioning or placement. Network flow approach to solving
theseproblemsfunctionsmuchfaster.
Simulated Annealing guarantees a convergence upon running
sufficientlylargenumberofiterations.
Stochastic,Adaptivesearchby
valuation
Stochasticmethods,suchassimulatedannealingandgeneticalgorithms,are
gaining in popularity among practitioners and engineers because they are
relatively easy to program on a computer and may be applied to a broad
classofglobaloptimizationproblems.
Global optimization refers to a mathematical program, which seeks a
maximum or minimum objective function value over a set of feasible
solutions. The adjective global indicates that the optimization problem
maybeverygeneralinnature;
A global optimization problem with continuous variables may contain
severallocaloptimaorstationarypoints.
Theultimategoalofglobaloptimizationtechniquesistodevelopasingle
methodthat:
worksforalargeclassofproblems,
findstheglobaloptimawithanabsoluteguarantee,and
usesverylittlecomputation.
BasicSearchStrategies
Categorizationofoptimization
Problems
OverviewofRandomSearch
Methods

EnumerationorExhaustiveSearch
SequentialRandomSearch
EnumerationorExhaustiveSearch
GridSearch:
A common approach is to perform a grid search, essentially
discretizingthedomain.Agridsearchcreatesanequallyspaced
grid of points over the feasible region, and evaluates the
objectivefunctionateachpoint.
PureRandomSearch:
pure random search sacrifices the guarantee of determining the
optimalsolutionwithintheboundary.
similaritybetweengridsearchandpurerandomsearchisthatthe
expectednumberoffunctionevaluationsforpurerandomsearch
togetwithintheboundaryinthedimensionn.
SequentialRandomSearch
Benefitsofoptimizationare
Achievementofpeakperformance
Evaluationofonemeasureofrobustnessofthe
strategy
Maintenanceofpeakperformance
Adaptationtochangingmarketconditions
Adaptationtodifferentmarkets
Adaptationtodifferenttraders
EvaluationStrategies
GeneticAlgorithm
Introduction

Thegeneticalgorithm(GA)isapopulationbasedstochastic
searchproceduretofindexactsolutionstotheoptimization
andsearchproblems.
The GA creates a sequence of populations for each
successive generation by using a selection mechanism and
theoperatorssuchasselection,crossover,andmutation.
GeneticAlgorithmIntroduction
Thegeneticalgorithm(GA)isapopulationbasedstochasticsearch
procedure to find exact solutions to the optimization and search
problems.
The GA creates a sequence of populations for each successive
generationbyusingaselectionmechanismandtheoperatorssuch
asselection,crossover,andmutation.
Genetic algorithms are implemented as a computer simulation in
whichapopulationofabstractrepresentations(calledchromosomes
or the genotype or the genome) of candidate solutions (called
individuals, creatures, or phenotypes) to an optimization problem
evolvestowardbettersolutions.
BasicsofGA
Themostcommontypeofgeneticalgorithmworkslikethis:
a population is created with a group of individuals created
randomly.
Theindividualsinthepopulationarethenevaluated.
Theevaluationfunctionisprovidedbytheprogrammerandgives
the individuals a score based on how well they perform at the
giventask.
Twoindividualsarethenselectedbasedontheirfitness,thehigher
thefitness,thehigherthechanceofbeingselected.
These individuals then "reproduce" to create one or more
offspring,afterwhichtheoffspringaremutatedrandomly.
Thiscontinuesuntilasuitablesolutionhasbeenfoundoracertain
numberofgenerationshavepassed,dependingontheneedsofthe
programmer.
Keyterms
IndividualAnypossiblesolution
PopulationGroupofallindividuals
SearchSpaceAllpossiblesolutionstotheproblem
ChromosomeBlueprintforanindividual
TraitPossibleaspect(features)ofanindividual
AllelePossiblesettingsoftrait(black,blond,etc.)
LocusThepositionofageneonthechromosome
Genome Collection of all chromosomes for an
individual
Chromosome,Genesand
Genomes
GenotypeandPhenotype
Genotype:
Particularsetofgenesinagenome

Phenotype:
Physicalcharacteristicofthegenotype
(smart,beautiful,healthy,etc.)
GenotypeandPhenotype
GARequirements
Atypicalgeneticalgorithmrequirestwothingstobedefined:
Geneticrepresentationofthesolutiondomain,andafitnessfunctionto
evaluatethesolutiondomain.

Astandardrepresentationofthesolutionisasanarrayofbits.Arraysof
othertypesandstructurescanbeusedinessentiallythesameway.

Themainpropertythatmakesthesegeneticrepresentationsconvenientis
thattheirpartsareeasilyalignedduetotheirfixedsize,thatfacilitates
simplecrossoveroperation.

Variablelengthrepresentationsmayalsobeused,butcrossover
implementationismorecomplexinthiscase.

TreelikerepresentationsareexploredinGeneticprogramming.
Representation
Chromosomescouldbe:
Bitstrings(0101...1100)
Realnumbers(43.233.1...0.089.2)
Permutationsofelement(E11E3E7...E1E15)
Listsofrules(R1R2R3...R22R23)
Programelements(Geneticprogramming)
...anydatastructure...
Fitnessfunction
GeneralAlgorithmforGA
Initialization
Initiallymanyindividualsolutionsarerandomlygenerated
toformaninitialpopulation.
Thepopulationsizedependsonthenatureoftheproblem,
but typically contains several hundreds or thousands of
possiblesolutions.
Traditionally, the population is generated randomly,
coveringtheentirerangeofpossiblesolutions(thesearch
space).
Occasionally, the solutions may be "seeded" in areas
whereoptimalsolutionsarelikelytobefound.
GeneralAlgorithmforGA(conti..)
Selection
During each successive generation, a proportion of the existing
populationisselectedtobreedanewgeneration.
Individual solutions are selected through a fitnessbased process,
wherefittersolutions(asmeasuredbyafitnessfunction)aretypically
morelikelytobeselected.
Certain selection methods rate the fitness of each solution and
preferentiallyselectthebestsolutions.
Other methods rate only a random sample of the population, as this
processmaybeverytimeconsuming.
Mostfunctionsarestochasticanddesignedsothatasmallproportion
oflessfitsolutionsareselected.
This helps keep the diversity of the population large, preventing
prematureconvergenceonpoorsolutions.
Popular and wellstudied selection methods include roulette wheel
selectionandtournamentselection.
GeneralAlgorithmforGA(conti..)
Inroulettewheelselection,individualsaregivena
probabilityofbeingselectedthatisdirectly
proportionatetotheirfitness.

Twoindividualsarethenchosenrandomlybased
ontheseprobabilitiesandproduceoffspring.
GeneralAlgorithmforGA(conti..)

Reproduction
The next step is to generate a second generation population of
solutionsfromthoseselectedthroughgeneticoperators:
crossover(alsocalledrecombination),and/ormutation.
Foreachnewsolutiontobeproduced,apairof"parent"solutionsis
selectedforbreedingfromthepoolselectedpreviously.
Byproducinga"child"solutionusingtheabovemethodsofcrossover
andmutation,anewsolutioniscreatedwhichtypicallysharesmany
ofthecharacteristicsofits"parents".
New parents are selected for each child, and the process continues
untilanewpopulationofsolutionsofappropriatesizeisgenerated.
Crossover
Themostcommontypeissinglepointcrossover.
Insinglepointcrossover,youchoosealocusatwhichyouswapthe
remaining from on parent to the other. This is complex and is best
understoodvisually.
Asyoucansee,thechildrentakeonesectionofthechromosomefrom
eachparent.
The point at which the chromosome is broken depends on the
randomlyselectedcrossoverpoint.
This particular method is called single point crossover because only
one crossover point exists. Sometimes only child 1 or child 2 is
created,butoftentimesbothoffspringarecreatedandputintothenew
population.
Crossoverdoesnotalwaysoccur,however.Sometimes,basedonaset
probability,nocrossoveroccursandtheparentsarecopieddirectlyto
thenewpopulation.Theprobabilityofcrossoveroccurringisusually
60%to70%.
Crossover
Mutation
Afterselectionandcrossover,younowhaveanewpopulationfull
ofindividuals.
Somearedirectlycopied,andothersareproducedbycrossover.
Inordertoensurethattheindividualsarenotallexactlythesame,
youallowforasmallchanceofmutation.
You loop through all the alleles of all the individuals, and if that
alleleisselectedformutation,youcaneitherchangeitbyasmall
amountorreplaceitwithanewvalue.Theprobabilityofmutation
isusuallybetween1and2tenthsofapercent.
Mutation is fairly simple. You just change the selected alleles
based on what you feel is necessary and move on. Mutation is,
however,vitaltoensuringgeneticdiversitywithinthepopulation.
Mutation
GeneralAlgorithmforGA
RouletteWheelsSelectionPseudoCode:

forallmembersofpopulation
sum+=fitnessofthisindividual
endfor
forallmembersofpopulation
probability=sumofprobabilities+(fitness/sum)
sumofprobabilities+=probability
endfor
loopuntilnewpopulationisfull
dothistwice
number=Randombetween0and1
forallmembersofpopulation
ifnumber>probabilitybutlessthannextprobabilitythen youhavebeenselected
endfor
end
createoffspring
endloop
GeneticOperations
ArchitectureAlteringOperations,Contd
Subtroutinecreation
Createsanewsubroutinefrompartofamainresultproducing
branch
Deepensthehierarchyofreferencesintheoverallprogram
Subtroutinedeletion
Deletesapreexistingsubroutine
Narrowsormakeshallowerthehierarchyofsubroutines
Argumentdeletion
Deletesanargumentfromasubroutine
Reducestheamountofinformationavailabletothesubroutine
Generalization
Flowchart
GAPseudoCode
Chooseinitialpopulation
Evaluatethefitnessofeachindividualinthepopulation
Repeat

Selectbestrankingindividualstoreproduce

Breednewgenerationthroughcrossoverandmutation
(geneticoperations)andgivebirthtooffspring

Evaluatetheindividualfitnessesoftheoffspring

Replaceworstrankedpartofpopulationwithoffspring

Until<terminatingcondition>
GeneticProgramming
In programming languages such as LISP, the mathematical
notationisnotwritteninstandardnotation,butinprefixnotation.
Someexamplesofthis:
+21 : 2+1
*+212 : 2*(2+1)
*+2149: 9*((21)+4)
Notice the difference between the lefthand side to the right?
Apart from the order being different, no parenthesis! The prefix
methodmakesitaloteasierforprogrammersandcompilersalike,
becauseorderprecedenceisnotanissue.
Youcanbuildexpressiontreesoutofthesestringsthatthencanbe
easily evaluated, for example, here are the trees for the above
threeexpressions.
GeneticProgramming
What this have to do with GAs? If for example you
havenumericaldataand'answers',butnoexpression
toconjointhedatawiththeanswers.
A genetic algorithm can be used to 'evolve' an
expressiontreetocreateaveryclosefittothedata.
By 'splicing' and 'grafting' the trees and evaluating
theresultingexpressionwiththedataandtestingitto
theanswers,thefitnessfunctioncanreturnhowclose
theexpressionis.
GeneticProgramming
Thelimitationsofgeneticprogramminglieinthehuge
search space the GAs have to search for an infinite
numberofequations.
Therefore,normallybeforerunningaGAtosearchfor
anequation,theusertellstheprogramwhichoperators
andnumericalrangestosearchunder.
Uses of genetic programming can lie in stock market
prediction, advanced mathematics and military
applications.
GeneticProgramming
In programming languages such as LISP, the mathematical
notation is not written in standard notation, but in prefix
notation.Someexamplesofthis:
+21 : 2+1
*+212 : 2*(2+1)
*+2149: 9*((21)+4)
Notice the difference between the lefthand sidetothe right?
Apart from the order being different, no parenthesis! The
prefix method makes it a lot easier for programmers and
compilersalike,becauseorderprecedenceisnotanissue.
You can build expression trees out of these strings that then
canbeeasilyevaluated,forexample,herearethetreesforthe
abovethreeexpressions.
GeneticProgramming
EvolvingNeuralNetworks
Evolving the architecture of neural network is slightly
more complicated, and there have been several ways of
doingit.
Forsmallnets,asimplematrixrepresentswhichneuron
connects which, and then this matrix is, in turn,
converted into the necessary 'genes', and various
combinationsoftheseareevolved.
EvolvingNeuralNetworks
Manywouldthinkthatalearningfunctioncouldbeevolvedvia
geneticprogramming.
Geneticprogrammingcombinedwithneuralnetworkscouldbe
incrediblyslow,thusimpractical.
Aswithmanyproblems,youhavetoconstrainwhatyouare
attemptingtocreate.
Forexample,in1990,DavidChalmersattemptedtoevolvea
functionasgoodasthedeltarule.
Hedidthisbycreatingageneralequationbaseduponthedelta
rulewith8unknowns,whichthegeneticalgorithmthen
evolved.
OtherAreas

GeneticAlgorithmscanbeappliedtovirtuallyanyproblemthat
hasalargesearchspace.

ScientistAlBilesusesgeneticalgorithmstofilterout'good'and
'bad'riffsforjazzimprovisation.

ThemilitaryusesGAstoevolveequationstodifferentiate
betweendifferentradarreturns.

StockcompaniesuseGApoweredprogramstopredictthestock
market.
Example
f(x)={MAX(x2):0<=x<=32}
EncodeSolution:Justuse5bits(1or0).
Generateinitialpopulation.
A 0 1 1 0 1
B 1 1 0 0 0
C 0 1 0 0 0
D 1 0 0 1 1

Evaluateeachsolutionagainstobjective.
Sol. String Fitness % of Total
A 01101 169 14.4
B 11000 576 49.2
C 01000 64 5.5
D 10011 361 30.9
ExampleContd
Createnextgenerationofsolutions
Probabilityofbeingaparentdependsonthefitness.
Waysforparentstocreatenextgeneration
Reproduction
Useastringagainunmodified.
Crossover
Cutandpasteportionsofonestringtoanother.
Mutation
Randomlyflipabit.
COMBINATIONofalloftheabove.
Checkboard example
We are given an n by n checkboard in which
every field can have a different colour from a
set of four colors.
Goal is to achieve a checkboard in a way that
there are no neighbours with the same color
1
(not diagonal) 1

2 2

3 3

4 4

5 5

6 6

7 7

8 8

9 9

10 10

1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10
CheckboardexampleContd
Chromosomesrepresentthewaythecheckboardiscolored.
Chromosomesarenotrepresentedbybitstringsbutby
bitmatrices
Thebitsinthebitmatrixcanhaveoneofthefourvalues0,1,
2or3,dependingonthecolor.
Crossingoverinvolvesmatrixmanipulationinsteadofpoint
wiseoperating.
Crossingovercanbecombiningtheparentialmatricesina
horizontal,vertical,triangularorsquareway.
Mutationremainsbitwisechangingbitsineitherone ofthe
othernumbers.
Visualization
Data visualization is a general term that describes any effort to help people
understandthesignificanceofdatabyplacingitinavisualcontext.
Data visualization is the presentation of data in a pictorial or graphicalformat. It
enables decision makers to see analytics presented visually, so they can grasp
difficultconceptsoridentifynewpatterns.Withinteractivevisualization,youcan
take the concept a step further by using technology to drill down into charts and
graphs for more detail, interactively changing what data you see and how its
processed.
Therepresentationofanobject,situationorsetofinformationasachartorother
image.
DATAVisualization
Charts
Graphs
Widgets
Scorecards
Dashboards
Geographicvisualization
ChartsvsGraphs
Chartsandgraphsarepictorialrepresentationofdata
Graphs are better to represent data over a period of time whereas
charts are better when only spread at a given point of time is
involved
Graphsshowaseriesofdatainrelationwithtimewhichiswhy
therearetwoaxesrepresentingtimeandvalues.
Widgets
BI Widgets delivers on the vision of personalized, ambient Business
Intelligence by allowing you access to lightweight, secure, and personalized
desktopwidgetsatalltimes.
BI Widgets allow you to customize and remix BI Content into your own
personalizeddesktopBIview.
You can easily access BI Content, create personal dashboards on your
desktop,andintegrateBIContentintootherWindowsapplications,simplyby
usingdraganddrop.
BI Widgets is an application that delivers information to your desktop via
widgets.
Thewidgetframeworkprovidesthefollowingfunctionality:
Search,Organize,andViewcommonlyusedmetricsinasinglesecureview.
Access data internally or externally and aggregate that information into a
singlepersonalizedview.
CreatecustomorganizationofBIContent.
Widgets(Conti)
Differenttypesof
visualizationtechniques
Scorecardsanddashboards
Dashboards and scorecards are analytical tools that allow you to
focusonthemeasurementsthatareimportanttoyourbusiness.
Scorecards
Scorecards are the performance management tool that compares
strategicgoalswithresults.
Thistoolistypicallyatopdownapproachthatallowsmanagementto
implementitsstrategybyaligningperformancewithgoals.
Similartoagradeschoolreportcard,thescorecardmeasuresperiodic
results(weekly,monthly,quarterly,annually)againstapredetermined
goal.
Ascorecardmayreferto:
Balancedscorecard,atoolusedbymanagerstomeasureemployee
performance
Creditscorecards,atoolusedtoassesscustomersforcreditworthiness
Scorecard(baseball),arecordofabaseballgame'sdetails
Scorecard,asummaryofacricketmatch'sstatistics
Scorecards
The balanced scorecard (BSC) is a strategy performance
management tool a semistandard structured report, supported by
designmethodsandautomationtools,thatcanbeusedbymanagersto
keep track of the execution of activities by the staff within their
controlandtomonitortheconsequencesarisingfromtheseactions.
Aperformancescorecardisagraphicalrepresentationoftheprogress
over time of some entity, such as an enterprise, an employee or a
businessunit,towardsomespecifiedgoalorgoals.
Performance scorecards are widely used in many industries
throughoutboththepublicandprivatesectors.
ScorecardsCriticalsuccessFactors
Dashboards
A business intelligence dashboard is a data visualization tool
thatdisplaysthecurrentstatusofmetrics.
A scorecard, on the other hand, displays progress over time
towardsspecificgoals.
Dashboardandscorecarddesignsareincreasinglyconverging.
For example, some commercial dashboard products also
includetheabilitytotrackprogresstowardsagoal.
A product combining elements of both dashboards and
scorecardsissometimesreferredtoasascoreboard.
Dashboards
Dashboards Similar to the dashboard in your car, a
performancemanagementdashboardisadisplayofvarious
meters, gauges and lights that give you uptodate
informationonthecurrentstatusofyourbusiness.

Themetricsusedindashboardstendtotellmoreofthewhat
partofperformanceandareveryuserspecific.

This tool is most effective for managing hourly and daily


performance and is typically used by low and midlevel
operationsandcustomersupportmanagerswhoneedtosee
datathatiscurrent
GeographicVisualization
Referstoasetoftoolsandtechniquessupportingtheanalysisofgeospatialdatathroughthe
useofinteractivevisualization.
GeographicVisualization:Concepts,ToolsandApplicationsisastateoftheartreviewof
thelatestdevelopmentsinthesubject.Itexamineshownewconcepts,methodsandtoolscan
becreativelyappliedtosolveproblemsrelevanttoawiderangeoftopics.
IntegratedAnalytics

Analytics is the discovery, interpretation and


communicationofmeaningfulpatternsindata.
Especiallyvaluableinareasrichwithrecordedinformation.
Analytics relies on the application of statistics, computer
programming and operations research to quantify
performance.
Analytics often favors data visualization to communicate
insight
IntegratedAnalytics(Conti..)
Specifically,areaswithinanalyticsinclude:
predictive analytics, enterprise decision
management,
retail analytics, stockkeeping unit optimization,
marketing optimization, web analytics, price and
promotionmodeling,
predictive science, credit risk analysis and fraud
analytics.
IntegratedAnalytics(Conti..)
An integrated analytics platform is an integrated solution that
brings together performance management, analytics and business
intelligencetoolsinasinglepackage.
It provides an endtoend solution for delivering business
intelligence from multiple fronts and gives the user a clear visual
representationofdata
Italsoprovidesservicessuchasrevenuecalculation,forecasting
anddevelopingmarketingstrategymodelsandalgorithmsallonthe
samesystem,allowingforinteroperability.
Considerations:Optimizingthe
PresentationfortheRightMessage
considerthefollowing
considerations: the main context, consistency,
simplicityofthemessage,andengagement.

Potrebbero piacerti anche