Giter VIP home page Giter VIP logo

pronerds's Introduction

Author: Cristinel Ababei
Research collaborator: Rajesh Kavasseri
December 2009, Fargo ND
[email protected]


Synopsis
========
This is the PRO-NERDS tool: efficient network reconfiguration of 
distribution systems for loss minimization. It is based on minimum-
cost maximum-flow algorithm. This tool is one result of my 
collaboration with Rajesh Kavasseri, also with NDSU.

The tool contains two network reconfiguration algorithms:
1.  Baran's method (used as reference)
2.  Proposed minimum-cost maximum-flow (mcmf) method: see our 
    paper for details [1]

Also, the tool contains two loss estimation techniques:
1.  DistFlow of Baran (used as reference)
2.  The proposed random-walks (rw) technique: see our paper 
    for details [1]

[1] C. Ababei and R. Kavasseri, Efficient network reconfiguration 
    using minimum cost maximum flow based branch exchanges and random 
    walks based loss estimations, IEEE Trans. on Power Systems, 
    vol. 26, no. 1, pp. 30-37, Feb. 2011.


Installation
============
The latest version of the tool can be downloaded from:
http://venus.ece.ndsu.nodak.edu/~cris/software.html
The tool was developed on a Linux machine running Fedora 8. 
It was last compiled on a Fedora 12. It should be compile-able 
on Windows too. On linux, first edit the Makefile to reflect 
the location where you want to compile and link. Then, just type:
> make


How to use the tool
===================
Type "nerds" at the command prompt to see the help menu.

Examples:
> nerds tests/bus_83_11.pos -reconfig_algo baran
> nerds tests/bus_83_11.pos -reconfig_algo mcmf 
> nerds tests/bus_83_11.pos -reconfig_algo mcmf -use_gui


Benchmarks
==========
The format is new. I proposed it in order to simplify the parsing
routines. See an example of benchmark file understood by the tool, 
at the end of this file as well as readme file from tests/.
All benchmarks (or testcases) are located tests/.


Things you might want to do
===========================
1. If you dig into it and find any bug, please let me know
2. If you use this code in a research project and want to 
include a reference to it, then please use:
[*] C. Ababei and R. Kavasseri, Efficient network reconfiguration 
    using minimum cost maximum flow based branch exchanges and random 
    walks based loss estimations, IEEE Trans. on Power Systems, 
    vol. 26, no. 1, pp. 30-37, Feb. 2011.
3. If you'll ever hit it big (to be read: make a lot of money :-) ),
and this code helped you in any way, then please consider 
donating some to support our research (we need it :-) )


Credits
=======
-- The initial version of CS2, which is here partially ported
to C++, was developed by Andrew Goldberg ([email protected]) and
Boris Cherkassky ([email protected])
-- Vaughn Betz (while at Univ. of Toronto) developed much of the GUI;


Copyright
=========
Copyright 2009-20xx by Cristinel Ababei ([email protected])
and Rajesh Kavasseri ([email protected]).
This Copyright notice applies to all files, called hereafter 
"The Software".
Permission to use, copy, and modify this software and its 
documentation is hereby granted only under the following 
terms and conditions.  Both the above copyright notice and 
this permission notice must appear in all copies of the 
software, derivative works or modified versions, and any 
portions thereof, and both notices must appear in supporting 
documentation.  Permission is granted only for non-commercial 
use.  For commercial use, please contact the author.
This software may be distributed (but not offered for sale 
or transferred for compensation) to third parties, provided 
such third parties agree to abide by the terms and conditions
of this notice.
The Software is provided "as is", and the authors, the 
North Dakota State University (NDSU), as well as any and
all previous authors (of portions or modified portions of
the software) disclaim all warranties with regard to this 
software, including all implied warranties of merchantability
and fitness.  In no event shall the authors or NDSU or any and
all previous authors be liable for any special, direct, 
indirect, or consequential damages or any damages whatsoever
resulting from loss of use, data or profits, whether in an
action of contract, negligence or other tortious action,
arising out of or in connection with the use or performance
of this software.


Example of benchmark: bus_13_3.pos (Civanlar)
=============================================
.PU 0                                           <-- Testcase is given in per unit values or not. 0 No 1 Yes
.V_base                                         <-- in [ kV ]
.S_base                                         <-- in [ MVA ]
.Branch_count 16                                <-- Number of branches counted from 0..15
.Sectionalizing_count 13                        <-- How many branches are sectionalizing
.Tie_count 3                                    <-- How many are tie switches
.Nodes 16                                       <-- Nodes counted from 0..15
.Feeders 3                                      <-- Number of feeders in system
.Feeder_node_ids 0 1 2                          <-- Feeder IDs are from 0..Num_feeders - 1
.Branch Src_bus Rec_bus R X PL_kw QL_kvar S_NS  <-- Next lines characterize branches
0 0 3 0.075 0.1 2.0 1.6 S
1 3 4 0.08 0.11 3.0 1.5 S
2 3 5 0.09 0.18 2.0 0.8 S
3 5 6 0.04 0.04 1.5 1.2 S 
4 1 7 0.11 0.11 4.0 2.7 S
5 7 8 0.08 0.11 5.0 3.0 S
6 7 9 0.11 0.11 1.0 0.9 S 
7 8 10 0.11 0.11 0.6 0.1 S 
8 8 11 0.08 0.11 4.5 2.0 S
9 2 12 0.11 0.11 1.0 0.9 S
10 12 13 0.09 0.12 1.0 0.7 S 
11 12 14 0.08 0.11 1.0 0.9 S
12 14 15 0.04 0.04 2.1 1.0 S
.Tie switches          <-- Remaining branches are the tie switches
13 4 10 0.04 0.04 
14 9 13 0.04 0.04 
15 6 15 0.12 0.12 
.Node x_coord y_coord  <-- Next lines give the placement of each node. Used for GUI purposes only
.Grid_size 8 8         <-- GUI will display nodes on a grid of 8x8
0 1 5                  <-- Node "0" is placed at location 1,5
1 4 5
2 7 5
3 1 4
4 2 3
5 1 1 
6 3 1
7 4 4 
8 4 3
9 5 3
10 3 3
11 4 2
12 7 4
13 6 3
14 7 1
15 5 1

pronerds's People

Contributors

eigenpi avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

Forkers

zjuchenw

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.