Found 10 result(s) for "Algorithm"! Click on the links for more details
Using Dijkstra to Route Packages in a Network Overlay
The goal of this project was to use an overlay to communicate between messaging nodes (clients) and the Registry (server) to send messages using threads. It follows the principles of TCP/IP protocols and overlays used in P2P systems. The registry accepts messaging nodes using a server socket and creates receiver and sender threads for that connection. The messaging nodes also have their own sets of threads for the registry and peers. The foreground process in the Registry allows the users to specify commands that creates the undirected graph with all registered nodes, connect to peers to form bidirectional connections, and start sending messages. When all nodes finish messaging each other randomly, the statistics are collected and can be compared to see if any packets were lost during the period.
Graph Algorithms and Visualization
This is a working graph visualization and algorithms program that produces outputs to common graph algorithms and images for certain graphs. It uses the Graphviz library for C++ to generate graph images, but the other algorithms are implemented by me. There are four graphs produced by the directed and undirected versions each. Each will have information regarding the operation and print the graph along with the paths in red if applicable. As for the algorithms, the results are outputted to the console, but the program supports most algorithms on graphs.
Personal Website
The website you are on! This is my personal website I created using Python's Django framework for the back-end and pure Javascript, HTML, and CSS for the front-end with some help from Bootstrap5. Please feel free to explore the website and the various projects, courses, and features. If you would like to contact me, you can do so using the contact tab or my contact information from the sidebar.
Heuristic Algorithms for Approximating the Traveling Salesman Problem
This program will approximate the Traveling salesman problem using 3 three different algorithms (Nearest Neighbot, 2Opt, and 3Opt). There are size different combinations and explanations for these can be found in the sections below. The program allows you to run each algorithm individually or run a benchmark for all 6 and the original unoptimized list. The results are formatted in a table and displayed in the console. As the algorithms have different time complexities, the time it takes increases for some algorithms drastically, so use caution when using many places.
Infix Expression Calculator
This calculator app utilizes Java and the Swing framework for the calculations and design. Each frame, panel, and component is custom design that is made to look similar in GUI to the calculator offered by Microsoft. It features tons of operations, help menus, an output screen, an operation screen, history tab with details abou the previous calculations, etc. For the actual calculations, it is programmed in Java, so it utilizes most available data structures, sorting algorithms, paring, error handling, etc.
CS455: Introduction to Distributed Systems
Covered fundamental ideas and issues in building distributed systems. Examined issues related to concurrent programming, thread pools and safety, non-blocking I/O, scalable server design, file system design, distributed mutual exclusion and deadlock detection, consensus and consistency, pipelining schemes, distributed graph algorithms, distributed shared memory, distributed objects, and MapReduce.
CS320: Algorithms--Theory and Practice
Analyzed, designed, and implemented efficient algorithms and compared the results. Applied Big O, θ, and Ω notations, induction, recursion, invariants.
CS345: Machine Learning Foundations and Practice
Introduced machine learning algorithms and tools for predictive modeling presented using case studies that inform their use in real-world applications. Utilized python, numpy, pandas, matplotlib, R, etc. for data analysis and predictions.
CS220: Discrete Structures and their Applications
Practiced the use and implementation of integer representations and properties, propositions, predicates, sets, functions, program proofs, induction, counting, complexity, graphs, trees, invariants. Accompanied lectures with Python assignments and labs.
CS165: Data Structures
Studied and utilized various data structures, algorithms, and interfaces in Java. Some examples are arrays, lists, queues, stacks, BSTs, expression trees, B+ Trees, graphs, hash tables, iterables, etc.