Kanishk Kacholia

My Time At QCI

⚛ Quantum technology, algorithms, and a whole lot of matrices.

Last updated: December 28th, 2022

Quantum Computing Incorporated

Summer 2021 - Spring 2023

Analyzing the efficiency of new quantum solvers on old problems and creating modern solutions to modern problems.

    pythondjangostreamlitnumpypandasseabornaws elastic beanstalkaws quicksightaws rdsgitquantum formulationquantum machine architecture

Quantum Research Associate

(Aug '21 to May '22)

Joining QCI for the first time was exciting, to say the least. I heard about the company from a friend and was immediately impressed and eager to apply. Quantum computers have always peaked my interest, so getting to work with one firsthand was an opportunity I was not ready to let go of. After my interview and technical challenges, I was onboarded as a Quantum Research Associate. During my time with the team and learning about the inner workings of the company, I was tasked with formulating and translating NP Complete problems found on conventional computers to be solved on quantum computers.

Traveling Salesperson Problem

My first translation project was the Traveling Salesperson Problem. These types of problems are usually solved on massive supercomputers such as NEOS. My team and I were given a set of mathematical equations, and we developed a Python script to dynamically generate Lagrange penalty matrices that would instruct the quantum computer on how to weigh different paths in the route. Our initial formulation was simple, with a fixed number of locations and weights, but we eventually expanded it to include features such as a variable number of locations and real routes from TomTom's mapping API, which allowed us to accommodate different modes of transportation such as trucks or bicycles. Our demonstrations were successful and received much praise from the company, particularly for our ability to take advantage of the quantum computer's ability to generate suboptimal results. Conventional solvers only provide the best solution, but the quantum computer can provide not only the best but also suboptimal solutions, which can be useful in cases where the initial optimal route becomes unusable, such as due to a traffic accident or other similar situations. The image and video below demonstrate this functionality.

The Original QCI Routing Map

Timing the Difference

After completing our formulations for existing problems, my team and I were asked to run them on both conventional and quantum computers to compare their speed and estimate how long it would take for quantum technology to surpass and outperform these conventional models. Upon the conclusion of our testing, I wrote an internal paper titled Variable Expansions of the VRP that summarized our findings.

Quantum in University (QUBTU)

In addition to the opportunities mentioned before, I had the opportunity to help create a curriculum to teach undergraduate and graduate students how to use quantum computers through QCI to apply them to their own projects. Along with other interns, I was part of a group tasked with developing this curriculum. Ultimately, we successfully created three different use cases: Scheduling, Option Adherence, and the famous Four Color Theorem in mathematics. The curriculum was comprehensive and covered all the basics of working with quantum computers hosted by QCI.


Sofware Engineer:

(Jun '22 - Sep '22)

In the summer of 2022, I returned to the team and was given two primary assignments. The first was to develop an internal web application called Qatalog to help researchers and developers at QCI catalog their findings or document the results of applying certain algorithms to industry-scale problems. My other assignment was to assist with research on quantum machine learning algorithms, focusing on classifying images from the MNIST numbers dataset into their proper categories. The goal of this research was to find the most optimal tuning parameters within quantum machine learning algorithms to make them efficient at solving image classification problems.

Developing Qatalog

As my internship began, I focused on Qatalog. This project was my main responsibility during my time at the company, and I was responsible for designing, implementing, and deploying it entirely on my own. My initial task was to consider the various objects and their relationships. One challenge was that there were many different combinations of software, hardware, configuration parameters, and success measurements, which made it difficult to create a schema that was flexible enough to accommodate all of these factors while still being restrictive enough to prevent misinput. Nevertheless, after days of deliberation and confering with researchers at the compnany I was able to create an initial outline which was widely accepted by the team.

After developing the schema, I turned to creating the web application for the tool using Django. I chose Django because it is designed for rapid prototyping and comes with a pre-packaged REST API, and I had previously used it on other projects. I considered all the potential interactions that users might have with the web application or REST API, and began developing the backend routes to accommodate them. While my past experience with Django and Bootstrap allowed me to quickly create the initial webpage and basic REST API, creating a secure REST API that required proper authentication was new to me and took the majority of my time during product testing and development. However, with the help of documentation, I was able to overcome this challenge and create a working application.

In addition to frontend and backend development, I also deployed each iteration of the application to the cloud using AWS Elastic Beanstalk. I had previously only deployed software on AWS EC2, so this was a new but valuable experience for me. Throughout my work with the service, I became proficient and gained an appreciation for the tool. I was also able to achieve one of my goals in Devops by learning how to set up a production and development environment and integrate it with workflows seamlessly. Overall, this experience was very helpful and rewarding.

Quantum Machine Learning

After completing much of the work on the Qatalog project, I turned my attention to Quantum Machine Learning. My goal was to first convert jupyter notebook files into Python code that could take a variety of tuning parameters and generate visualizations based on those runs. Additionally, I was to create a bash wrapper file that would run all possible combinations of these configurations on an AWS EC2 instance. The associated image shows an example of a tuning parameter, image processing. Quantum computers are currently not able to process large images like the ones in the 28 by 28 size dataset, so they must be resized to fit on smaller quantum processors. Different encodings can have varying effects on the success of the model, and my goal was to find the most optimal one in this case. My work was compiled into an internal paper which, if publically released, I will attach here.

Quantum Image Processing