Scheduling algorithms (Was: Testing if two lines or vectors intersect/overlap)

View: New views
1 Messages — Rating Filter:   Alert me  

Scheduling algorithms (Was: Testing if two lines or vectors intersect/overlap)

by David Adams-4 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Tue, Nov 10, 2009 at 11:38 AM, Jeff Grann <jeff@...> wrote:

> 1) Do you allow recurring events to repeat forever?  If so, you'll need to
> define a reasonable limit to your search.

Good point. No, events occur within quarters with user-definable
start/end dates.So, there's always a finite start and finish.

> 2) I assume you are storing a single record for a recurrence event, and then
> the occurrences can be generated using its definition, rather than storing
> the occurrences as individual records.  Is this correct?

Not exactly. There's a master record that defines the event (there are
a ton of details for each event that have not much to do with the
schedule itself.) I'm planning, from there, to build out every single
event. Since these are on a quarterly basis, there won't be a huge
number of event instances per master event. The reason I'm thinking of
building the events out is that it makes it dead easy to
-- load the 'appointments' into hmCal.
-- search the events for whatever reason.
-- display the events as an agenda/list in a form or even on the Web.

As an example, if a person is scheduled to attend two different
repeating meetings, all I need are three user-event linking records:

    Mary    Search Committee for the Outstanding Achievement in the
Field of Excellence Awards
    Mary    Finding Some Decent Coffee for a Change Committee

>From here, I've got two meeting IDs and can query all of the matching
[Event] records. I now have Mary's schedule.

> 3) Do you need a simple boolean result (conflict/no conflict) or do you
> actually need to enumerate the conflicting dates/times?

Yes ;-) I'll do both.

> 4) You mention that you did a quick search for algorithms, but you didn't
> find any that were "written in human."  Are you saying that you thought you
> might have found one that would do what you want?  If so, does it just seem
> too complicated or impossible to implement in 4D?  Or are you saying that
> you just couldn't tell if it would fit the bill?

Yes ;-) I found a lot of electronics and formal queueing oriented
stuff. As soon as I need an IEEE membership to get at a description, I
figure it's above my head.

> 5) Do you need to check an event (which could be non-recurring or recurring)
> against all other events to see if there is a conflict (1 vs. N) or do you
> need to check all events against all other events for conflicts at the same
> time (N vs. N)?

I've got three scenarios:

* Does this specific event (a particular date/time) overlap with any
other events?
* Do these specific events (say ten events, each with a particular
date/time) overlap with any other events?
* Are there any conflicts amongst a group of events?

The last one might be testing for:
* Events that overlap in a room. (Double-booking.)

* Events that overlap on an individual's schedule. (Mary is charing
two events at once. Bob is going to two meetings at once.)

* Events that overlap with blocked times. (A holiday - probably
prevented during data entry. Or, imagine there's a hadron gas leak and
the building needs to be evacuated. Well, meetings will need to be
rescheduled.)

> The reason I ask is that I am just about to embark on a similar project and
> have many ideas on the subject.  And, of course, if there is a better way,
> I'm all ears.

Me too - all ears!
**********************************************************************
Get the speed and power of 4D v11 SQL
before upgrade prices increase - http://www.4d.com


4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4D.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4D_Tech-Unsubscribe@...
**********************************************************************