The focus of this project is to develop algorithms and techniques to solve scheduling problems with prerequisites. The goal is to schedule a certain amount of events in as short of a time possible, while considering the fact that some events must occur before others, some events cannot occur at the same time due to conflicts, and that at any given time there is a bounded number of events that can be happening simultaneously (due to limited resources).
Scheduling university courses towards a degree is one instance of such a problem, and will be the initial focus of our algorithm implementations. Other important applications of these ideas lie in industry, such as scheduling the flow of materials through a factory: parts must go through a fixed order of processing and machines, yet all machines cannot be run on all parts at once.
The goal of this project is to develop a network-transparent architecture for computing an application's subtasks on many different computers. It will allow seamless communication of data between computers with different architectures, and transparent 'function calls' over the newtork. Each computer in the network will dynamically reassign subtasks as to maximize the use of available resources. The code for each subtask will also be propagated through the network and cached, allowing for applications whose code is not fully known initially (such as with cryptographic and security sensitive applicaitons) to utilize this framework.
XForms, demo apps, TR
Greatest-length paths can be useful in solving scheduling problems, among others. I wrote the Greatest_Cost_Path_Machine for several reasons: I initially began with a custom algorthm to calculate the greatest cost path between all pairs of vertices (u,v) in O(n3) time. This algorithm was far superior to any of the other ones I had developped. I also had developped a particular datastructure that would allow for constant-time lookup of the algorithm's results (which only needed to be calculated once), using an enhanced version of the adjacency matrix representation for graphs.
Automatic concurrency scheduling in data query hierarchies.
This project aims at developping written material to aid the understanding of key concepts for students enrolled
in introductory computer science courses.
The project has focused on the development of a simple explanation of the core concepts behind Pointers, including the rationale and
the formal description of their fundamental operations (this does not include such language dependent featues like pointer
arithmetic.) An as-of-yet-unpublished formal mathematical model of pointers was also developped during the course of this project.
Future work may include the development of chapters covering the fundamentals of Predicate Calculus and Topics
from set theory.
The goal of this project is to develop a cross-linked documentation browser for RESOLVE/C++ projects. RESOLVE files and comments follow a strict convention as to their format. Information contained in these formats can be parsed by a program to generate cross-linked documentation. The documentation system will eventually support online documentation browsing, syntax-highlighting and cross-linking of source code, and generation of printable documentation.
Beating the game by any means necessary.