diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..7784f15 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,15 @@ +{ + "cSpell.words": [ + "Baishya", + "Baishya's", + "Bioinformatics", + "isset", + "Manoj", + "Metaheuristics", + "Opcenter" + ], + "languageToolLinter.languageTool.ignoredWordsInWorkspace": [ + "metaheuristics", + "tabu" + ] +} \ No newline at end of file diff --git a/content/about.md b/content/about.md new file mode 100644 index 0000000..f179086 --- /dev/null +++ b/content/about.md @@ -0,0 +1,11 @@ +--- +title: "About" +date: 2024-12-31T10:25:00+05:30 +type: "page" +--- + +Manoj is a software engineer with 3+ years of experience in cloud applications, specializing in backend and frontend development, performance testing, and data analysis. He is currently building Opcenter X at Siemens, a cloud-native Manufacturing Operations Management solution, and has delivered €500K+ projects to clients like BMW and Lego, along with onboarding SMB customers in Europe and America through rapid proof-of-concept developments. + +Proficient in C#, .NET, SQL, JavaScript, and Kubernetes, Manoj excels in transforming complex requirements into impactful features. His performance engineering efforts have achieved 50% average improvements in critical business flows. Focused on innovation, collaboration and having domain expertise, he is passionate about solving real-world challenges at scale. + +He has delivered many large, high-quality features at his current product with thorough testing and effective team collaboration. He solved key API performance and business problems, acquired a wealth of domain knowledge through scientific inquiry, owned commitments and identified risks early on which led to timely solutions, coached many colleagues and mentored juniors on complex topics. diff --git a/content/posts/combinatorial-optimization.md b/content/posts/combinatorial-optimization.md index b7ce595..5fc80aa 100644 --- a/content/posts/combinatorial-optimization.md +++ b/content/posts/combinatorial-optimization.md @@ -1,93 +1,188 @@ +++ -title = 'Combinatorial Optimization: Theory, Methods, and Applications' +title = "Combinatorial Optimization" +description = "Combinatorial optimization is a branch of optimization that deals with problems where the set of feasible solutions is discrete or can be reduced to a discrete set. Its goal is to find the best solution according to a specific criterion, often under constraints. From scheduling tasks to designing networks and solving puzzles like Sudoku, combinatorial optimization plays a crucial role in solving real-world problems." date = 2024-12-29T23:35:57+05:30 -draft = false +tags = ["mathematics", "algorithms"] +++ ---- -### **Combinatorial Optimization: Theory, Methods, and Applications** +## Introduction -#### **Introduction** Combinatorial optimization is a branch of optimization that deals with problems where the set of feasible solutions is discrete or can be reduced to a discrete set. Its goal is to find the best solution according to a specific criterion, often under constraints. From scheduling tasks to designing networks and solving puzzles like Sudoku, combinatorial optimization plays a crucial role in solving real-world problems. This essay explores the theoretical foundations, popular algorithms, and wide-ranging applications of combinatorial optimization. Additionally, it highlights emerging trends and challenges in this rapidly evolving field. --- -#### **Section 1: Theoretical Foundations of Combinatorial Optimization** +## Theoretical Foundations of Combinatorial Optimization + +### Definition and Scope -##### **1.1 Definition and Scope** Combinatorial optimization focuses on problems where the objective is to optimize a function over a finite or countably infinite set of feasible solutions. Problems are characterized by: -- **Decision variables** that are discrete. -- **Constraints** that limit feasible solutions. -- **Objective functions** that guide the optimization. -##### **1.2 Notable Problems** +- Decision variables that are discrete. +- Constraints that limit feasible solutions. +- Objective functions that guide the optimization. + +### Notable Problems + Some classical problems in combinatorial optimization include: -- **Travelling Salesman Problem (TSP):** Finding the shortest route visiting a set of cities and returning to the origin. -- **Knapsack Problem:** Maximizing the total value of items in a knapsack without exceeding weight capacity. -- **Graph Coloring Problem:** Assigning colors to graph vertices such that no two adjacent vertices share the same color. -##### **1.3 Complexity and NP-Hardness** +- Traveling Salesman Problem (TSP): Finding the shortest route visiting a set of cities and returning to the origin. +- Knapsack Problem: Maximizing the total value of items in a knapsack without exceeding weight capacity. +- Graph Coloring Problem: Assigning colors to graph vertices such that no two adjacent vertices share the same color. + +### Complexity and NP-Hardness + Many combinatorial optimization problems are NP-hard, meaning no polynomial-time solution is known. Researchers often rely on heuristics or approximation algorithms to address such problems efficiently. --- -#### **Section 2: Key Techniques and Algorithms** +## Key Techniques and Algorithms -##### **2.1 Exact Algorithms** -- **Branch and Bound:** Systematically explores all possible solutions, pruning infeasible or suboptimal branches. -- **Dynamic Programming:** Breaks problems into overlapping subproblems, solving each once and storing results. -- **Integer Programming:** Extends linear programming to handle integer decision variables. +### Exact Algorithms -##### **2.2 Approximation Algorithms** -- **Greedy Algorithms:** Make locally optimal choices at each step, aiming for global optima. -- **Relaxation Techniques:** Simplify constraints to solve the relaxed problem, rounding results to produce feasible solutions. +- Branch and Bound: Systematically explores all possible solutions, pruning infeasible or suboptimal branches. +- Dynamic Programming: Breaks problems into overlapping sub-problems, solving each once and storing results. +- Integer Programming: Extends linear programming to handle integer decision variables. -##### **2.3 Heuristic Methods** -- **Genetic Algorithms:** Mimic natural selection processes to evolve solutions. -- **Simulated Annealing:** Models the cooling process of metals to escape local optima. -- **Tabu Search:** Uses memory structures to avoid revisiting previously explored solutions. +### Approximation Algorithms -##### **2.4 Metaheuristics** -- **Ant Colony Optimization:** Inspired by ant foraging behavior. -- **Particle Swarm Optimization:** Based on the collective behavior of bird flocks or fish schools. +- Greedy Algorithms: Make locally optimal choices at each step, aiming for global optima. +- Relaxation Techniques: Simplify constraints to solve the relaxed problem, rounding results to produce feasible solutions. + +### Heuristic Methods + +- Genetic Algorithms: Mimic natural selection processes to evolve solutions. +- Simulated Annealing: Models the cooling process of metals to escape local optima. +- Tabu Search: Uses memory structures to avoid revisiting previously explored solutions. + +### Metaheuristics + +- Ant Colony Optimization: Inspired by ant foraging behavior. +- Particle Swarm Optimization: Based on the collective behavior of bird flocks or fish schools. --- -#### **Section 3: Applications of Combinatorial Optimization** +## Applications of Combinatorial Optimization + +### Industrial Applications -##### **3.1 Industrial Applications** -- **Supply Chain Management:** Optimizing logistics, routing, and inventory. -- **Manufacturing Scheduling:** Allocating resources to tasks for efficient production. +- Supply Chain Management: Optimizing logistics, routing, and inventory. +- Manufacturing Scheduling: Allocating resources to tasks for efficient production. -##### **3.2 Technological Applications** -- **Network Design:** Minimizing costs in designing telecommunications networks. -- **Data Clustering:** Grouping similar data points for machine learning. +### Technological Applications -##### **3.3 Scientific Applications** -- **Bioinformatics:** Solving sequencing problems and protein folding. -- **Astronomy:** Scheduling telescope observations for optimal usage. +- Network Design: Minimizing costs in designing telecommunications networks. +- Data Clustering: Grouping similar data points for machine learning. + +### Scientific Applications + +- Bioinformatics: Solving sequencing problems and protein folding. +- Astronomy: Scheduling telescope observations for optimal usage. --- -#### **Section 4: Challenges and Future Directions** +## Challenges and Future Directions + +### Computational Complexity -##### **4.1 Computational Complexity** The exponential growth of solution spaces poses significant challenges. Developing faster and more efficient algorithms is a primary goal. -##### **4.2 Real-Time Optimization** +### Real-Time Optimization + In dynamic environments, solutions must adapt in real-time, requiring algorithms that balance speed and accuracy. -##### **4.3 Integration with Artificial Intelligence** +### Integration with Artificial Intelligence + Combining AI with combinatorial optimization holds promise for solving previously intractable problems. -##### **4.4 Quantum Computing** +### Quantum Computing + Quantum algorithms, such as quantum annealing, are emerging as powerful tools for solving combinatorial problems. +### Sample Code + +```go +package main + +import ( + "crypto/md5" + "encoding/hex" + "fmt" + "io" + "net/http" + "os" + "strings" +) + +// hashEmail creates an MD5 hash of the provided email address +func hashEmail(email string) string { + email = strings.TrimSpace(strings.ToLower(email)) + hash := md5.Sum([]byte(email)) + return hex.EncodeToString(hash[:]) +} + +// fetchGravatar fetches the Gravatar image for a given email +func fetchGravatar(email string) error { + // Generate the MD5 hash of the email + emailHash := hashEmail(email) + + // Build the Gravatar URL + gravatarURL := fmt.Sprintf("https://www.gravatar.com/avatar/%s", emailHash) + + // Perform an HTTP GET request + response, err := http.Get(gravatarURL) + if err != nil { + return fmt.Errorf("failed to fetch Gravatar: %w", err) + } + defer response.Body.Close() + + // Check if the request was successful + if response.StatusCode != http.StatusOK { + return fmt.Errorf("failed to fetch Gravatar: status code %d", response.StatusCode) + } + + // Save the image to a file + outFile, err := os.Create("gravatar.jpg") + if err != nil { + return fmt.Errorf("failed to create file: %w", err) + } + defer outFile.Close() + + _, err = io.Copy(outFile, response.Body) + if err != nil { + return fmt.Errorf("failed to save Gravatar: %w", err) + } + + fmt.Println("Gravatar saved to gravatar.jpg") + return nil +} + +func main() { + // Replace this with the email address you want to fetch the Gravatar for + email := "example@example.com" + + err := fetchGravatar(email) + if err != nil { + fmt.Println("Error:", err) + } else { + fmt.Println("Gravatar fetched successfully.") + } +} + +``` + --- -#### **Conclusion** -Combinatorial optimization continues to be a cornerstone of problem-solving in a wide array of domains. As technology advances, its integration with AI, quantum computing, and real-time systems is likely to unlock new possibilities. By understanding its theoretical foundations, leveraging powerful algorithms, and addressing existing challenges, researchers and practitioners can harness its full potential for impactful applications. +### Sample Table + +| Item | In Stock | Price | +|:------------------|:--------:|------:| +| Python Hat | True | 23.99 | +| SQL Hat | True | 23.99 | +| Codecademy Tee | False | 19.99 | +| Codecademy Hoodie | False | 42.99 | ---- \ No newline at end of file +## Conclusion + +Combinatorial optimization continues to be a cornerstone of problem-solving in a wide array of domains. As technology advances, its integration with AI, quantum computing, and real-time systems is likely to unlock new possibilities. By understanding its theoretical foundations, leveraging powerful algorithms, and addressing existing challenges, researchers and practitioners can harness its full potential for impactful applications. diff --git a/data/month.yaml b/data/month.yaml new file mode 100644 index 0000000..8b3f38c --- /dev/null +++ b/data/month.yaml @@ -0,0 +1,12 @@ +1: "Jan" +2: "Feb" +3: "Mar" +4: "Apr" +5: "May" +6: "Jun" +7: "Jul" +8: "Aug" +9: "Sep" +10: "Oct" +11: "Nov" +12: "Dec" diff --git a/hugo.toml b/hugo.toml index 3a4b151..45c76cc 100644 --- a/hugo.toml +++ b/hugo.toml @@ -1,4 +1,98 @@ -baseURL = 'https://manojbaishya.github.io' -languageCode = 'en-us' +baseURL = 'https://manojbaishya.github.io/' title = "Manoj Baishya's Writings" +languageCode = 'en-us' theme = 'ink-free' +paginate = 5 +copyright = "Copyright © 2025 Manoj Baishya. All rights reserved." + +[permalinks] + posts = "/:year/:month/:title" + +[params] + subtitle = "My thoughts on technology, business, wellbeing and life." + + # Optional 64x64 avatar image. + avatar = "https://0.gravatar.com/avatar/558dc81840f316510101655712e914fac8a444e42784e87c8b99e41c80efa440?size=64" + + featherIconsCDN = "https://cdnjs.cloudflare.com/ajax/libs/feather-icons/4.29.2/feather.min.js" + mermaidCDN = "https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.esm.min.mjs" + + # Site color - dark/light/auto + mode = "light" + + # Enable a table of contents: + # Either "static"/true, "floating", "both", or "none" (default: static) + # The floating TOC disappears on mobile and adds 200px vertical space + toc = "floating" + # Whether to truncate everything but H1/H2 headings if the last element in a TOC isn't visible. Enabled by default + enableTocTruncate = true + + # Max tags + maxTags = 7 + + # Define words per minute to approximate reading time + wpm = 100 + + # Github base url + github = "https://github.com/manojbaishya/" + + # For statistics, we can compare the total word count against a book of your choice + statisticsEnabled = true + referenceBookWords = 155000.0 + referenceBook = "On the Origin of Species" + referenceAuthor = "Charles Darwin" + +[[menu.main]] +name = "Home" +url = "/" +weight = 1 + +[[menu.main]] +name = "About" +url = "/about" +weight = 2 + +[[menu.main]] +name = "All posts" +url = "/posts" +weight = 3 + +[[menu.main]] +name = "Tags & Stats" +url = "/tags" +weight = 4 + +[[params.social]] +name = "Github" +icon = "github" +url = "https://github.com/manojbaishya/" + +[[params.social]] +name = "LinkedIn" +icon = "linkedin" +url = "https://www.linkedin.com/in/manojbaishya/" + +[[params.social]] +name = "Substack" +icon = "book-open" +url = "https://substack.com/@manojbaishya" + +[taxonomies] + tag = "tags" + +[markup] + [markup.highlight] + codeFences = true + guessSyntax = false + hl_Lines = "" + lineNos = false + lineNoStart = 1 + lineNumbersInTable = true + noClasses = true + style = "lovelace" + tabWidth = 4 + + [markup.tableOfContents] + endLevel = 3 + ordered = true + startLevel = 2 \ No newline at end of file diff --git a/static/favicon.ico b/static/favicon.ico new file mode 100644 index 0000000..62f0dc0 Binary files /dev/null and b/static/favicon.ico differ diff --git a/themes/ink-free b/themes/ink-free index 41b99c0..c6a8667 160000 --- a/themes/ink-free +++ b/themes/ink-free @@ -1 +1 @@ -Subproject commit 41b99c093bf6a12689306e4a861aad24f4023995 +Subproject commit c6a866786586c972e19e2186556da6bd5281b010