Course scheduling software progress presentation december 22 2004
This presentation is the property of its rightful owner.
Sponsored Links
1 / 56

Course Scheduling Software Progress Presentation December 22, 2004 PowerPoint PPT Presentation


  • 43 Views
  • Uploaded on
  • Presentation posted in: General

Course Scheduling Software Progress Presentation December 22, 2004. Customer: Jed Lippard, Upper School Director, Prospect Hill Academy Charter School Team Members [email protected] Glen Winston Robert McKeever Steve Moran Valdeva Ives. Agenda. Project Status Risk Update

Download Presentation

Course Scheduling Software Progress Presentation December 22, 2004

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Course scheduling software progress presentation december 22 2004

Course Scheduling SoftwareProgress Presentation December 22, 2004


Course scheduling software progress presentation december 22 2004

Customer:

Jed Lippard, Upper School Director,

Prospect Hill Academy Charter School

Team Members

[email protected]

Glen Winston

Robert McKeever

Steve Moran

Valdeva Ives


Agenda

Agenda

  • Project Status

  • Risk Update

  • Architectural Overview

  • GUI Walkthrough

  • Model Overview

  • Scheduling

    • Proof of Concept

    • Constraint Programming

    • Technology Alternatives

    • Drools pros & cons

    • Drools Example

    • Scheduling API

  • Deployment Plan


Project status

Project Status

Presented by

Glen Winston


Project status1

Project Status


Process overview

Process Overview

  • Project Phases: Fall

    • Initiation (100% complete)

    • Analysis (100% complete)

    • Functional Design (100% complete)

    • Technical Design (70% complete)

  • Project Phases: Spring

    • Completion of Technical Design

    • Development

    • Testing

    • Deployment


Process overview technical design

Process Overview: Technical Design

  • Key Deliverable of this phase

    • Technical Specifications Document

      • Document all non-trivial classes in the system.

      • Informative sequence diagrams of key controllers in the system.

      • Document and prove algorithm for scheduling classes.


Risk update

Risk Update

Presented by

Steve Moran


Risks

Risks

  • Scheduling technology implementation – higher

    • Advancing Rule Base during semester break

    • Continuing Research into Production Systems & Constraints

    • Assigning 50% of team to task

  • Scheduling technology choice – moderate

    • Several well understood alternatives available

  • Post-Deployment Maintenance & Support – low to moderate

    • Specification biased toward currently stated requirements

    • Will rely on actual implementation

  • Added Requirement to schedule individual students – lower

    • Students primarily move in groups

    • Believe less involved than class scheduling

  • Feature creep – lower

    • Detailed documentation & customer contact

  • Insufficient time - lower

    • Following regimented process


Component overview

Component Overview

Presented by

Glen Winston


Architectural overview

Architectural Overview


Gui walkthrough

GUI Walkthrough

Presented by

Dee Dee Ives


Model overview

Model Overview

Presented by

Glen Winston


Model overview1

Model Overview


Scheduling proof of concept project goal

Scheduling Proof of Concept: Project Goal

Presented by

Glen Winston


Scheduling proof of concept project goal1

Scheduling Proof of Concept: Project Goal

Scheduler Component is highest area of risk in technical design.

Risk Mitigation Plan

  • Proof of concept

  • Two exclusive resources

  • Hand written algorithm fallback plan

    Proof of Concept is complete, we learned

    •We were able to create periods in a rules engine.

    •We were able to fill periods in a rules engine.


Scheduling proof of concept approach

Scheduling Proof of Concept: Approach

Presented by

Steve Moran


Scheduling problem to solve

Scheduling Problem To Solve

  • Students, Teachers, & Subjects,

  • in 7 grades, subdivided into cohorts (groups),

  • into classrooms of various sizes & locations,

  • with 7 daily schedule blocks,

  • with a rotating class schedule,

  • with 81 initial constraints.


Technology alternatives

Technology Alternatives

  • DROOLS – actively being prototyped

    • “understandable” XML style rules in java

  • JESS – capable, but licensing issues

  • CLIPS – “lisp style” rules implemented in C

  • JClips – directly runs CLIPS files in java

    • testbed for existing CLIPS.clp example files

  • Prolog – inefficient backward chaining

  • Brute force - inefficient backward chaining


Rete based inference engine

Rete-based Inference Engine

  • Declarative programming – “what is”

  • Forward chaining rules – “data driven”

  • Fast in-memory network

    • “The only algorithm for implementing production rules whose performance is demonstrably independent of the number of rules.”

  • Rules can change without recompiling


Course scheduling software progress presentation december 22 2004

Facts

Rules

Working Memory

Classes

Blocks

<parameter>

Domain

<condition>

Boolean

<consequence>

java

Rooms

Assert

Facts

Rules

Retract

Modify

Collections of Objects

Ordered by Salience

ReteAlgorithm

In a nutshell, we want to schedule Classes into Rooms with Blocks


Course scheduling software progress presentation december 22 2004

Before Rule Fires

After Rule Fires

222

222

101

101

Working

Memory

Rooms

Rooms

222 - 8AM

222 - 9AM

101 - 8AM

222 - 10AM

101 - 9AM

101 - 10AM

Blocks

<parameter> Room </parameter>

<condition> none </condition>

<consequence>

assert(new Block(room.num,8))

assert(new Block(room.num, 9))

assert(new Block(room.num, 10))

</consequence>


Course scheduling software progress presentation december 22 2004

room 101 has block at 8

room 101 has block at 9

room 101 has block at 10

room 222 has block at 8

room 222 has block at 9

room 222 has block at 10


Course scheduling software progress presentation december 22 2004

Working Memory

222 - 8AM

222

222 - 9AM

Math

101 - 8AM

222 - 10AM

101

English

101 - 9AM

101 - 10AM

Rooms

Blocks

Class

<consequence>

class.isScheduled = true

modify(class)

block.class = class.id

modify(block)

</consequence>

<parameter>

Room

Block

Class

</parameter>

<condition>

block.class = null

class.numStudents < room.capacity

class.isScheduled == false

</condition>


Course scheduling software progress presentation december 22 2004

Scheduling class: 5 in room: 101 at: 8

Scheduling class: 15 in room: 101 at: 9

Scheduling class: 6 in room: 101 at: 10

Scheduling class: 8 in room: 222 at: 8

Scheduling class: 16 in room: 222 at: 9

Scheduling class: 20 in room: 222 at: 10


Scheduling proof of concept challenges

Scheduling Proof of Concept: Challenges

Presented by

Bob McKeever


Constraint programming problem

Constraint Programming Problem

  • Scheduling is an NP Complete Problem.

  • Requires polynomial time to solve.

  • Could be solved trivially by using a systemic search.

  • Generate and test until a solution is found.


Constraint programming solutions

Constraint Programming Solutions

  • Backtracking.

  • Backtracking with Forward Checking.

  • Backtracking with Forward Checking and Heuristics.

  • Tic, Tac, Toe as an example


Drools negatives

Drools Negatives

  • Very little documentation.

  • Does not have all the same features as CLIPS. (At present “not” is not supported.)

  • Can not directly convert from CLIPS code to Drools code.

  • Small user community.

  • Just out of Beta.


Drools negatives con t

Drools Negatives (Con’t)

  • Team members have no experience with Drools programming.

  • 3 Team members have no experience with programming expert systems.


Drools positives

Drools Positives

  • Handles the constraints well. Much better than nested if statements.

  • Open source.

  • Seems to have a lot of “buzz”.

  • Did I mention it was free?


Drools positives con t

Drools Positives (Con’t)

  • We are starting to get up to speed with it. Now have some working examples.

  • May be able to post our work as an example on their web site to have others carry on. May help on maintenance issues.


Scheduling proof of concept drools sample

Scheduling Proof of Concept: Drools Sample

Presented by

Bob McKeever


Course scheduling software progress presentation december 22 2004

<?xml version="1.0" encoding="UTF-8"?>

<!--

The definition of a RuleExecutionSet is not within the scope of the JSR 94.

The implementation given in this file is written for the reference

implementation. A rule engine vendor verifying their rule engine should

modify this file to their specific needs.

-->

<rule-set name="Scheduler"

xmlns="http://drools.org/rules"

xmlns:java="http://drools.org/semantics/java"

xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"

xs:schemaLocation="http://drools.org/rules rules.xsd

http://drools.org/semantics/java java.xsd">

<java:import>java.util.*</java:import>

<java:import>org.drools.examples.schedule.model.Block</java:import>

<java:import>org.drools.examples.schedule.model.ClassInfo</java:import>

<java:import>org.drools.examples.schedule.model.ClassToSchedule</java:import>

<java:import>org.drools.examples.schedule.model.Room</java:import>

<java:import>org.drools.examples.schedule.model.RoomCourseRelation</java:import>

<java:import>org.drools.examples.schedule.model.RoomInfo</java:import>

<java:import>org.drools.examples.schedule.model.SchoolClass</java:import>


Course scheduling software progress presentation december 22 2004

<!--

Create the blocks

-->

<rule name="generate blocks" salience="40">

<parameter identifier="roomInfo">

<class>RoomInfo</class>

</parameter>

<java:consequence>

System.out.println("Making block " + roomInfo.number);

drools.assertObject(new Block(roomInfo.number, 8));

drools.assertObject(new Block(roomInfo.number, 9));

drools.assertObject(new Block(roomInfo.number, 10));

</java:consequence>

</rule>


Course scheduling software progress presentation december 22 2004

<!--

Schedule.

-->

<rule name="schedule" >

<parameter identifier="roomInfo"> <class>RoomInfo</class> </parameter>

<parameter identifier="block"> <class>Block</class> </parameter>

<parameter identifier="classInfo"> <class>ClassInfo</class> </parameter>

<java:condition> block.schoolClass == 0 </java:condition>

<java:condition> classInfo.numStudents &lt;= roomInfo.capacity </java:condition>

<java:condition> classInfo.isScheduled == false </java:condition>

<java:consequence>

classInfo.isScheduled = true;

drools.modifyObject(classInfo);

block.schoolClass = classInfo.id;

drools.modifyObject(block);

System.out.println("Scheduling class: " + block.schoolClass +

" in room: " + block.room + " at: " + block.time);

</java:consequence>

</rule>

</rule-set>


Scheduling api

Scheduling API

Presented by

Bob McKeever


Scheduling api1

Scheduling API


Deployment plan

Deployment Plan

Presented by

Bob McKeever


Deployment plan goals

Deployment Plan Goals

  • Keep customer informed.

  • Get buy in from customer’s IT administrator.

  • Create Windows executable.

  • Provide physical program to the customer.

  • Provide documentation to the customer.

  • Give the program the Windows look and feel.


Deployment plan actions

Deployment Plan Actions

  • Use launch4j to create a Windows executable with Splash screens and icons.

  • Meet with customer’s IT administrator. Request computer that has been backed up.

  • Create set up program using Wise for install and uninstall. Burn onto a CD.

  • Test!, Test!, Test!


Deployment plan actions con t

Deployment Plan Actions (Con’t)

  • Develop documentation and detailed installation instructions.

  • Provide professional documentation and CD.

  • Meet at Customers Site for installation.

  • Provide a Jar file version on the Web site of a generic scheduler. (One that does not have the customer’s logos on it and is not dependent on Windows to run.)


Course scheduling software progress presentation december 22 2004

Q & A


Backward forward chaining

Backward & Forward Chaining

Presented by

Steve Moran


Two approaches

Two Approaches

  • Backward Chaining

    • Imperative based systems – how to

    • Queries fact space for goal ‘truth’

    • Mechanism used in most most logic programming, i.e. Prolog

  • Forward Chaining

    • Declarative based systems – what is

    • Triggered on fact space information

    • A data driven technique to reach inferences from a set of facts


Backward vs forward chaining

Backward vs. Forward Chaining

  • Backward-chaining means that no rules are fired upon assertion of new knowledge. When an unknown piece of knowledge is detected all rules relevant to the knowledge in question are fired until the question is answered, if possible. Thus, backward chaining systems normally work from a goal state back to the original state.

  • Forward-chaining implies that upon assertion of new knowledge, all relevant rules are fired exhaustively, effectively making all knowledge about the current state explicit within the state. Forward chaining may be regarded as progress from a known state (the original knowledge) towards a goal state(s).

  • The branching factor (the number of considerations at each state) may vary between forward and backward chaining and thus determine which method is most efficient.

Source: http://ai.eecs.umich.edu/cogarch0/index.html


Course scheduling software progress presentation december 22 2004

Diagnosis

Patient

Source: http://www.cise.ufl.edu/class/cap6685sp03/Lectures/ES-CH4b.pdf


Backward vs forward chaining1

Backward vs. Forward Chaining

  • Backward-chaining means that no rules are fired upon assertion of new knowledge. When an unknown piece of knowledge is detected all rules relevant to the knowledge in question are fired until the question is answered, if possible. Thus, backward chaining systems normally work from a goal state back to the original state.

  • Forward-chaining implies that upon assertion of new knowledge, all relevant rules are fired exhaustively, effectively making all knowledge about the current state explicit within the state. Forward chaining may be regarded as progress from a known state (the original knowledge) towards a goal state(s).

  • The branching factor (the number of considerations at each state) may vary between forward and backward chaining and thus determine which method is most efficient.

Source: http://ai.eecs.umich.edu/cogarch0/index.html


Course scheduling software progress presentation december 22 2004

Source: http://www.cise.ufl.edu/class/cap6685sp03/Lectures/ES-CH4b.pdf


Course scheduling software progress presentation december 22 2004

Source: http://www.cise.ufl.edu/class/cap6685sp03/Lectures/ES-CH4b.pdf


Course scheduling software progress presentation december 22 2004

Source: http://www.cise.ufl.edu/class/cap6685sp03/Lectures/ES-CH4b.pdf


Backward vs forward chaining2

Backward vs. Forward Chaining

  • Backward-chaining means that no rules are fired upon assertion of new knowledge. When an unknown piece of knowledge is detected all rules relevant to the knowledge in question are fired until the question is answered, if possible. Thus, backward chaining systems normally work from a goal state back to the original state.

  • Forward-chaining implies that upon assertion of new knowledge, all relevant rules are fired exhaustively, effectively making all knowledge about the current state explicit within the state. Forward chaining may be regarded as progress from a known state (the original knowledge) towards a goal state(s).

  • The branching factor (the number of considerations at each state) may vary between forward and backward chaining and thus determine which method is most efficient.

Source: http://ai.eecs.umich.edu/cogarch0/index.html


  • Login