Skip to content

Implementation Notes

dragn edited this page Nov 18, 2012 · 1 revision

Algorithm development

Before the development of distributed usable platform we must develop core education program of a high quality.
Tutor software already exists, but only for Omega networks (see Network specifications). And there is no useful 'quality assurance' program to test networks' quality. So the main tasks right now is:

  1. Develop a 'quality testing' program that tests the quality of Alpha networks. It must mainly evaluate two aspects: Reliability (the percentage of real values that fall in network's output range) and Advantage (range, provided by network must be as small as possible).
    Reliability is calculated as a relation between the intersection of real-range and network-range and the real-range.

     Reliability = |real-range П network-range| / |real-range| * 100%
    

    Advantage is a relation between real-range and network range.

     Advantage = |real-range| / |network-range| * 100%
    

    The best network will have 100% reliability and 100% advantage. It's also important that reliability has more priority in networks' verification than advantage. That is, the network with higher priority is always better than the network with lower priority even if the latter has more advantage.

  2. Add code for Alpha networks in tutor and tester.

Framework development

  1. Implement a simple mbgatherer on ruby, that connects to finam through http requests and stores the data in the database.
    Fetching data is trivial. We must generate a get request with certain parameters, for example:

     http://195.128.78.52/GAZP_120313_120313.txt?market=1&em=16842&code=GAZP&df=13&mf=2&yf=2012&dt=13&mt=2&yt=2012&p=7&f=GAZP_120313_120313&e=.txt&cn=GAZP&dtf=1&tmf=1&MSOR=0&mstime=on&mstimever=1&sep=1&sep2=1&datf=2&at=1
    

    It must listen for SOAP requests on specified port. For now it must support two type of requests: request for education data for mbtutor (format specified through separate script), and request for most recent data for analytics.
    Application should be able to return the data of specified format for any contract and data range. More details later...

  2. Implement a simple mbanalytic. Again, on ruby.
    The application must be able to respond to two types of requests: 'A': return actual data for specified contract name and prediction network output on this data, 'B': initiate a network education process.

    Actions on request 'A':

    • If there is no appropriate network exists, the application must respond "No appropriate network exists, try creating new network for this contract", if network education is in progress, respond with network education completion rate.
    • Network found for specified contract name. Ask the mbgatherer for the actual data for this contract,
    • run the network on this data,
    • respond with actual data and network output (appropriately scaled).

    Actions on request 'B':

    • If network is in the process of education respond with completion rate.
    • Ask mbgatherer for an education data,
    • run mbtutor and pass him the data.
    • respond the status.

Clone this wiki locally