Giter Site home page Giter Site logo

mapclustering's Introduction

A heuristical solution to a specific case of set-covering problem

The problem I am trying to solve is finding a heuristical solution to the special case of set covering, when the elements in the sets are nodes in a graph. Coloring a single node colors also all connected nodes, and we are are trying to color the whole graph using a minimal amount of colorings.

Our approach

We calculate the page rank ranking of all nodes in the graph, and attempt to find a coloring that color the nodes that are the least well-connected to other nodes. The value of each node is the sum of exponents of zero minus the page rank of all it's neighbors. We then choose the node with the highest value and remove it and all it's neighbors from the graph, and recalculate the page rank. The idea is that we want to remove "remote" nodes first and "central" nodes later as they are better connected.

Results

This method was developed to solve an actual problem - finding data from a proximity based REST API containing information about various geographical positions, that returned results for all points of up to a given radius from the queried points. Querying this API was expensive, so we tried to minimize queries to it. This method resulted in vastly superior results to greedy querying the API.

mapclustering's People

Contributors

kanhari avatar

Watchers

 avatar  avatar  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.