Graph Mining

Efficient Julia Programs for Understanding Our World

Gocce di Java

About the book

The book intends to be an introduction to the algorithmic aspects present in the analysis of social networks (in general, of graphs). In particular, since data relating to gigantic social networks have been available for several years, the book intends at the same time to provide the basic definitions used in the context of social networks and the algorithmic tools that make it possible to apply these definitions also to networks. very large social networks.

All the algorithms described in the book will be available in an open-source library, written in the Julia programming language, and can therefore be used for the analysis of real social networks.

Contents

^

Introduction

^

A small world

^

A very small world

^

Centrality measures

^

Giant components and bow-tie graphs

^

Link prediction (tbd)

^

Models for real-world graphs (tbd)

^

Signed graphs (tbd)

^

Graphs over time

Chapter 1

Graphs are everywhere. Mainly because they are a simple, elegant and powerful tool to represent and analyze binary relationships, and our life is full of binary relationships of very different types. Some typical examples of such binary relationships are communications (such as, for example, talking on the phone or sending emails or messages on Telegram), collaborations (such as, for example, co-authoring a scientific article or co-acting in a movie), ratings (such as, for example, indicating a “like” for a photo on Instagram or rating a movie on Netflix), membership (such as, for example, being a member of a university department or being part of a political party), dependencies (such as, for example, citing an article within another article or including a link to a web-page on another web-page), and transfers (such as making a bank transfer or selling a car).

 

Chapters

Pages

Slides

Slides

Who is the  author

Pilu Crescenzi

Pierluigi Crescenzi is a computer science professor at Gran Sasso Science Institute. He taught courses on programming, compilers, theoretical computer science, artificial intelligence, and graph mining. He is co-author of many publications in the field of algorithm design and applications.

He is co-author of Introduction to the Theory of Complexity and of Complexity and Approximation. In Italian, he co-authored Teoria della Complessità Computazionale, Strutture di Dati e Algoritmi, Gocce di Java, and Problemi, Algoritmi, Coding.

Other books

Gocce di Java