SNSRTREE 1.8.0 2010-01-09

This page is the root of the javadoc hierarchy for the Deceptive Detection Frontier Finder tool.


dd.engine The main computation package for the DNDO tool.
dd.gui This package contains all necessary classes for the Deceptive Detection Frontier Finder GUI.
dd.test This package contains several sample applications, designed to demonstrate I/O methods.
dd.util Auixiliary applications
dd.web Classes used to build a web interface for some of the SNSRTREE functionality


This page is the root of the javadoc hierarchy for the Deceptive Detection Frontier Finder tool. It includes command-line and graphics interfaces.

What is the Frontier Finder?

The Frontier Finder's main function is as follows: given a list of sensors, compute an "extremal frontier" for the set of all policies based on these sensors. The frontier is a set of policies that defines a "convex hull" of the set of all feasible policies in the (policy_cost, detection_rate) plane. That is, for any conceivable policy p there is a policy p' whose cost is the same as that of p, whose detection rate is the same or better than p, and which either is a one of the frontier policies, or is a linear combination ("mix") of two frontier policies.

Each sensor is described by its cost and its ROC curve. A basic assumption of the Frontier Finder (something that only rarely holds in real life) is that all sensors are completely independent: that is, if one looks at all bad policies as a group, there is no correlation between their "grading" by one test and their "grading" by any other test. The same goes for all good policies.

Using Frontier Finder

You can use the Frontier Finder in the following ways:

  1. Accessing out application, "Frontier Finder Lite" via your web browser
  2. Downloading and installing full-featured Frontier Finder application on your desktop. See readme for details.
  3. Using Frontier Finder API in your own software applications. Read the rest of this document, and follow links!

Getting started with Frontier Finder API

This document will help you getting started with using Deceptive Detection Frontier Finder API in your application.

Dataflow overview

One's application would usually use the Frontier Finder API in the following way:

  1. Create a list of Test objects representing sensors that one wish to combine into policies.
  2. Specify any required frontier generation options by creating a FrontierContext object.
  3. Run the Frontier Finder, which will generate a Frontier object (or, in the case of a non-zero pi, an array of Frontier objects) describing the extremal frontier. The method to use is Frontier.buildFrontier(Test[], FrontierContext, int, Vector) for pi=0, or Frontier.buildFrontiersMultiPi(double[], Test[], FrontierContext, int maxDepth) for non-zero pi.
  4. Extract desired information (e.g., Policy trees) from the a Frontier object(s) returned.

The Test, Frontier, and Policy classes all have I/O methods to save the data structures in human readable format, and to initialize them from human-readable description.

The package dd.gui (which is used in our Frontier Finder application) provides a graphical user interface for viewing Frontiers and Policies.

SNSRTREE 1.8.0 2010-01-09