How and Why Python is Used in the Model of Real-World Battlefield Scenarios
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

How and Why Python is Used in the Model of Real-World Battlefield Scenarios

on

  • 1,103 views

How and Why Python is Used in the Model of Real-World Battlefield Scenarios

How and Why Python is Used in the Model of Real-World Battlefield Scenarios
Eric Silverman,
ALATEC Inc.

Statistics

Views

Total Views
1,103
Views on SlideShare
1,103
Embed Views
0

Actions

Likes
0
Downloads
12
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

How and Why Python is Used in the Model of Real-World Battlefield Scenarios Presentation Transcript

  • 1. Eric Silverman
    The opinions expressed here are the views of the writer and do not necessarily reflect the views and opinions of TRAC-WSMR, the US Army, or any organization or person associated with the US Government.
  • 2. U.S. Army: Research & Analysis
    How and why Python is being used by the Military to Model Real-World Battlefield Scenarios
    A Case Study on:
    How an open-source solution, at the user base level, was successfully implanted in a DoDorganization
  • 3. U.S. Army: Research & Analysis
    Support the U.S. Army
    Training and Doctrine Command (TRADOC)
    Analysis Center (TRAC)
    Mission of TRAC:  Provide relevant, credible analysis for informed decisions about the Army's most important and challenging issues.
    www.tradoc.army.mil
  • 4. Combat Model
    Known Data
    Combat Model
    End Results
    • Physics
    • 5. Quantitative Data
    • 6. Analytic
    • 7. Stochastic
    • 8. Closed Form
    • 9. Reports & Briefing Material
  • Scripted Behaviors
  • 10. Scripted Behaviors
    Hostile Engages Field Forces
    Hostile Evacuates to the North
    Support Unit Flank Hostile’s Position
    Hostile has Escaped!!!
  • 11. Cognitive Behaviors w/Python
  • 12. Cognitive Behaviors w/Python
    Location of target is…
  • 13. Cognitive Behaviors w/Python
  • 14. Cognitive Behaviors w/Python
  • 15. Cognitive Behaviors w/Python
  • 16. Relevance
    Much of our defense establishment is focused on Cold War doctrine and weapons.
    "Twenty years after the Cold War ended, this is simply not unacceptable. It's irresponsible.”
    President Obama (August 2009)
    The Question: How do we not fight our last war?
    The Answer: Open-Source Software (Jython)
  • 17. Jython Implementation
    COMBATXXI is developed with Java, and has an embedded Jython API
    Jython's features allow for quick creation and implementation of dynamic behaviors
    Each entity carries its own global Jython namespace throughout the simulation
    COMBATXXI has event triggers, which starts the entities' Jython scripts
  • 18. __.py
    Getters
    __.py
    Getters
    Encapsulated Source Code
    __.py
    Getters
    __.py
    Dynamic
    Behavior
    __.py
    Function
    Libraries
    Jython Implementation
  • 19. Example Code Snippet
    01 # from the Functions Library class
    02 # import the [is_Line-of-Sight_Between_Locations] method
    03 fromfuncLibraryimportisLOSBetweenLocations()
    04 # from the location wrapper class get the entity’s current location
    05 locOfMe = location.getMyCurrentLocation() # locOfMe is an object
    06 # test LOS east 5 meters at a time
    07 distRange = 5
    08 whilenoLOS != True: # using noLOS as a Boolean, loop until it is True
    09 # create a temporary location offset true east, by the value in distRange
    11 locTemp = locOfMe.newOffsetLocation(90, distRange ):
    12 # test to see if the two locations have line-of-sight
    13 noLOS = isLOSBetweenLocations(locOfMe, locTemp)
    14 distRange += 5 # increase the distance by 5 meters
    15 # create location object that is the longest point with line-of-sight
    16 locToMoveTo = locOfMe.newOffsetLocation(90, distRange-5 )
  • 20. Example Code Snippet
    16 locToMoveTo = locOfMe.newOffsetLocation(180, distRange-5 )
    17 # use the command wrapper class to create a move order object
    18 moveOrder = command.createMoveOrder()
    19 # add the destination location to the move order
    20 moveOrder.addDestination(locToMoveTo)
    21 # override the default rate of movement to 12 mph
    22moveOrder.overrideDefaultSpeed(12)
    23 # use the command wrapper class the execute the move order
    24 command.executeOrder(moveOrder)
    Note: Behavior script syntax has been altered as to not disclose FOUO information
  • 21. Workforce Implementation
    Complete Documentation for users, to include examples in code snippet
    Hands-on training sessions in computer labs
    Continual support for users
  • 22. Take Away
    Military Analyst are using Jython
    to Model Current and Future Battlefield Scenarios
    In an Agent Based Model
    Dynamic and Reactive Behaviors
    are being Developed with Jython
    Non-Programmers are Developing
    the Complex Behaviors with Jython
    Java-based Source Code is Encapsulated
    and Control Access is Provided
    with Jython Wrapper Classes
    Programmers Assist the EmpoweredUsers with
    Documentation, Training, and on going User Support
  • 23. Contact Information
    Eric Silverman
    Sr. Project Manager
    Defense Contractor
    esilverman@alatecinc.com
    (w) 575-679-1457 | (m) 575-915-6002
    ALATEC Inc
    A Service Disabled Veteran Owned Small Business
    www.alatecinc.com | twitter.com/alatec_jobs