/Scientific-Computing

Python Projects undertaken for Scientific Computing Module of Imperial College London. Covers a variety of topics such as sorting algorithms, graph traversal algorithms, data types, hashing, recommender systems and infection models

Primary LanguagePython

Scientific-Computing

Projects undertaken for Scientific Computing Module of Imperial College London. Covers a variety of topics such as sorting algorithms, graph traversal, hashing, recommender systems and infection models.

Project 1

Overview of Part 1: Sort and Searching Algorithms

  • Implementation of a hybrid Merge and Selection sort Algorithm along with performance analysis and parameter optimization.
  • Implementation of Binary search Algorithm to find a trough in lists along with asymptotic running time analysis.

Overview of Part 2: Working with DNA sequences

  • Using Dictionaries to efficiently convert codon strings into Amino Acids, with algorithm performance analysis and discussion.
  • Efficient implementation of Algorithm to find the “aligned” k-mer pairs in “adjacent” DNA sequences (for more info see Project 2 Questions), along with relevant performance analysis with comparison with a Naïve approach.
  • The Algorithm utilises a modified Rabin-Karp method.

Project 2

Overview of Part 1:

  • Efficiently implemented and created modified BFS and Dijkstra’s algorithms with Dictionary’s and Queues to solve a variety of transport problems.
  • Included asymptotic analysis of their complexity and performance in general, along with discussion of how Binary Heaps and Fibonacci Heaps would improve performance.

Overview of Part 2:

  • Investigated random walks on Barabasi-Albert Graphs, efficiently simulating for a very large number and length of walks, along with analysing simulation results.
  • Compared random walk simulations with linear diffusion simulations created using a Laplacian, Scaled Laplacian, and Transpose of Scaled Laplacian on the same graphs. This included eigenvalue and vector analysis.
  • Efficent implementation and analyse of the following Transport Models with a networkx graph given as input. image
  • Compared Laplacian Models with Transport Models, shown below is linear model simulation.

image

Shown below is a Model B simulation:

image

Project 3

-- work in progress--

Overview of Part 1:

Overview of Part 2:

Project 4

Includes a review of The Hidden Geometry of Complex, Network-Driven Contagion Phenomena by Brockmann & Helbing with an efficent implementation of it's proprosed infection model and concept of effective distance using between country transport data.

Graph below shows the basic features of the network.

image

Graphs below shows how an infection starting in peru spreads though the network.

image