Git Product home page Git Product logo

individual's Introduction

Individual Project

In this project, we are going to create an ad-hoc communications network over a large rectangular region.

Class Network

This class generates the overall desired coverage. We will build towers on top of each network.
To build a Network object, we can initialize by calling: n = Network(w, h) where w is the desired width and h is the desired height of the coverage.

Class Tower

This class stores each tower as an object. Objects can be generated by using t = Tower() or for a given network net, one can use net.buildTower() to build one tower, or net.buildNTower(n) to build n towers.
By default, the width, height and the position are randomly generated. If the user want to manually set the values(in order to test), one can call t.setInfo(x, y, w, h) to assign specified values. Or for net, use net.buildSpecialTower(x, y, h, w) to build a tower with specified values.

Question 1

Given an overall desired coverage footprint and a sequence of n communications towers, what is the resulting resolved coverage?
generateNetwork(w, h, towers) will take in the desired network of width w and height h and a list of specified valued towers in the format of (x, y, w, h). Here x, y are the coordinates of bottom-left corner.
This function will visualize step-by-step of tower building process and will return the final resolved area, coverage fraction and the gap.

Question 2

What is the total area of coverage relative to the desired total coverage area of the original footprint? That is, are there any gaps in coverage?
generateRandomNetwork(w, h, n) will take width w, height h and an integer n which represents the desired number of towers to build on the network. Same as the previous function, the function will visualize step-by-step of tower building process and will return the final resolved area, coverage fraction and the gap.

Question 3

On average, how many communications towers are required before full coverage is obtained?
findAverageFull(W, H, N) will take in the upper bound of width W, upper bound of height H and number of iterations N for each pair of (w, h). The visualization of the results will be a heat map showing the average number of towers needed.

individual's People

Contributors

fall4knight avatar

Watchers

 avatar

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.