Git Product home page Git Product logo

algorithm_analysis's Introduction

algorithm_analysis

License AppVeyor branch Travis (.org)

GitHub wiki

Empirical analysis of algorithms. Now you may think about standard empirical analysis methods like calculating theoretical complexity function on average. However, this approach has some downsides. The latest stay-of-the-art solution provides more complex analysis method (see original article).

Read more about this approach here.

In short, method includes two stages — the stage of preliminary research, the purpose of which is to test the hypothesis about the law of distribution of the algorithm’s labor intensity values as a discrete limited random variable, and the stage of the main study, which determines the values of the confidence labor intensity 𝑓𝛾(𝑛) as a function of the input length of the algorithm.

So, this repository contains system that allow you to fully automate such empirical analysis. Provide analysis to system, have a rest, relax, make a cup of coffee and get analysis result report upon completion!

Download

See releases page. You can download installer or portbale version.

Working examples

Check examples here.

Dependencies

Target .NET Standard is 2.1 for libraries, .NET Core is 3.1 for desktop app. Version of C# is 8.0. You can install all .NET dependencies using NuGet package manager.

Target C++ part of project is used C++17 standard. No external C++ dependencies are used.

Set up project guide

You can read full instruction in project Wiki.

License information

This project is licensed under the terms of the Apache License 2.0.

Third party software and libraries used

Table of content [click to expand]

Copyright © 2020 Vasily Vasilyev ([email protected])

License: Apache License 2.0

Copyright © 2004-2020 Jaroslaw Kowalski ([email protected]), Kim Christensen, Julian Verdurmen

License: BSD 3-Clause

Copyright © 2002-2019 Math.NET

License: MIT/X11

Copyright © EPPlus Software AB

License: PolyForm Noncommercial License 1.0.0

Copyright © James Willock, Mulholland Software and Contributors

License: MIT License

Copyright © .NET Foundation

License: MIT License

Copyright © 2003-2015 Marcos Meli (www.filehelpers.net)

License: MIT License

Copyright © .NET Foundation and Contributors

License: Apache License 2.0

Copyright © Tony Qu and Contributors

License: Apache License 2.0

algorithm_analysis's People

Contributors

dependabot[bot] avatar vasar007 avatar

Watchers

 avatar  avatar

algorithm_analysis's Issues

Allow users to configure Algorithm Analysis System through "Settings" page

Is your feature request related to a problem? Please describe.

If users want to configure Algorithm Analysis System, they should find installation folder and configuration file there and modify it. This process is too complecated for the most users.

Describe the solution you'd like

We should create "Settings" page in DesktopApp and provide an opportunity to configure application through this page. All changes should be synchonized with configuration file to avoid inconsistency if users want to modify configuration file directly.

Workaround

Now you can change settings only though configuration file. You can find its in installation folder of Algorithm Analysis System with the name config.json. The default content of configuration file you can see here.

Note: the default installation folder path for Windows: C:\Program Files\AlgorithmAnalysis.

Additional context

This issue is linked with issue #4.

Invalid algorithm results processing when MaxDegreeOfParallerism > 1

Describe the bug

Algorithm Analysis System provides selection of parallerim degree but there are several issues with multithreding algorithm results processing. So, the final result may be corrupted if algorithm module will finish work in minimal amount of time.

Workaround

You can avoid multithreading issue if set MaxDegreeOfParallerism equals to 1. In that case all modules will be launched sequentially and no resul data will be corrupted.

Should delete working folder when system uninstalling

Describe the bug

When user uninstalled Algorithm Analysis System some files and folders remain.

Workaround

You can delete working folder by youself.

Default working folder for Windows:
C:\ProgramData\AlgorithmAnalysis

Default working folder for Linux and MacOS (if you use only DomainLibrary):
/usr/share/AlgorithmAnalysis

If there are no folder, check configuration file to find where Algorithm Analysis System stores their data.

Cannot launch Algorithm Analysis System without configuration file

Is your feature request related to a problem? Please describe.

Now users cannot launch Algorithm Analysis System if there is no configuration file in the same directory.

Describe the solution you'd like

We should specify default values for all configuration properties. If this cannot be done, e.g. algorithm modules description, we can show warnings and ask to provide required information.

Workaround

If you deleted configuration file, you can reinstall Algorithm Analysis System or download the defult one here.

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.