Round trip route planning for pedestrians
A custom build routing solution that offers the possibility to create round routes that brings you back at the start location.
Typical route planning software is targeted at the use case to bring a user from A to B. Most software packages offer the possibility to create a round route by manually adding way points that need to be visited and some route planning software packages offer solutions for the traveling salesman problem in which case x locations need to be visited preferably in the most optimal way to save time and costs. For runners and hikers that want to plan a trip that brings them back to the start location, these solutions are not optimal. Preferably a user opens the application an only has to say how long or how far he wants to walk / run.
This is a relatively new unexplored science. Some universities do research in this field like the university of Gent which has designed an algorithm that plans round city trips with a required distance. There are also some other round trip planners but after testing those on various locations with various distances it appeared that none can generate a round trip for most locations with a distance within a 10% margin from the required distance. This problem is relatively harder than generic routing since many optimizations that can be used to plan the shortest or fastest route from A to B are not applicable for the round route problem. Secondly where for the generic routing problem there exists a perfect solution that is the shortest or the fastest route for the round route planning problem many solutions exists within the requirements of a 10% margin from the requested distance. Of course there is only one that is closest to the required distance but those solutions are often not the solution an end user would like to see since a end user also requires that a route is nice to walk. E.g. preferable through green spaces (parks and forests), not along heavy traffic roads, with as less traffic lights and other crossings for runners, etcetera.
To give an example of the number of calculations that need to be made on possible routes, assume a Manhattan grid of roads where each crossing is 100 meters apart. At every crossing there are four possible choices: back, straight, left or right. So for a required distance of 200 meters there are 4 to the power 2, which is 16, possible routes with a distance of 200 meters of which only one brings you back to the start. With a required distance of 400 meters there are 4 to the power 4, which is 256 possible roads. With a required distance of 1000 meters the number of possible routes is 2 to the power 10, which is approximately 1 million. For a marathon this leads approximately to a number starting with 7 with 252 zeros behind possible routes. So calculating every possible route within the time that an end user wants to start walking is not possible.
To be able to solve this problem we have designed an algorithm with heuristics that keeps the number of options at every crossing low and first calculates the most probable and preferable paths. By keeping the number of options low the number of possible paths that need to be calculated are also low, since 1 to the power of any number is still one. But even with a factor close to 2 this still leads to a number of possible routes for a marathon in a Manhattan grid of around 3 with a 126 zeros behind it. By using custom build heuristics targeted at the client wishes that are applied in every step of the calculation we were able to achieve that routes get planned usually within a second that fit with the expectations.
Want to try it out? Please see the links below to install the ImagineRun app for your mobile.
End to End Secure IoT
Many IoT devices communicate over insecure channels. While it can be argued that most data is not mission critical and privacy sensitive, this often leads to leaking usernames and passwords being communited over the air.
We have build a library and platform which implements industry standard security on small IoT devices. This ensures that the complete communication chain is secured and tamper resistant. It uses the same technology as you use to communicate with your bank, implemeneted on micro devices that have a minimal amount of memory and compute power.
Recognizing behavioural patterns with Convolutional Neural Networks
Based on a wifi tracking stations dataset a customer wanted to make a destinction between types of visitors, eg. regular visitors and irregular visitors. During the exploratory data analysis it became clear that only a small percentage of the visitors were classifiable as one or the other, most user fell into a intermediate category. Instead of trying to find features that can be used to classify users into more distinct categories, we used a pretrained convolutional neural network to classify the visitors.
- Plot the patterns as time based heatmaps
- Manually find typical patterns, e.g. resident, regular worker, holiday visitor, holiday worker, regular weekly visitor, etc.
- Retrain the CNN classification layer
- Classify all the visitors
- Convolutional Neural Networks
Subscription platform with systems integration
- Html / JS / CSS
- Amazon Web Services
Systems integration for managing feedback from various platforms
Often communication with customers in a web environment is spread over various channels. This makes it difficult to keep track of all communication via different platforms. By integrating the different platforms into a single system, the communication becomes clear.
- App Store
- Play Store
- In app feedback
High volume detailed website analytics
You have a high volume website and want to gain insights in your user base or optimize the user experience and the content. For small volume websites products like Google analytics is a good start, it is free, easy to setup and provides for most use cases the tools you need. But for high volume websites Google requires you to pay large sums starting at 150k a year. In these cases a custom build analytics platform targeted at the use case is usually cost effective. By using off the shelf software packages, standard cloud infrastructure and standard on-line storage a setup can be made that only costs a fraction of Google Analytics 360, with the ability to easily scale up in case you require more metrics or when the website traffic increases and with the possibility to create all sorts of add ons that are targeted at your use case.
One way to achieve this is to use the ELK stack in combination with AWS and Hadoop. The ELK stack is a combination of Elasticsearch, Logstash and Kibana. AWS is a cloud computing and storage solution from Amazon with a wide range of options to make a cost efficient solution targeted at the user needs. ELK offers possibilities to setup a analytics platform that is reliable, scalable and redundant, making it possible to guarantee a near 100% uptime and zero downtime updates. AWS offers the possibility to keep large datasets in memory directly available for on line analysis. But it also offers possibilities to store it on fast accessible disks when no on line directly available analytics is required but the data needs to be available for periodic off lien analysis. And thirdly it offers solutions to store the data very cost efficient for long term archiving in case you ever need to reanalyze the data with new algorithms. A full scale solution that is cost efficient.
By using these tools and platforms we can offer a custom build analytics platform targeted at your use case for a fraction of the yearly Google Analytics cost. At the same time we can guarantee that you are in control of your own data, you decide where it gets stored, you decide what is done with the data and how it is used without third party cookies and other tracking mechanisms.
- S3 storage
Out of the Blox
Based on proven scalable open source projects and in house developed industry standard compliant security.
Broad range of sensors and actuators
Multilanguangual reservation site
A Multilanguangual website writen in Django
The last few decades i have worked for various starting companies in the IT sector and have been responsible for the research and development of new products. In the starting phase all of these companies where small with just a few employees, in this way I have gained a broad experience from together working out the possibilities within the technical limitations, to desiging the solutions, building the software, setting up the infrastructure, maintaining the systems, analysis of the usage data and applying machine learning to automatically improve the products. From my study Technical Congnitive Science, now better known as Artificial Intelligence, I am used to work on pioneering surfaces. Making possible what seems impossible.
Languages / techniques / methods
- Django, NodeJS, JSP, Tomcat, Apache, NGINX
- NumPy, SciPy, Scikit-learn, Pandas, nltk
- Weka, R, Spark, Mahout, Solr
- Keras, Tensorflow
- ProgreSQL, Oracle SQL, MySQL, SQLite
- MongoDB, Lucene, Elaticsearch, Hadoop, InfluxDB
- Arduino, PIC, ATMega, ESP, STM32, ARM, x86
- Linux, MacOS, Windows
- Amazon Web Services, IBM Bluemix, Google Cloud Platform
- Open Street Map, Graphhopper, Gosmore, Navit
- Social media APIs: Twitter, Facebook, GooglePlus, Instagram, Vimeo, Tumblr, ...
- Git, SVN, Nagios, Redmine, Jira, SalesForce, CI
- Agile, Scrum, XP, Kanban