Thursday, June 27, 2013

Automated Storytelling

One of the things that always fascinated me about AI was Automated Storytelling, or Emergent Narrative.  This is the idea that a computer can tell a compelling story.  There are a couple of approaches to this:

1. Fill in the blanks on a template-story; Think of this option as the Mad-Libs approach.  A lot of webpages use a simplified version of this for automatic plot generators, etc... Very hit-or-miss and the computer has no real understanding of the story it is creating.

2. Using grammar-type rules construct a legitimate story the same way you would construct a sentence; pick a hero, pick a compatible mission, pick a compatible obstacle, etc...

2. Create a world and characters to inhabit the world, set things loose and look for an interesting story to develop.  Think of this option as a Soap-Opera, or a Reality TV Show.  Things are very open-ended.

3. Create a world and characters, pick compelling plot-arcs and then force the characters into situations to fulfill the plot requirements.  This option can use sub-plots and back-seeding (changing previous portions of the story to support changes in the plot).  An AI construct known as fate can be used to keep the story on track, while another AI construct works on making the story dramatic, or funny, or whatever the theme of the story is.  I like to think of this option as a card game between two players (at least that's the way I'd implement it).

I've thought a lot about this topic over the years and I think I am ready to start trying a few things out.  I have started by looking over my notes and simplifying the ideas, one thing I've learned from working on Decision Aid Systems, Expert Systems, Natural Language Recognition, and doing Automatic Report Generation is that complexity rarely leads to a better result.

So, I am consolidating my 46 traits in seven spheres:
MIND: crazy romantic sensitive clever creative funny logical critical
ACTS: lazy trusting careful perceptive secretive suspicious controlling sleazy BODY: weak klutz lazy strong tense abusive
TALK: quiet follower gossip charismatic 
WORK: reckless selfish ambitious honest careful sacrificing  
LOVE: unselfish-love friends-love logical-love game-love posessive-love romantic-love 
LOOK: overweight dowdy plain athletic cute sexy glamorous exotic
into this:
MIND: ambitious, honest, romantic, player, possessive, planning
BODY: lazy, sexy, sleazy, reckless, abusive, addict
SOUL: crazy, leader, follower, gossip

I think that this offers sufficient variety, this also means Actors will have a limit of (up to) three traits each.

I'm narrowing in on a theme too, I'm going to go with deserted island (think Lost or Gilligans' Island) since it provides an easy sand-box (limited number of locations, don't have to worry about outside actors if we don't want to).

There are a number of other simplifications I'm making as well.  My hope is that this will simplify the rules engine that guides behavior.

PS - Here is an old-style set of Actors, there are some Stats that are hidden behind them as well:
Name: ____________   Sex: female
DOB: 21 JUN    AGE: YOUNG   JOB: judge (second-job)   Income: comfortable
     lucky sensitive perceptive tense
     healthy     dowdy        LOVE-STYLE: logical-love


Name: ____________   Sex: female
DOB: 21 JAN    AGE: OLD   JOB: accountant (cold-as-ice)   Income: average
      logical secretive strong quiet
     healthy     cute        LOVE-STYLE: logical-love


Name: ____________   Sex: male
DOB: 21 AUG    AGE: YOUNG   JOB: bar-tender (ugly-betty)   Income: comfortable
      sensitive careful  quiet
     healthy     plain        LOVE-STYLE: friends-love


And, here is the new version:
Name: _____________  Sex: female   Job: Engineer
Planning, Gossip

I'll post when I get a little further.
David



Wednesday, June 12, 2013

The Art of the Meeting

In any business there are a number of soft skills that are incredibly useful; a lot of people have talked about communication and technical writing, but I wanted to talk for a few minutes about another area that is often overlooked: Meetings.

A long time ago (when I was at Lockheed) everyone in our group was required to participate in Facilitator training (not just those running meetings), they believed that if everyone facilitates meetings they will run smoother.  My experience was very positive with meetings when everyone had the training.

The idea was that the facilitator should do everything they could to prepare the meeting to run smoothly:
- scrub the list of required vs. optional attendees. (don't waste peoples time)
- ensure all required attendees are available for the meeting. (avoid rescheduling)
- send out meeting notices well in advance (1 week+).
- include the agenda for the meeting prior to the meeting (eg. with the meeting notice). (keep the meeting focused and on-track)

Everyone in the meeting was expected to work on keeping the meeting on-track:
- fill-in for any role as needed (eg. Note taker, facilitator if you have the expertise and the facilitator isn't available at the start of the meeting)
- keep good thorough notes for the meeting, the note taker should share the minutes to all attendees after the meeting (by the next business day).
- during the meeting keep the topic on the agenda items, other issues should immediately be relegated to off-line discussion.
- once an item has been decided by group consensus be prepared to move on.

General:
- Be on time for the meeting.
- Action Items should be re-capped at the end of the meeting to ensure they are accurate.
- Action Items should be descriptive enough such that someone not at the meeting will immediately understand what needs to be done.
- Minutes should be descriptive enough such that someone not at the meeting will understand what was discussed.
- Keep the meeting on-track, distractions such as side-bars or phone calls should not take place (or at the very least be moved outside of the room).

Facilitator:
- ensure all resources are available and you know how to use them prior to the meeting (projectors, podium, etc...)
- don't schedule meetings if an alternative is available and appropriate. (don't waste peoples time)
   Phone Call (no documentation quick)
   In-Person Talk (no documentation, quick)
   Email Chain (provides documentation)
   Scheduled Meeting (slowest option, meeting invite and distributed minutes/action items provide documentation)

I don't mean to champion etiquette, but I've been at companies where some of these items weren't followed and it makes it very difficult to be productive.  Imagine discussing an Action Item from a month ago that says "Have Jake talk to the EP Group." or having a meeting scheduled and everyone preparing for it and then in the first five minutes of the meeting being told "we aren't going to be discussing that".

I've had it both ways; Facilitator training gets my vote.

Monday, June 10, 2013

A look at the Destroyers

Just a real quick post to a few links... many of you know that I have been working on Destroyers for a little over a decade now; first with Aegis and now with the MCS components.  Here are a couple of links showing off these ships:

DDG52
DDG112

They focus more on Aegis (acquiring targets and shooting missiles) and the big guns than MCS (electric plant , propulsion, damage control, fuel control, etc...), but I'm still proud of the work I do.