The Philosophy of Computer Science

The philosophy of computer science is concerned with those philosophical issues that arise from within the academic discipline of computer science. It is intended to be the philosophical endeavor that stands to computer science as philosophy of mathematics does to mathematics and philosophy of technology does to technology. Indeed, the abstract nature of computer science, coupled with its technological ambitions, ensures that many of the conceptual questions that arise in the philosophies of mathematics and technology have computational analogues. In addition, the subject will draw in variants of some of the central questions in the philosophies of mind, language and science. We shall concentrate on a tightly related group of topics which form the spine of the subject. These include specification, implementation, semantics, programs, programming, correctness, abstraction and computation.

via The Philosophy of Computer Science Stanford Encyclopedia of Philosophy.

A must read for anyone interested in computer science.

Some possible interesting conferences/calls for papers

NETWORK ANALYSIS OF SOCIAL AND DIGITAL MEDIA

47th HAWAII INTERNATIONAL CONFERENCE ON SYSTEM SCIENCES (HICSS) Minitrack: Network Analysis of Social and Digital Media Track: Digital and Social Media Conference: JANUARY 6-9, 2014 http://www.hicss.hawaii.edu/

Multilevel innovation networks PDW

2013 Academy of Management Meetings; Orlando, FL, USA Friday, Aug 9 2013 3:00PM – 7:00PM at WDW Swan Resort in Swan 7 Organizers: Corey Phelps (HEC Paris), Srikanth Paruchuri (Penn State), Martin Goossen (HEC Paris) Deadline for applications: June 30, 2013 http://tinyurl.com/multilevelnetworks

Social Science Computer Review

Special issue on “Social interaction- the bridge between micro and macro” Guest editors: Bruce Edmonds (Centre for Policy Modelling, Manchester Metropolitan University Business School) and Flaminio Squazzoni (GECS Research Group, University of Brescia) Deadlines to submit a full paper: 24th June 2013 Tentative issue publication: Second 2014 issue http://ssc.sagepub.com/

The Second International Conference on E-Learning and E-Technologies in Education (ICEEE2013)

Technical University of Lodz, Lodz, Poland September 23-25, 2013 http://sdiwc.net/

Dos nossos círculos sociais à classificação de corpos de textos em larga escala.

david-rodrigues-network.jpg

Discovering Social Circles in Ego Networks
by Julian McAuley, Jure Leskovec

Um processo de clustering automático das nossas redes sociais por forma a identificar os círculos sociais a que pertencemos. O método combina análise da estrutura de rede (topologia) com informação dos perfis dos utilizadores. Para cada círculo é criado uma métrica da similaridade dos perfis e os autores mostram que o método é robusto para detectar os círculos nas nossas ego networks do Facebrocasbook, Google+ ou Twitter. Isto faz lembra um pouco o que Linkdn In fez recentemente na web, permitindo mapear os nossos círculos profissionais.

Large-Scale Sparse Principal Component Analysis with Application to Text Data
by Youwei Zhang, Laurent El Ghaoui

PCA é uma técnica que visa reduzir o número de dimensões de um qualquer dataset e que apresenta o inconveniente de por vezes ser difícil perceber qual o significado físico das dimensões encontradas. Este paper no entanto mostra como PCA esparso pode ser utilizado para análise de corpos de textos. O algoritmo promete ainda concorrer com modelos de detecção de tópicos.

Um cérebro de neurónios acidentais?

neurons.jpg
Os circuitos cerebrais resultam de encontros acidentais entre neurónios: “‘Pensamos que os neurónios crescem da forma mais independente possível uns dos outros e que formam sinapses essencialmente nos locais onde, acidentalmente, colidem entre si'”

No mundo da neurociência o projecto Blue Brain procura reconstruir o cérebro e numa publicação recente mostra que o estabelecimento das ligações entre neurónios durante o seu crescimento é iminentemente aleatória. Este constrangimento do crescimento e conectividade dos neurónios poderá indicar que a modelação destes não poderá ser feita inteiramente ao nível topológico (redes) e terão que ser levados em linha de conta os impedimentos tridimensionais existentes.

Embora o artigo na Frontiers não refira, gostava de ver como é que o modelo de crescimento é comparável aos modelos de crescimentos de redes, e perceber se estamos perante um novo processo ou se antes se trata de uma variação de um dos modelos de formação de redes (aleatória, preferential attachment, etc… ver Evolution of Networks de Dorogovtsev e Mendes ou Scale-Free Networks de Guido Caldarelli ).

Claro que a descoberta de tudo sobre o cérebro humano vai demorar centenas de anos mas estas descobertas recentes sobre o funcionamento, ligação e comunicação entre neurónios pode ajudar no entendimento de muitas outras áreas a começar pela possibilidade de este modelo de formação de ligações neuronais durante o crescimento não ser exclusivo do cérebro e pode ser encontrado noutros sistemas complexos.

ECCS 2012 Buzz!

The 2012 European Conference on Complex Systems in Belgium starts today, and unfortunately I couldn’t attend :-D

I decided to track the conference almost in real time, and although there’s no live streaming, scientists are using twitter hashtag #ECCS12, so I decided to build a tracking page for the conference. The ECCS12 Buzz page refreshes every 5 minutes.

This is just a 30 min hack, so if you find any bugs please contact me.

update (12:11): Now with RSS feed added so you can use GReader or NetwNewsWire.

update (18:04): Added comments with disqus. Added an ‘Real Time’ agenda on top with link (when available). Not bad for a half-baked, half-hacked page.

Finding communities in networks with R and igraph

Finding communities in networks

Finding communities in networks is a common task under the paradigm of complex systems. Doing it in R is easy. There are several ways to do community partitioning of graphs using very different packages. I’m going to use igraph to illustrate how communities can be extracted from given networks.

igraph is a lovely library to work with graphs. 95% of what you’ll ever need is available in igraph. It has the advantage that the libraries are written in C and are fast as hell.

algorithms for community detection in networks

walktrap.community

This algorithm finds densely connected subgraphs by performing random walks. The idea is that random walks will tend to stay inside communities instead of jumping to other communities.

Pascal Pons, Matthieu Latapy: Computing communities in large networks using random walks, http://arxiv.org/abs/physics/0512106

edge.betweenness.community

This algorithm is the Girvan-Newman algorithm. It is a divisive algorithm where at each step the edge with the highest betweenness is removed from the graph. For each division you can compute the modularity of the graph. At the end, choose to cut the dendrogram where the process gives you the highest value of modularity.

M Newman and M Girvan: Finding and evaluating community structure in networks, Physical Review E 69, 026113 (2004)

fastgreedy.community

This algorithm is the Clauset-Newman-Moore algorithm. In this case the algorithm is agglomerative. At each step two groups merge. The merging is decided by optimising modularity. This is a fast algorithm, but has the disadvantage of being a greedy algorithm. Thus, is might not produce the best overall community partitioning, although I find it useful and accurate.

A Clauset, MEJ Newman, C Moore: Finding community structure in very large networks, http://www.arxiv.org/abs/cond-mat/0408187

spinglass.community

This algorithm uses as spin-glass model and simulated annealing to find the communities inside a network.

J. Reichardt and S. Bornholdt: Statistical Mechanics of Community Detection, Phys. Rev. E, 74, 016110 (2006), http://arxiv.org/abs/cond-mat/0603718

M. E. J. Newman and M. Girvan: Finding and evaluating community structure in networks, Phys. Rev. E 69, 026113 (2004)

An example:

# First we load the ipgrah package
library(igraph)
 
# let's generate two networks and merge them into one graph.
g2 <- barabasi.game(50, p=2, directed=F)
g1 <- watts.strogatz.game(1, size=100, nei=5, p=0.05)
g <- graph.union(g1,g2)
 
# let's remove multi-edges and loops
g <- simplify(g)
 
# let's see if we have communities here using the 
# Grivan-Newman algorithm
# 1st we calculate the edge betweenness, merges, etc...
ebc <- edge.betweenness.community(g, directed=F)
 
# Now we have the merges/splits and we need to calculate the modularity
# for each merge for this we'll use a function that for each edge
# removed will create a second graph, check for its membership and use
# that membership to calculate the modularity
mods <- sapply(0:ecount(g), function(i){
  g2 <- delete.edges(g, ebc$removed.edges[seq(length=i)])
  cl <- clusters(g2)$membership
# March 13, 2014 - compute modularity on the original graph g 
# (Thank you to Augustin Luna for detecting this typo) and not on the induced one g2. 
  modularity(g,cl)
})
 
# we can now plot all modularities
plot(mods, pch=20)
 
# Now, let's color the nodes according to their membership
g2<-delete.edges(g, ebc$removed.edges[seq(length=which.max(mods)-1)])
V(g)$color=clusters(g2)$membership
 
# Let's choose a layout for the graph
g$layout <- layout.fruchterman.reingold
 
# plot it
plot(g, vertex.label=NA)
 
# if we wanted to use the fastgreedy.community agorithm we would do
fc <- fastgreedy.community(g)
com<-community.to.membership(g, fc$merges, steps= which.max(fc$modularity)-1)
V(g)$color <- com$membership+1
g$layout <- layout.fruchterman.reingold
plot(g, vertex.label=NA)

try it!

Complex Systems Society new Website.

The Complex Systems Society (CSS) is a great organisation. In the past month it revamped 2 of its websites. The more institutional website and is available at http://cssociety.org/. On the other hand, the traditional Wiki website where researchers can create their lab pages (or conference pages, personal, etc…). This also got a new facelift and is now more modern and easy to use. If you’re not a CSS member and you are a researcher interested in the areas of complex systems, interdisciplinary research or networks, please join the Society! It’s a great community.

update May 2, 2017 – Some dead links were removed. Text was adjusted accordingly.

Spatio-Temporal Dynamics on Co-Evolved Stigmergy

ECCS11 Spatio-Temporal Dynamics on Co-Evolved Stigmergy Vitorino Ramos David M.S. Rodrigues Jorge Louçã

Vitorino Ramos, David M.S. Rodrigues, Jorge Louçã, “Spatio-Temporal Dynamics on Co-Evolved Stigmergy“, in European Conference on Complex Systems, ECCS’11, Vienna, Austria, Sept. 12-16 2011.

 

Ever tried to solve a problem where its own problem statement is changing constantly? Have a look on our approach:

Abstract: Research over hard NP-complete Combinatorial Optimization Problems (COP’s) has been focused in recent years, on several robust bio-inspired meta-heuristics, like those involving Evolutionary Computation (EC) algorithmic paradigms. One particularly successful well-know meta-heuristic approach is based on Swarm Intelligence (SI), i.e., the self-organized stigmergic-based property of a complex system whereby the collective behaviors of (unsophisticated) entities interacting locally with their environment cause coherent functional global patterns to emerge. This line of research recognized as Ant Colony Optimization (ACO), uses a set of stochastic cooperating ant-like agents to find good solutions, using self-organized stigmergy as an indirect form of communication mediated by artificial pheromone, whereas agents deposit pheromone-signs on the edges of the problem-related graph complex network, encompassing a family of successful algorithmic variations such as: Ant Systems (AS), Ant Colony Systems (ACS), Max-Min Ant Systems (MaxMin AS) and Ant-Q.

Albeit being extremely successful these algorithms mostly rely on positive feedback’s, causing excessive algorithmic exploitation over the entire combinatorial search space. This is particularly evident over well known benchmarks as the symmetrical Traveling Salesman Problem (TSP). Being these systems comprised of a large number of frequently similar components or events, the principal challenge is to understand how the components interact to produce a complex pattern feasible solution (in our case study, an optimal robust solution for hard NP-complete dynamic TSP-like combinatorial problems). A suitable approach is to first understand the role of two basic modes of interaction among the components of Self-Organizing (SO) Swarm-Intelligent-like systems: positive and negative feedback. While positive feedback promotes a snowballing auto-catalytic effect (e.g. trail pheromone upgrading over the network; exploitation of the search space), taking an initial change in a system and reinforcing that change in the same direction as the initial deviation (self-enhancement and amplification) allowing the entire colony to exploit some past and present solutions (environmental dynamic memory), negative feedback such as pheromone evaporation ensure that the overall learning system does not stables or freezes itself on a particular configuration (innovation; search space exploration). Although this kind of (global) delayed negative feedback is important (evaporation), for the many reasons given above, there is however strong assumptions that other negative feedbacks are present in nature, which could also play a role over increased convergence, namely implicit-like negative feedbacks. As in the case for positive feedbacks, there is no reason not to explore increasingly distributed and adaptive algorithmic variations where negative feedback is also imposed implicitly (not only explicitly) over each network edge, while the entire colony seeks for better answers in due time.

In order to overcome this hard search space exploitation-exploration compromise, our present algorithmic approach follows the route of very recent biological findings showing that forager ants lay attractive trail pheromones to guide nest mates to food, but where, the effectiveness of foraging networks were improved if pheromones could also be used to repel foragers from unrewarding routes. Increasing empirical evidences for such a negative trail pheromone exists, deployed by Pharaoh’s ants (Monomorium pharaonis) as a ‘no entry‘ signal to mark unrewarding foraging paths. The new algorithm comprises a second order approach to Swarm Intelligence, as pheromone-based no entry-signals cues, were introduced, co-evolving with the standard pheromone distributions (collective cognitive maps) in the aforementioned known algorithms.

To exhaustively test his adaptive response and robustness, we have recurred to different dynamic optimization problems. Medium-size and large-sized dynamic TSP problems were created. Settings and parameters such as, environmental upgrade frequencies, landscape changing or network topological speed severity, and type of dynamic were tested. Results prove that the present co-evolved two-type pheromone swarm intelligence algorithm is able to quickly track increasing swift changes on the dynamic TSP complex network, compared to standard algorithms.

Keywords: Self-Organization, Stigmergy, Co-Evolution, Swarm Intelligence, Dynamic Optimization, Foraging, Cooperative Learning, Combinatorial Optimization problems, Dynamical Symmetrical Traveling Salesman Problems (TSP).

Fig. – Recovery times over several dynamical stress tests at the fl1577 TSP problem (1577 node graph) – 460 iter max – Swift changes at every 150 iterations (20% = 314 nodes, 40% = 630 nodes, 60% = 946 nodes, 80% = 1260 nodes, 100% = 1576 nodes). [click to enlarge]