**1.022 - Introduction to Network Models**(as I taught in Fall 2018)

This is an undergraduate-level interdisciplinary course. It provides an introduction to complex networks, their structure, and function, with examples from engineering, applied mathematics and social sciences. Topics include spectral graph theory, notions of centrality, random graph models, Markov chains and random walks, gossip algorithms and graph conductance, contagion phenomena, cascades and diffusion, opinion dynamics, and congestion and potential games on networks.

Our course will make use of the python programming language for both the homework and the course project. Python is an easy to learn, powerful programming language that is often used for Data Science applications and has a large ecosystem of libraries for machine learning, optimization, etc. We have provided some information and a list of useful resources as a starting point to work with python

**here**.

**Bibliography**: The course textbook is "

**Networks, Crowds, and Markets: Reasoning about a Highly Connected World**'' (1st ed.) by David Easley and Jon Kleinberg. Other recommended references are listed at the end of the syllabus.

**Network data repositories:**Here is a list of public repositories of network data that you can use to play around and to test the concepts learned throughout the course.

**SNAP**: Stanford Large Network Dataset Collection, is a great repository for large networks with graphs ranging from a few thousand nodes to several millions.**KONECT**: contains several hundred network datasets of various types, including directed, undirected, bipartite, weighted, unweighted, signed and rating networks.**ICON**: does not host network datasets, but provides an "Index of Complex networks" with links to the orginal datasets. You can search for various categories of networks (just like in KONECT).

**Course syllabus (Fall 2018)**: Below, you can find the detailed breakdown of the topics I covered in Fall 2018 offering of the course.

Lecture 1: Course specifics, motivation, and intro to graph theory

- Course specifics: times, office hours, homework, exams, bibliography, etc.
- General motivation: What are networks? What is network science? Impacts, ubiquity, historical background, examples.
- Course description and contents: A quick overview of the things that we are going to learn.
- Basic graph theory: vertices, edges, directed graphs, simple graphs, weighted graphs, neighborhoods, degree, path, cycle.

Lecture 2: Intro to graph theory

- More on graph theory: Connectivity, components, giant components, distance, small-world phenomenon, adjacency and incidence matrices.

Lecture 3: Strong and weak ties, triadic closure, and homophily.

- Strength of weak ties.
- Triadic closure, homophily.

Lecture 4: Centrality measures

- Detection and identification of important agents.
- Degree, closeness, betweenness, eigenvector, and Katz centrality.

Lecture 5: Centrality and web search, spectral graph theory

- Page rank and web search.
- Eigenvalues and eigenvectors of graph matrices and their properties.
- Quadratic forms on graphs and Laplacian.

Lecture 6-7: Spectral graph theory, spectral clustering, and community detection

- Properties of graph Laplacian.
- Derive spectral clustering formulation as a relaxation of modularity maximization.
- Community detection using ratio cut criterion.

Lecture 8-10: Network models

- Graphs as realizations of stochastic processes: Introduce the general idea.
- Friendship paradox.
- Erd\H{o}s-R\'enyi graphs, branching processes. Definition, examples, phase transition, connectivity, diameter, and giant component.

Lecture 11: Configuration model, and Small-world graphs

- Configuration model, emergence of the giant component.
- Small-world graphs: Definition from rewiring a regular graph, balance between clustering coefficient and network diameter.

Lecture 12: Growing networks

- Growing networks.
- Preferential attachment and power laws: the rich get richer effect. Degree distribution observed in real life, example of a dynamic generative process leading to this distribution, mean field analysis.

Lecture 13-14: Linear dynamical systems

- Convergence to equilibrium.
- Stability, eigenvalue decomposition, Lyapunov functions.

Lecture 15: Markov chains

- Perron-Frobenius theorem.
- Random walk on graphs.

Lecture 16-17: Information spread and distributed computation

- Conductance and information spread.
- Distributed computation.
- Markov chain convergence and Cheeger's inequality.

Lecture 18-19: Learning and Herding

- Simple Herding Experience.
- Aggregate Beliefs and the ``Wisdom of Crowds".
- The DeGroot Model: The seminal network interaction model of information transmission, opinion formation, and consensus formation.

Lecture 20: Epidemics

- Models of diffusion without network structure: Bass model
- Models of diffusion with network structure
- SIR Epidemic Model.
- SIS Epidemic Model.

Lecture 21: Introduction to Game Theory I

- Game theory motivation: Decision-making with many agents, utility maximization.
- Basic ingredients of a game: Strategic or normal form games.
- Strategies: Finite/Infinite strategy spaces.
- Best responses, dominant and dominated strategies.
- Iterated elimination of dominated strategies and dominant solvable games.
- Nash equilibrium.

Lecture 22: Introduction to Game Theory II

- Nash equilibrium: more examples.
- Multiplicity of equilibria.
- Pareto-Optimality and social optimality: Price of anarchy.
- Nonexistence of pure strategy Nash equilibria with a touch of mixed strategies.
- Fixed point theorems and existence of Nash equilibrium in infinite games.

Lecture 23: Application of Game Theory to Networks

- Traffic equilibrium: non-atomic traffic models.
- Braess's Paradox.
- Socially-Optimal routing and inefficiency of equilibrium.

Lecture 24: Congestion games, course review and discussion.

- Congestion games and atomic traffic equilibria.
- Potential functions and potential games.
- Nash equilibria in potential games.
- Application of potential games to congestion games.

Lecture 25: Project presentation

**References**

- [EK10] David Easley and Jon Kleinberg.
**Networks, Crowds, and Markets: Reasoning about a Highly Connected World**. Cambridge University Press, 1st edition, 2010. - [Jac08] Matthew O. Jackson.
**Social and Economic Networks**. Princeton University Press, Princeton, NJ., 2008. - [New10] Mark Newman.
**Networks: An Introduction**. Oxford University Press, 1st edition, 2010. - [Sha09] Devavrat Shah.
**Gossip Algorithms**. Foundations and Trends® in Networking, vol. 3: no. 1, pp. 1-125, 2009. - [Spi07] Daniel Spielman.
**Spectral Graph Theory**. Yale University, 2007.

**6.252 - Nonlinear Optimization**(as I taught in Spring 2017)

This is a graduate-level interdisciplinary course with audience mostly from electrical engineering, operations research, and civil engineering departments, and introduces students to the fundamentals of nonlinear optimization theory and methods. Topics include unconstrained and constrained optimization, linear and quadratic programming, Lagrange and conic duality theory, interior-point algorithms and theory, Lagrangian relaxation, generalized programming, and semidefinite programming. Algorithmic methods used in the class include steepest descent, Newton's method, conditional gradient and subgradient optimization, interior-point methods and penalty and barrier methods.

**Bibliography**: The course textbook is "

**Nonlinear Programming'**' (3rd ed.) by Dimitri P. Bertsekas. Other recommended references are listed at the end of the syllabus below.

Lecture 1: Introduction / Applications

Lecture 2: Unconstrained Optimization and Optimality Conditions

Lecture 3: Gradient Methods - Convergence

Lecture 4: Rate of convergence. Heavy ball method.

Lecture 5: Newton's method and variants

Lecture 6: Conjugate direction methods

Lecture 7: Quasi-Newton methods, coordinate descent

Lecture 8: Optimization over a convex set, projection

Lecture 9: Feasible directions and gradient projection

Lecture 10: Lagrange multipliers - KKT conditions

Lecture 11: Sufficient conditions and sensitivity analysis. Inequalities.

Lecture 12: Convex Analysis (convex sets, convex functions, etc)

Lecture 13: Convex duality, separation, applications

Lecture 14: Penalty and multiplier methods

Lecture 15: Interior point I (logarithmic barrier)

Lecture 16: Interior point II (primal-dual)

Lecture 17: Conic and semidefinite programming

Lecture 18: Relaxations of hard problems

Lecture 19: Branch and bound, Lagrangian relaxation

Lecture 20: Nondifferentiable optimization, subgradients

Lecture 21: Subgradients and cutting planes

Lecture 22: Bundle methods (convex, nonconvex), gradient sampling

Lecture 23: Variational inequalities

Lecture 24: Review / Additional topics

Lecture 25: Final exam (take home)

**References**

- [Ber16] D. P. Bertsekas.
**Nonlinear programming**. Athena Scientific, 3rd edition, 2016. - [BNO03] D. P. Bertsekas, A. Nedic, and A. E. Ozdaglar.
**Convex analysis and optimization**. Athena Scientific, 2003. - [BSS06] M.S. Bazaraa, H.D. Sherali, and C.M. Shetty.
**Nonlinear programming: theory and algorithms**. Wiley-Interscience, 2006. - [BT97] D. P. Bertsekas and J. N. Tsitsiklis.
**Introduction to linear optimization**. Athena Scientific, 1997. - [BTN01] A. Ben-Tal and A. Nemirovski.
**Lectures on modern convex optimization**. MPS/SIAM Series on Optimization. Society for Industrial and Applied Mathematics (SIAM), 2001. - [BV04] S. Boyd and L. Vandenberghe.
**Convex optimization**. Cambridge University Press, 2004. - [Nes03] Y. E. Nesterov.
**Introductory lectures on convex optimization: A basic course**, volume 87. Springer, 2003. - [NN94] Y. E. Nesterov and A. Nemirovski.
**Interior point polynomial methods in convex programming**. Studies in Applied Mathematics. SIAM, 1994. - [NW99] J. Nocedal and S. J. Wright.
**Numerical Optimization**. Springer, 1999.