1 Article final draft. Final version appeared in Game Programming Gems 8. Needs-Based AI Robert Zubek Intro Needs-based AI is a general term for action selection based on attempting to fulfill a set of mutually competing needs. An artificial agent is modeled as having a set of conflicting motivations, such as the need to eat or sleep, and the world is modeled as full of objects that can satisfy those needs at some cost. The core of the AI is an action selection algorithm which weighs those various possible actions against each other, trying to find the best one given the agent s needs at the given moment. The result is a very flexible and intuitive method for building moderately complex autonomous agents, which are nevertheless efficient and easy to understand. This paper presents some technical details of needs-based AI. We begin with a general overview, and then proceed to dive directly into technical implementation, presenting both general information as well as some specific hints born out of experience implementing this AI. Finally, we finish with an overview of some design consequences of using this style of AI. Background In terms of its historical context, the needs-based AI approach is related to the family of behavior-with-activation-level action selection methods, common in autonomous robotics (for an overview, see [Arkin98], p. 141). In game development, it was also independently rediscovered by the Sims, where it has been enjoyed by millions of game players. The Sims also contributed a very useful innovation on knowledge representation, where behaviors and their advertisements are literally distributed in the world in the game, and therefore very easily configurable. My own interest in this style of AI was mainly driven by working with the Sims (at Northwestern University, and later at EA/Maxis). I have since re-implemented variations on this approach in two other games: Roller Coaster Kingdom, a web business simulation game, and an unpublished RPG from the Lord of the Rings franchise. I found the technique to be extremely useful, even across such a range of genres and platforms.
2 Unfortunately, very few resources about the original Sims AI remain available; of those, only a set of course notes by Ken Forbus and Will Wright 1, plus a Sims 2 presentation by Jake Simpson 2 are freely downloadable on the web at this point. My goal here is to present some of this knowledge to a wider audience, based on what I ve gained from robotics and the Sims, as well as personal experience building such agents in other games. Needs-Based AI Overview There are many ways to drive an artificial agent; some games use finite-state machines, others use behavior trees, and so on. Needs-based AI is an alternative with an exciting benefit: the smarts for picking the next action configure themselves automatically, based on the agent s situation as well as internal state; yet the entire algorithm remains easy to understand and implement. Each agent has some set of ever-changing needs that demand to be satisfied. When deciding what to do, the agent looks around the world, and figures out what can be done, based on what s in the area. Then it scores all those possibilities, based on how beneficial they are in satisfying its internal needs. Finally, it picks an appropriate one based on the score, finds what concrete sequence of actions it requires, and pushes those onto its action queue. The highest-level AI loop looks like this: - While there are actions in the queue, pop the next one off, perform it, and maybe get a reward - If you run out of actions, perform action selection based on current needs, to find more actions - If you still have nothing to do, do some fallback actions That second step, the action selection point, is where the actual choice happens. It decomposes as follows: 1. Examine objects around you, and find out what they advertise 2. Score each advertisement based on your current needs 3. Pick the best advertisement, get its action sequence 4. Push the action sequence on your queue The next sections will delve more deeply into each of these steps https://www.cmpevents.com/sessions/gd/scriptingandsims2.ppt
3 Needs Needs correspond to individual motivations: for example, the need to eat, drink, or rest. The choice of needs depends very much on the game. The Sims, being a simulator of everyday people, borrowed heavily from Maslow s hierarchy (a theory of human behavior based on increasingly important psychological needs), and ended up with a mix of basic biological and emotional drivers. A different game should include a more specific set of motivations, based on what the agents should care about in their context. Inside the engine, needs are routinely represented as an array of numeric values, which decay over time. In this discussion we use the range of [0, 100]. Depending on the context, we use the term need to describe both the motivation itself (written in boldface, eg. hunger), or its numeric value (eg. 50). Needs routinely have the semantics of lower is worse and more urgent, so that hunger=30 means I m pretty hungry, while hunger=90 means I m satiated. Need values should decay over time, to simulate unattended needs getting increasingly worse and more urgent. Performing an appropriate action then refills the need, raising it back to a higher value. For example, we simulate the agent getting hungry if they don t eat, by decaying the hunger value over time. Performing the eat action would then refill it, causing it to become less urgent (for a while). Advertisements and Action Selection When the time comes to pick a new set of actions, the agent looks at what can be done in the environment around them, and evaluates the effect of the available actions. Each object in the world advertises a set of action/reward tuples some actions to be taken, with a promise that they will refill some needs by some amount. For example, a fridge might advertise a prepare food action with a reward of +30 hunger, and clean with the reward of +10 environment. To pick an action, the agent examines the various objects around them, and finds out what they advertise. Once we know what advertisements are available, each of them gets scored, as described in the next section. The agent then picks the best advertisement using the score, and adds its actions to their pending action queue. Advertisement Decoupling Please notice that the discovery of what actions are available is decoupled from choosing among them: the agent asks each object what it advertises, and only then scores what s
4 available. The object completely controls what it advertises, so it s easy to enable or disable actions based on object state. This provides great flexibility. For example, a working fridge might advertise prepare food by default; once it s been used several times it also starts advertising clean me ; finally, once it breaks, it stops advertising anything other than fix me until it s repaired. Without this decoupling, imagine coding all those choices and possibilities into the agent itself, not just for the fridge but also for all the possible objects in the world it would be a disaster, and impossible to maintain. On the other side of the responsibility divide, the agent can also be selective about what kinds of advertisements it accepts. We can use this to build different agent subtypes or personalities: for example, in a later section we will describe how to use advertisement filtering to implement child agents, with different abilities and opportunities than adults. Advertisement Scoring Once we have an object s advertisements, we need to score them, and stack them against all the other advertisements from other objects. We score each advertisement separately, based on the reward it promises (eg. +10 environment), and the agent s current needs. Of course it s not strictly necessary that those rewards actually be granted as promised; this is known as false advertising, and can be used with some interesting effects, described later. Here are some common scoring functions, from the simplest to the more sophisticated: a. Trivial scoring future value need = current value need + advertised delta need score = all needs (future value need ) Under this model, we go through each need, look up the promised future need value, and add them up. For example, if the agent s hunger is at 70, an advertisement of +20 hunger means the future value of hunger will be 90; the final score is the sum of all future values. This model is trivially easy, and has significant drawbacks: it s only sensitive to the magnitude of changes, and doesn t differentiate between urgent and non-urgent needs. So increasing hunger from 70 to 90 has the same score as increasing thirst from 10 to 30 but the latter should be much more important, considering the agent is very thirsty!
5 b. Attenuated need scoring Needs at low levels should be much more urgent than those at high levels. To model this, we introduce a non-linear attenuation function for each need. So the score becomes: score = all needs A need (future value need ) where A need is the attenuation function, mapping from a need value to some numeric value. The attenuation function is commonly non-linear and non-increasing: starts out high when the need level is low, then drops quickly as the need level increases. For example, consider the attenuation function A(x) = 10/x. An action that increases hunger to 90 will have a score of 1/9, while an action that increases thirst to 30 will have a score of 1/3, so three times higher, because low thirst is much more important to fulfill. These attenuation functions are a major tuning knob in needs-based AI. You might also notice one drawback: under this scheme, improving hunger from 30 to 90 would have the same score as improving it from 50 to 90. Worse yet, worsening hunger from 100 to 90 would have the same score as well! This detail may not be noticeable in a running system, but it s easy to fix, by examining the need delta as well. c. Attenuated need-delta scoring It s better to eat a filling meal than a snack, especially when you re hungry, and worse to eat something that leaves you hungrier than before. To model this, we can score based on need level difference: score = all needs (A need (current value need ) - A need (future value need )) For example, let s consider our attenuation function A(x) = 10/x again. Increasing hunger from 30 to 90 will now score 1/3 1/9 = 2/9, while increasing it from 60 to 90 will score 1/6 1/9 = 1/18, so only a quarter as high. Also, decreasing hunger from 100 to 90 will have a negative score, so it will not be selected unless there is nothing else to do. Action Selection Once we know the scores, it s easy to pick the best one. Several approaches for arbitration are standard: Winner-takes-all: the highest-scoring action always gets picked. Weighted-random: do a random selection from the top n (eg. top 3) high-scoring advertisements, with probability proportional to score.
6 Other approaches are easy to imagine, such as a priority-based behavior stack. In everyday implementation, weighted-random is a good compromise between having some predictability about what will happen, and not having the agent look unpleasantly deterministic. Action Selection Additions The model described above can be extended in many directions, to add more flexibility or nuance. Here are a few additions, along with their advantages and disadvantages: a. Attenuating score based on distance Given two objects with identical advertisements, an agent should tend to pick the one closer to them. We can do this by attenuating each object s score based on distance or containment: score = D ( all needs ( ) ) where D is some distance-based attenuation function, commonly a non-increasing one, such as the physically-inspired D(x) = x / distance 2 However, distance attenuation can be difficult to tune, because a distant object s advertisement will be lowered not just compared to other object of this type, but also compared to all other advertisements. This may lead to a bird in hand kind of behavior, where the agent always prefers a much worse action nearby rather than a better one further away. b. Filtering advertisements before scoring It s useful to add pre-requisites to advertisements: for example, kids should not be able to operate stoves, so the stove should not advertise the cook action to them. This can be implemented in several ways, from simple attribute tests, to a full language for expressing predicates. It s often best to start with a simple filter mechanism, because complex prerequisites are more difficult to debug when there are many agents running around. An easy prerequisites system could be as simple as setting Boolean attributes on characters (eg. is-adult, etc.), and adding an attribute mask on each advertisement; action selection would only consider advertisements whose mask matches up against the agent s attributes.
7 c. Tuning need decay Agents need levels should decay over time; this causes agents to change their priorities as they go through the game. We can tune this system by modifying need decay rates individually. For example, if an agent s hunger doesn t decay as quickly, they will not need to eat as often, and will have more time for other pursuits. We can use this to model a bare-bones personality profile, eg. whether someone needs to eat/drink/entertain themselves more or less often. It can also be used for difficulty tuning: agents whose needs decay more quickly are harder to please. d. Tuning advertisement scores The scoring function can also simulate simple personality types directly, by tuning down particular advertisement scores. To do this, we would have each agent contain a set of tuning parameters, one for each need, which modify that need s score: new score agent, need = old score agent, need * tuning agent, need For example, by tuning down the +hunger advertisement s score, we ll get an agent that has a stronger preference for highly-fulfilling food; tuning up a +thirst advertisement will produce an agent that will happily opt for less satisfying drinks, and so on. e. Attenuation function tuning Attenuation functions map from low need levels to high scores. Each need can be attenuated differently, since some needs are more urgent than others. As such, they are a major tuning knob in games, but a delicate one because their effects are global, affecting all agents. This requires good design iterations; but analytic functions (eg. A(x) = 10/x) are not easy for designers to tweak or reason about. A happy medium can be found by defining attenuation functions using piecewise-linear functions (ie. point pairs that define individual straight-line segments, rather than continuous, analytic formulas). These can be stored and graphed in a spreadsheet file, and loaded during the game.
8 Action Performance Having chosen something to do, we push the advertisement s actions on the agent s action queue, to be performed in order. Each action would routinely be a complete mini-script. For example, the stove s clean action might be small script that: - Animates the agent getting out a sponge, scrubbing the stove - Runs the animation loop, and an animated stove condition meter - Grants the promised reward It s important that the actual reward be granted manually as part of the action, and not be awarded automatically. This gives us two benefits: - Interrupted actions will not be rewarded. - Objects can falsely advertise, and not actually grant the rewards they promised. False advertisement is an especially powerful, but dangerous option. For example, suppose that we have a food item that advertises a hunger reward, but doesn t actually award it. A hungry agent would be likely to pick that action but since they got no reward, at the next selection point they would again likely pick, and then again, and again. This quickly leads to very intriguing addictive behaviors. This may seem like a useful way to force agents to perform an action. But it s just as hard to make them stop once they ve started. False advertisements create action loops that are very difficult to tune. In practice, forcing an action is easier done by just pushing the desired action on the agent s action queue. Action Chaining Performing a complex action such as cooking a meal usually involves several steps (such as preparation and cooking), and several objects (a fridge, a cutting board, a stove). This sequence must not be atomic steps can be interrupted, or they can fail due to some external factors. Complex sequences are implemented by chaining multiple actions together. For example, eating dinner might decompose into several separate actions: - Take a food item from the fridge. - Prepare the food item on a counter. - Cook the food item on the stove. - Sit down and eat, thereby getting a hunger reward. It would be suboptimal to implement this as a single action; there is too much variability in the world for it to always work out perfectly.
9 We can create action sequences in two ways. The simpler way is to just manufacture the entire sequence of actions right away, and push the whole thing on the agent s queue. Of course these steps can fail, in which case the remaining actions should also be aborted. For some interesting side-effects, aborting an action chain could create new actions in its place; for example, a failed cook food action sequence could create a new burned food object that needs to be cleaned up. The second method, more powerful but more difficult, is to implement action chaining by lazy evaluation. In this approach, only one action step is created and run at a time, and when it ends, it knows how to create the next action and front-loads it on the queue. For an example of how that might look, consider eating dinner again. The refrigerator s advertisement would specify only one action: take food. That action, towards the end, would then find the nearest kitchen counter object, ask it for the prepare food action, and load that on the queue. Once prepare food was done, it would find the nearest stove, ask it for a new cook food action, and so on. Lazy action chaining makes it possible to modify the chain based on what objects are available to the agent. For example, a microwave oven might create a different cook food action than a stove would, providing more variety and surprise for the player. Second, it makes interesting failures easier. For example, the stove can look up some internal variable (eg. repair level) to determine failure, and randomly push a create a kitchen fire action instead. In either case, using an action queue provides nice modularity. Sequences of smaller action components are more loosely coupled, and arguably more maintainable, than standard state machines. Action Chain State Saving When an action chain is interrupted, we might want to be able to save its state somehow, so that it gets picked up later. Since all actions are done on objects, one way to do this is to mutate the state of the object in question. For example, the progress of cleaning can be stored as a separate numeric cleanness value on an object, which gets continuously increased while the action is running. But sometimes actions involve multiple objects, or the state is more complicated. Another way to implement this is by creating new state objects. An intuitive example is food from the original Sims: the action of prepping food creates a prepped food object, cooking then turns it into a pot of cooked food, which can be plated and turned into a dinner plate. The state of preparation is then embedded right in the world: if the agent is interrupted while prepping, the cut up food will just sit there, until the agent picks it up later and puts it on the stove.
10 Design Consequences of Needs-Based AI With the technical details of needs-based AI behind us, let s also consider some of the design implications of this style of development, since it s different from more traditional techniques. First of all, the player s experience with this AI really benefits from adding some feedback to the agents. Developers can just look at the internal variables, and immediately see: the agent is doing this because it s hungry, or sleepy, or other such. But the player will have no such access, and is likely to build an entirely different mental model of what the agent is doing. Little bits of feedback, like thought bubbles about what needs is being fulfilled, are easy to implement, and go a long way towards making the system comprehensible to the player. Second point is about tuning: some of the tunable parameters have global effect, and are therefore very difficult to tune after the game has grown past a certain size. The set of needs, their decay rates, score attenuation functions, and other such elements, will apply to all characters in the game equally, so tuning them globally requires a lot of testing and a delicate touch. If a lot of variety is desired between different parts of the game, it might be a good idea to split the game into a number of smaller logical partitions (levels, etc.) and have a different set of those tunable parameters, one for each partition. Ideally, there would be a set of global tuning defaults, which work for the entire game, and each partition could specifically override some of them as needed. Partitioning and overriding tuning values buys us greater flexibility, although at the cost of having to tune each partition separately. Third, this AI approach tends heavily towards simulation, and makes it hard to do scripted scenes or other triggered actions. Imagine implementing some actions on a trigger, such as having the agent approach the player when he comes into view. One might be tempted to try to implement that using just needs and advertisements, but the result will be brittle. If particular one-off scripted behaviors are desired, it would be better to just manually manufacture appropriate action sequences, and forcibly push them on the agent s action queue. But in general, this overall approach is not very good for games that need a lot of triggered, scripted sequences (eg. shooter level designs). Needs-based AI works better for simulated worlds, rather than scripted ones. Final Words Needs-based AI is computationally very efficient; only a trivial amount of the CPU is required to pick what to do, and to handle the resulting action sequence. The system s internals are very easy to understand, by just inspecting the agent s internal needs values one can get a good idea
11 of why it does what it does. And by externalizing the set of possible actions into the world, the system also achieves great modularity: the AI can be reconfigured literally by adding or removing objects around the agent. In spite of unusual design consequences, the needs-based approach is very capable, easy to implement, and effective at creating good characters. It s a powerful tool for many situations. Acknowledgments Thanks to Ken Forbus and Richard Evans, from whom I ve learned most of what I know about this style of AI. References [Arkin98] Arkin, R., Behavior Based Robotics, MIT Press, 1998.
Introduction: This is a game that has three sprites that change costume. You have to stop them when they re showing the same picture (like a fruit machine!). Activity Checklist Follow these INSTRUCTIONS
1 2. 6 2 + 1. 7 0 10 3 + 7 1 4. 3 2 1 231 200 and 30 100 100 10 10 10 Maths in School Addition in School by Kate Robinson 2 Addition in School Contents Introduction p.3 Adding in everyday life p.3 Coat
Financial Freedom: Three Steps to Creating and Enjoying the Wealth You Deserve What does financial freedom mean to you? Does it mean freedom from having to work, yet still being able to enjoy life without
Game Maker Tutorial Creating Maze Games Written by Mark Overmars Copyright 2007-2009 YoYo Games Ltd Last changed: December 23, 2009 Uses: Game Maker 8.0, Lite or Pro Edition, Advanced Mode Level: Beginner
Copyright (c) 2015 Christopher Small and The Art of Lawyering. All rights reserved. 1 In this special report, I ll be sharing with you the ten biggest mistakes that lawyers make when marketing their law
WHITEPAPER Creating and Deploying Predictive Strategies that Drive Customer Value in Marketing, Sales and Risk Overview Angoss is helping its clients achieve significant revenue growth and measurable return
Usability Test Results Task: Starting Position: 1 Home Scene Lauren DiVito March 6, 2014 Moderator Script: Evaluation Measures: Notes to Moderator: Task: Starting Position: Moderator Script: Evaluation
Chapter 1 Options Trading and Investing In This Chapter Developing an appreciation for options Using option analysis with any market approach Focusing on limiting risk Capitalizing on advanced techniques
Artificial Intelligence in The Sims series Plan de la présentation 1 The Game 2 3 4 5 6 Introduction History The Sims Player/AI Will Wright s genius : Simulating life Simcity (1989) SimAnt (1991) The Sims
breakfast habits change as they grow older. Take hot cereal as an example, there is a clear relationship between age and consumption incidence: 15-24 years old: 37% 25-34 years old: 45% 35-49 years old:
DM810 Computer Game Programming II: AI Lecture 11 Marco Chiarandini Department of Mathematics & Computer Science University of Southern Denmark Resume Decision trees State Machines Behavior trees Fuzzy
The Car Tutorial Part 1 Creating a Racing Game for Unity Introduction 3 We will show 3 Prerequisites 3 We will not show 4 Part 1: Assembling the Car 5 Adding Collision 6 Shadow settings for the car model
Moving on If you re still reading this, congratulations, you re likely to be in the minority of traders who act based on facts, not emotions. Countless others would have simply denied the facts, and moved
What mathematical optimization can, and cannot, do for biologists Steven Kelk Department of Knowledge Engineering (DKE) Maastricht University, NL Introduction There is no shortage of literature about the
Dimes to Riches Money Management for Teens in Grades 7-12 s e e r t n o row g t n s e o yd e n o M t a! h k t n a w b o n a k t u n By now yo Your parents are & Life is getting busy and you need cash for
A Comparison of System Dynamics (SD) and Discrete Event Simulation (DES) Al Sweetser Andersen Consultng 1600 K Street, N.W., Washington, DC 20006-2873 (202) 862-8080 (voice), (202) 785-4689 (fax) email@example.com
AdWords Explained in 915 Words Find Out What Separates the Men From the Boys in the Google AdWords Game Thanks to an unexpected Amazon.com gift card from a consulting client, I ve been reading Tim Ferriss
Contracting for Agile Software Projects Author: Peter Stevens As a customer or supplier of software services at the beginning of a Software Development Project, you know that there is too much at stake
James Marchant Founder of Diligence Digital firstname.lastname@example.org 01424 447858 Over 15 years of experience in the digital industry. Hello and congratulations on taking the time out to read our booklet.
The complete guide to becoming a mortgage advisor Mortgage advisors help people with one of the biggest purchases of their lives, helping them to secure a mortage to buy or re-mortgage property. If you
Free Will Freedom: To possess freedom of choice is to possess the ability to do otherwise. Furthermore, if one is NOT able to do otherwise (i.e., if one is not free), then one is not responsible for their
CHAOS LIMITATION OR EVEN END OF SUPPLY CHAIN MANAGEMENT Michael Grabinski 1 Abstract Proven in the early 196s, weather forecast is not possible for an arbitrarily long period of time for principle reasons.
1 Understand how PPC can help you achieve your marketing objectives at every stage of the sales funnel. 2 WHO IS THIS GUIDE FOR? This guide is written for marketers who want to get more from their digital
The LEGO MINDSTORMS NXT 2.0 robotics kit includes three types of sensors: Ultrasonic, Touch, and Color. You can use these sensors to build a robot that makes sounds when it sees you or to build a vehicle
Chapter Four: How to Collaborate and Write With Others Why Collaborate on Writing? Considering (and Balancing) the Two Extremes of Collaboration Peer Review as Collaboration * A sample recipe for how peer
Clear and Present Payments Danger: Fraud Shifting To U.S., Getting More Complex Q: Good morning, this is Alex Walsh at PYMNTS.com. I m joined by David Mattei, the vice president and product manager for
By: Rob McDougall Upstream Works Software August 2010 Analytics means a lot of different things to different people. One of the foundational principles of any analytics effort is to ensure that the information
cannabis TOO MUCH TOO OFTEN? Okay, so cannabis gets you high. It helps you to relax and unwind and can make you feel good... ...but are you in control of your cannabis use? Or is it controlling you? You
6.2.8 Neural networks for data mining Walter Kosters 1 In many application areas neural networks are known to be valuable tools. This also holds for data mining. In this chapter we discuss the use of neural
Why It s Time to Say Goodbye to Outdated Marketing Strategies and Start Getting Results KAYAK is your internet marketing game changer. PLEASE SHARE (Always Attribute) Online marketing is a moving target,
Cambridge TECHNICALS OCR LEVEL 3 CAMBRIDGE TECHNICAL CERTIFICATE/DIPLOMA IN IT DEVELOPING COMPUTER GAMES K/601/7324 LEVEL 3 UNIT 10 GUIDED LEARNING HOURS: 60 UNIT CREDIT VALUE: 10 DEVELOPING COMPUTER GAMES
White Paper Thirsting for Insight? Quench It With 5 Data Management for Analytics Best Practices. Contents Data Management: Why It s So Essential... 1 The Basics of Data Preparation... 1 1: Simplify Access
INTRUSION PREVENTION AND EXPERT SYSTEMS By Avi Chesla email@example.com Introduction Over the past few years, the market has developed new expectations from the security industry, especially from the intrusion
1 07/09/15 2 14/09/15 3 21/09/15 4 28/09/15 Communication and Networks esafety Obtains content from the World Wide Web using a web browser. Understands the importance of communicating safely and respectfully
Lecture 10: Regression Trees 36-350: Data Mining October 11, 2006 Reading: Textbook, sections 5.2 and 10.5. The next three lectures are going to be about a particular kind of nonlinear predictive model,
WHITE PAPER Modeling the Relation Between Driving Behavior and Fuel Consumption Many companies are investing in coaching services for professional drivers with the goal of teaching them how to reduce fuel
Filename: P4P 019 The Facts of Life Insurance Todd: [0:00:18] Hey everybody, welcome to another edition of The Prosperity Podcast, this is No BS Money Guy Todd Strobel. Once again, we re lucky enough to
1 Introduction Project 2: Character Animation Due Date: Friday, March 10th, 11:59 PM The technique of motion capture, or using the recorded movements of a live actor to drive a virtual character, has recently
Improving the Performance of a Computer-Controlled Player in a Maze Chase Game using Evolutionary Programming on a Finite-State Machine Maximiliano Miranda and Federico Peinado Departamento de Ingeniería
: These are the basic ideas in setting up a load test By: Bob Wescott Summary Load testing requires you to select transactions that are important to you and then synthetically generate them at a rate that
CS 2112 Spring 2014 Assignment 3 Data Structures and Web Filtering Due: March 4, 2014 11:59 PM Implementing spam blacklists and web filters requires matching candidate domain names and URLs very rapidly
A Guide to Car Sharing Frequently Asked Questions We ve prepared a list of frequently asked questions about car sharing and also a best practice guide (some dos and don ts) for those participating in the
ThreatSpike Dome: A New Approach To Security Monitoring 2015 ThreatSpike Labs Limited The problem with SIEM Hacking, insider and advanced persistent threats can be difficult to detect with existing product
AdWords Explained in 876 Words PPC Audit XMen Thanks to an unexpected Amazon.com gift card from a consulting client, I ve been reading Tim Ferriss new book, The Four Hour Chef. Now, honestly, I have no
Reducing Customer Churn A Love Story smarter customer contact Breaking up is hard to do The old adage that it s cheaper (and better) to hold onto an existing customer than to acquire a new one isn t just
GUIDE Social Media Strategy Guide How to build your strategy from start to finish Social Media Strategy Guide How to build your strategy from start to finish Whether you re a social media coordinator for
A Guide to Developing a Workflow System for Your Financial Advisory Firm A financial advisory firm cannot deliver a high level of service to its clients efficiently and profitably without a workflow system
2009-8-18 0 Insurance and Gambling Eric Hehner Gambling works as follows. You pay some money to the house. Then a random event is observed; it may be the roll of some dice, the draw of some cards, or the
Object Calisthenics 9 steps to better software design today, by Jeff Bay http://www.xpteam.com/jeff/writings/objectcalisthenics.rtf http://www.pragprog.com/titles/twa/thoughtworks-anthology We ve all seen
Which Database Will Serve Your Needs? National EMSC Data Analysis Resource Center Central to any EMS, public health, or large healthcare organization is the collection, storage, retrieval, and analysis
Primes Name Period A Prime Number is a whole number whose only factors are 1 and itself. To find all of the prime numbers between 1 and 100, complete the following exercise: 1. Cross out 1 by Shading in
10 LESSON NAME: Conditionals: (Coding with Cards) Lesson time: 45 60 Minutes : Prep time: 2 Minutes Main Goal: This lesson will introduce conditionals, especially as they pertain to loops and if statements.
Why You Need A BUY-SELL AGREEMENT A buy-sell agreement is a must-have anytime a person goes in on a business with a partner. Failing to have one means failing to protect your family and yourself. (1) Fallout
6 A/B Tests You Should Be Running In Your App Introduction Everyone in mobile believes in A/B testing. But if you re wasting your days testing nothing more than various colors or screen layouts: you re
CALL 13 2200 VISIT A TELSTRA STORE telstra.com/homephone HOME FEATURES USER GUIDE DO MORE WITH YOUR HOME PHONE C020 JAN13 XXXXXXXX PHONE FEATURES THAT MAKE LIFE EASIER Our home features make it easy for
Tools & Automation Making the Right Choice The features you need in a GUI test automation tool by Elisabeth Hendrickson QUICK LOOK Factors to consider in choosing a GUI testing tool Treating GUI test automation
Nutrition E-book This e-book is a short overview of some of the most essential principles and concepts that we use at Rogue when dealing with nutrition and changing habits. This is not meant to be an all-inclusive
Agile support with Kanban some tips and tricks By Tomas Björkholm Foreword A year ago I held an Open Space at Scrum Gathering in Stockholm about Agile Support. I have since received several requests to
Make your own Temple Run game These instructions will talk you through how to make your own Temple Run game with your pupils. The game is made in Scratch, which can be downloaded here: http://scratch.mit.edu
What is ABA? Basic ABA Kiersten Johnson Milestones Autism Organization Milestones.org 216-371-4765 Applied Behavior Analysis B.F. Skinner www.lovaas.com Based on learning and behaviors principals Reinforcement
Your Complete Social Intranet Buyer s Guide & Handbook A growing business needs a good social intranet software platform. It helps you communicate and collaborate in one place. Read this ebook to get practical
Reputation Marketing Reputation Marketing Welcome to our training, We will show you step-by-step how to dominate your market online. We re the nation s leading experts in local online marketing. The proprietary
Customer Experience Blueprint Maturity tool This Customer Experience Blueprint Maturity Analysis tool is designed to help you to first to understand what is the current situation in your business and then
Marketing Automation: One Step at a Time 345 Millwood Road Chappaqua, NY 10514 www.raabassociatesinc.com Compliments of: Imagine a wall. Your small business is on one side and a pot of gold is on the other.
Challenges in Optimizing Job Scheduling on Mesos Alex Gaudio Who Am I? Data Scientist and Engineer at Sailthru Mesos User Creator of Relay.Mesos Who Am I? Data Scientist and Engineer at Sailthru Distributed
Systems Analysis Pseudocoding & Flowcharting 1 Flowcharting, pseudocoding, and process design The purpose of flowcharts is to represent graphically the logical decisions and progression of steps in the
Page 1 Table of Content The Psychic Lotto Formula Jackpot to Success System... 4 Part 1 Channeling the Power of Your Mind to Success... 6 Part 2 Visualization... 12 Part 3 Integrating Luck and Making it
Connectedness and the Emotional Bank Account Directions This is a self-guided activity that can be completed by parents, teens or both. It contains five parts and should take about 45 minutes to complete.
WHITE PAPER Creating your Intranet Checklist About this guide It can be overwhelming to run and manage an Intranet project. As a provider of Intranet software and services to small, medium and large organizations,
Random Fibonacci-type Sequences in Online Gambling Adam Biello, CJ Cacciatore, Logan Thomas Department of Mathematics CSUMS Advisor: Alfa Heryudono Department of Mathematics University of Massachusetts
Seven Things You Must Know Before Hiring a Real Estate Agent 1 Introduction Selling a home can be one of the most stressful situations of your life. Whether you re upsizing, downsizing, moving across the
Pay per Click Success 5 Easy Ways to Grow Sales and Lower Costs Go Long! The Benefits of Using Long Tail Keywords clogged sewage line, I ll see a higher conversion How many keywords are in your pay-per-click
AS BUSINESS Paper 2 Specimen Assessment Material Mark scheme Mark schemes are prepared by the Lead Assessment Writer and considered, together with the relevant questions, by a panel of subject teachers.
THE STATESMAN Volume 8 Issue 12 December 2005 Happy Holidays! From George Wythe College On Campus Seminars: Dec 16-17 Mar 4-5 Mar 7-8 May 2-27 May 30-31 July 15-16 Roots of America How to Read a Book A
PREPARING FOR GRADUATE SCHOOL IN COMPUTER SCIENCE Department of Computer Science Grove City College The faculty have put together this brief introduction to graduate school in computer science or computer
A KUNO CREATIVE EBOOK How to Get Started with MARKETING AUTOMATION So you have a database of a few thousand contacts. Every month you send those contacts a nice email newsletter with little bits of information
A Simple Guide to Churn Analysis A Publication by Evergage Introduction Thank you for downloading A Simple Guide to Churn Analysis. The goal of this guide is to make analyzing churn easy, meaning you wont
Send more, do less How retailers can use existing content to automate revenue-generating marketing emails It s a common theme in the marketing industry, but lack of time is difficult to overcome. Introduction
Managing Dynamics CRM 2013 Applications from Cradle to Grave A How-to Guide By: Riaan Van Der Merwe, General Manager, Dynamics, Neudesic Table of Contents Introduction...3 Creating the Right Fit...3 Solutions
Sage One tress-free ayroll Our 5 top tips to stress-free payroll What do I need to think about? Setting up and running a small business takes a lot of time and effort, so you need enthusiasm, confidence