GithubHelp home page GithubHelp logo

cejkaluk / heuristics-task-dependency Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 1.04 MB

Project comparing heuristic methods on activity-dependency problems. Implementation done using Python for the _Heuristic Algorithms_ course at FNSPE CTU.

License: MIT License

Makefile 0.55% Python 68.57% TeX 30.88%

heuristics-task-dependency's Introduction

Heuristic Methods for Activity Dependency Problems (HMADP)

Project comparing heuristic methods on activity-dependency problems. Implementation was done using Python for the Heuristic Algorithms course at FNSPE CTU.

Dependencies

Core Dependencies

The core dependencies for the HMADP project are:

  • Python - version 3.9.6 or newer.

Python Package Dependencies

The dependencies for HMADP are the following Python packages:

  • matplotlib - for visualizing problem timelines
  • nose2 - for unit tests
  • nose2-cov - for test coverage (with reports etc.)
  • numpy - for various operations during visualization
  • sphinx - for generating the documentation

They can be installed using the init task predefined in Makefile:

$ make init

How To

Run Unit Tests

Unit tests are written using the nose2 testing framework. They can be run using the following tasks predefined in Makefile:

# Run tests only
$ make tests

# Run tests with coverage
$ make tests_coverage

# Run tests with coverage and output the results into a html report
$ make tests_coverage_report

To remove the generated coverage report run:

$ make clean

Build the Documentation

Documentation is generated using sphinx. To build the documentation go to docs/ and run the following predefined task:

$ make html

To remove the documentation generate in docs/build/ execute the following in docs/:

$ make clean

Development

Visual Studio Code

The project was developed using Visual Studio Code. In an effort to produce conventional and somewhat correct code, a selection of Visual Studio Code extensions and non-default settings were employed.

Extensions

Non-default VS Code Settings

  • Files: Trim Trailing Whitespace - Trim the trailing whitespace at the end of a line when saving a file.

heuristics-task-dependency's People

Contributors

cejkaluk avatar

Watchers

 avatar

heuristics-task-dependency's Issues

Implementation in Protocol

Write the implementation part of the report - it should contain:

  • Introduction to the project
    • Project dependencies (Python, etc.)
    • How to use the program
  • Brief description of the implementation

Comparison of Heuristic Methods in Protocol

Write the comparison of the heuristic methods part of the report - it should contain:

  • Goal of the project: Compare heuristic methods on a task dependency problem
  • Example of an input problem
    • How each method performed
    • Add Gantt diagram for clear comparison
  • Results of comparison of 4 problems -> comparison of results

Loading Problem from File

Currently, only activities can be loaded from a CSV file. It would be nice to be able to load the entire project.

Requirements

  • Loading the project from a file.
  • Includes loading:
    • activities (and their required data), and
    • other properties of the project (r_max, etc.)

Notes

  • The CSV file format may not be the most optimal for loading different properties.
  • Consider using JSON, or something else that fits the requirements.

Theory in Protocol

Write the theory part of the report - it should contain:

  • Critical Path Method (CPM)
  • Serial Heuristic Method
  • Parallel Heuristic Method
  • Parallel Heuristic Method with Dynamic Priorities

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.