You are on page 1of 5

INSTITUTO SUPERIOR DE ENGENHARIA DO PORTO

DEPARTAMENTO DE ENGENHARIA INFORMTICA

LAPR1 2014/15

Enunciado do Projeto
Objetivos
Com este projeto pretende-se que os alunos desenvolvam uma aplicao em linguagem Java
onde apliquem um processo bsico de desenvolvimento de aplicaes informticas,
valorizando todas as fases do ciclo de desenvolvimento, desde a conceo aos testes de
validao. Pretende-se tambm que os alunos elaborem um relatrio que descreva a aplicao
concebida, o processo de desenvolvimento e que apresente e critique os resultados obtidos.
No final, devem fazer uma apresentao, em PowerPoint, do projeto desenvolvido.
Toda a gesto documental e respetivo trabalho colaborativo dever estar suportado na
aplicao OneDrive, do Office 365 (http://login.microsoftonline.com/), usando as credenciais de
acesso ao portal do ISEP.

Enunciado
A aplicao pedida permite a anlise de redes sociais (LinkedIn, Facebook, Twitter,).
Uma rede social pode ser vista como uma estrutura formada por pessoas (os ns) e o
relacionamento entre as pessoas (as ligaes entre os ns). Esta estrutura denomina-se grafo e
pode ser representada como na Figura 1 e na Figura 2-a.
A anlise das redes sociais pretende analisar e detetar padres de relacionamento entre
pessoas numa rede.

Figura 1: Representao simplificada da rede social (LinkedIn)

Uma forma de representar um grafo a matriz de adjacncias (ver Figura 2-b). Trata-se de uma
matriz quadrada, com o nmero de linhas (colunas) igual ao nmero de ns do grafo. Se houver
uma ligao entre quaisquer dois ns surge um 1 na posio correspondente, seno surge um
0.

LAPR1 2014/15, EFG, LAPR1 v00

Pag. 1

INSTITUTO SUPERIOR DE ENGENHARIA DO PORTO


DEPARTAMENTO DE ENGENHARIA INFORMTICA

LAPR1 2014/15

Figura 2: a) Grafo

b) Matriz de adjacncias

A representao por matrizes (matriz de adjacncias) permite a utilizao das ferramentas da


lgebra linear para analisar uma rede social.
P1. Dada a matriz de adjacncias num ficheiro HTML, desenhe o grafo correspondente. Para
tal, apenas podem ser utilizados mtodos estticos da classe Janela do projeto base
disponibilizado no Moodle.
Medidas de centralidade duma rede
Numa rede, os ns mais centrais so aqueles a partir dos quais podemos atingir qualquer outro
n mais facilmente. Existem diferentes medidas de centralidade que avaliam a importncia dos
ns numa rede de acordo com as suas ligaes.
Centralidade de grau (degree centrality)
O grau de cada n dado pelo nmero de ligaes desse n, ou nmero de contactos de uma
pessoa, d(i). calculado somando os elementos da linha correspondente ao n, na matriz de
adjacncias (de grau n). Quanto mais ligaes, maior a centralidade do n.
P2. A aplicao deve determinar a pessoa com maior grau de conectividade normalizado
(Cd) e destac-la graficamente (valor entre [0,1]).

() =

()
1

Nota: quanto maior o grau, mais influencivel o n na rede.


Centralidade de proximidade (closeness)
Esta medida de centralidade diz-nos que um n tanto mais importante quanto mais prximo est
de todos os outros (valor entre [0,1]).
() =

1
=1 (, )

Sendo d(i,j) = distncia entre i e j (ou seja, o menor nmero de ligaes que temos de
percorrer para ir de i at j).
P3. A aplicao deve calcular as matrizes A2,, An, sendo A a matriz de adjacncias e n a
dimenso da matriz.
LAPR1 2014/15, EFG, LAPR1 v00

Pag. 2

INSTITUTO SUPERIOR DE ENGENHARIA DO PORTO


DEPARTAMENTO DE ENGENHARIA INFORMTICA

LAPR1 2014/15
P4. Deve tambm calcular a matriz das distncias mais curtas entre cada 2 ns.
Nota: Para calcular o nmero de caminhos de comprimento n deve calcular-se An, sendo
A a matriz de adjacncias.
P5. Deve ainda calcular o valor de centralidade de proximidade (Cc) para todos os ns e
encontrar o n mais central (mais prximo de 1), destacando-o graficamente.
Centralidade de intermediao (betweeness)
A medida de centralidade de intermediao de um n k num grafo G com n ns dada pela
expresso
()
() =

1<
,

Este valor, para cada n, obtm-se somando o nmero de caminhos mais curtos entre i e j
que passam pelo n k, bij(k), a dividir por bij, nmero de caminhos mais curtos entre os ns
i e j. Esta medida diz-nos que um n importante se faz parte de muitos caminhos.
P6. A aplicao deve calcular a matriz com o nmero de caminhos mais curtos entre os ns.
P7. Deve tambm calcular a centralidade de intermediao para cada n (Cb). Deve ainda
destacar graficamente o n mais central (o maior).
Centralidade do vetor prprio
As medidas de centralidade espectrais procuram obter propriedades das redes a partir das
propriedades dos valores prprios e dos vetores prprios da matriz de adjacncias. A
centralidade de vetor prprio atribui relevncia a um n, em funo da sua relao com os
seus vizinhos. Ou seja, se um n k est ligado somente a outro n i (tendo assim uma baixa
centralidade de grau) mas os vizinhos de i forem importantes, o n k tambm ser
importante, tendo uma elevada centralidade de vetor prprio.
P8. A aplicao deve calcular o n mais central (ou seja, o n correspondente componente
mais alta do vetor prprio associado ao maior valor prprio e com todas as componentes
positivas) e assinala-lo graficamente.
Para tal, deve:

Determinar os valores prprios, chamando o mtodo evaluate da classe


EigenValues do projeto base disponibilizado no Moodle.
double vp[] = EigenValues.evaluate(A), sendo A a matriz de adjacncias

Calcular um vetor prprio, v, com todas as componentes positivas,


correspondente ao valor prprio mais elevado (valor prprio principal). Para
calcular o vetor prprio, deve resolver o sistema Av=v usando o mtodo da
condensao.

LAPR1 2014/15, EFG, LAPR1 v00

Pag. 3

INSTITUTO SUPERIOR DE ENGENHARIA DO PORTO


DEPARTAMENTO DE ENGENHARIA INFORMTICA

LAPR1 2014/15

Dados
Os dados de entrada da aplicao devem ser lidos a partir de um ficheiro HTML. Tambm
devem ser guardados, num ficheiro HTML, os clculos intermdios.
Entrada de dados
Ler os dados a partir de um ficheiro em formato HTML, onde consta a matriz de adjacncias
com as ligaes entre as pessoas na rede (ver Figura 3). Esta matriz pode ter qualquer
dimenso. A entrada de dados deve ser visualizada na janela da aplicao (mtodo
adicionarDados da classe Janela).

Figura 3: Ficheiro HTML com os dados de entrada

Resultados
Apresentar, num ficheiro em formato HTML os diferentes passos intermdios de clculo de
vetores e de matrizes. Estes resultados devem ser visualizados na janela da aplicao
(mtodo adicionarResultados da classe Janela).

Notas gerais

O LinkedIn uma rede social para contactos profissionais. Para uma melhor
compreenso do objetivo deste trabalho, sugere-se que se registe no LinkedIn
(caso ainda no esteja) e que adira ao grupo DEI-ISEP.
O trabalho dever ser desenvolvido num NICO projeto NetBeans. No Moodle
encontra-se um projeto base para desenvolvimento da aplicao. Este projeto
disponibiliza as classes Janela e EigenValues que pertencem package lapr1.
A aplicao dever ser chamada da linha de comandos (java jar
nome_programa.jar nome_fich_input.html nome_fich_output.html).
Os ficheiros em HTML utilizados pela aplicao, devero ser armazenados na
pasta principal do projeto NetBeans.
A aplicao deve ser estruturada e organizada em mdulos.

LAPR1 2014/15, EFG, LAPR1 v00

Pag. 4

INSTITUTO SUPERIOR DE ENGENHARIA DO PORTO


DEPARTAMENTO DE ENGENHARIA INFORMTICA

LAPR1 2014/15

Ser valorizada uma correta decomposio modular e o reaproveitamento de


mdulos.
Deve ser criada a classe CodificadorHTML, contendo um conjunto de mtodos
estticos que retornem strings com tabelas e texto formatado em HTML
(incluindo carateres acentuados, cabealhos, etc.).
Deve tambm ser implementada a classe DescodificadorHTML, dotada de um
conjunto de mtodos que permitam descodificar tags HTML, para extrao dos
dados de entrada.
proibido usar classes j implementadas em Java com mtodos que resolvam
alguma das alneas propostas.

Prazos e entregas

Na aula de orientao do grupo da semana de 15 a 19 de Dezembro mostrar ao Orientador:


o Esboo/mini-especificao da aplicao (mximo de 4 pginas), com uma breve
descrio das classes da aplicao e dos respetivos mtodos.
Entregas (no Moodle) :
o dia 15 de Janeiro (at s 23:30h)
o projeto completo, incluindo toda a estrutura de diretorias e ficheiros do
projeto (incluindo o executvel), num nico ficheiro comprimido (ZIP). Este
cdigo ser usado na avaliao do projeto, pelo que eventuais problemas na
compilao da aplicao na apresentao sero sempre imputados ao grupo.
o relatrio
o dia 16 de Janeiro (at s 23:30h)
a apresentao do trabalho.
Nota: Os ficheiros devero ter obrigatoriamente a designao do grupo (Ex:
"DAB13_projeto.ZIP", "DAB13_relatorio.PDF" e "DAB13_apresentacao.PDF").

As apresentaes do trabalho decorrero nos dias 20 e 21 de Janeiro.

LAPR1 2014/15, EFG, LAPR1 v00

Pag. 5

You might also like