mp2: added template
This commit is contained in:
parent
a91194c78a
commit
4cd35f229d
14 changed files with 1809 additions and 0 deletions
14
mp2/Makefile
Normal file
14
mp2/Makefile
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
filename=template
|
||||||
|
|
||||||
|
pdf:
|
||||||
|
pdflatex ${filename}
|
||||||
|
bibtex ${filename}||true
|
||||||
|
pdflatex ${filename}
|
||||||
|
make clean
|
||||||
|
|
||||||
|
read:
|
||||||
|
evince ${filename}.pdf &
|
||||||
|
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -f *.out *.log *.bbl *.blg *.aux ${filename}.log ${filename}.ps ${filename}.aux ${filename}.out ${filename}.dvi ${filename}.bbl ${filename}.blg
|
BIN
mp2/Project.2.Maggioni.Claudio/A_SymPosDef.mat
Normal file
BIN
mp2/Project.2.Maggioni.Claudio/A_SymPosDef.mat
Normal file
Binary file not shown.
43
mp2/Project.2.Maggioni.Claudio/householder/README.m
Normal file
43
mp2/Project.2.Maggioni.Claudio/householder/README.m
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
%
|
||||||
|
% On a Matrix and Its Graph
|
||||||
|
%
|
||||||
|
% At the 1993 Householder Symposium on Numerical Algebra in Lake Arrowhead,
|
||||||
|
% Nick Trefethen posted a flip chart and invited everyone present to write
|
||||||
|
% their name on it, and to draw lines connecting their name with the names
|
||||||
|
% of all their coauthors. The diagram grew denser throughout the week; at
|
||||||
|
% the end it was a graph with 104 vertices (or people) and 211 edges.
|
||||||
|
%
|
||||||
|
% A graph is a sparse matrix, so just for fun we typed the graph into Matlab
|
||||||
|
% and looked at it in a few different ways. You can say "runme" to Matlab
|
||||||
|
% to see the results.
|
||||||
|
%
|
||||||
|
% The original flip chart is now framed on the wall of Nick's office at
|
||||||
|
% Cornell. He promises to bring it along to Householder 2023.
|
||||||
|
%
|
||||||
|
% - John Gilbert, Cleve Moler, Nick Trefethen
|
||||||
|
% with thanks to Rob Schreiber, Barry Smith, and 99 others.
|
||||||
|
%
|
||||||
|
% ----------------------------------------------------------------------
|
||||||
|
% List of files in matlab/householder:
|
||||||
|
%
|
||||||
|
% README.m This file.
|
||||||
|
%
|
||||||
|
% runme.m Matlab script to show off the matrix and the graph.
|
||||||
|
%
|
||||||
|
% drawit.m Matlab script just to draw the graph.
|
||||||
|
%
|
||||||
|
% graph.ps Black-and-white postscript picture of the graph.
|
||||||
|
%
|
||||||
|
% housegraph.mat The raw data, as follows:
|
||||||
|
%
|
||||||
|
% A is the 104x104 adjacency matrix of the graph.
|
||||||
|
% xy is the array of vertex coordinates for the picture.
|
||||||
|
% name is a character matrix with 104 rows, each row giving the
|
||||||
|
% name of the person associated with a vertex.
|
||||||
|
% Every person's name is also a scalar variable whose value is
|
||||||
|
% that person's vertex number; for example,
|
||||||
|
% Stewart = 77 and name(77,:) = 'Stewart'.
|
||||||
|
% prcm is a permutation (based on reverse Cuthill-McKee)
|
||||||
|
% to reorder the graph for the picture.
|
||||||
|
|
||||||
|
help README
|
28
mp2/Project.2.Maggioni.Claudio/householder/drawit.m
Normal file
28
mp2/Project.2.Maggioni.Claudio/householder/drawit.m
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
% DRAWIT Script to plot the graph of coauthors from Householder 93.
|
||||||
|
|
||||||
|
if ~exist('prcm')
|
||||||
|
load housegraph;
|
||||||
|
end;
|
||||||
|
|
||||||
|
% A is the adjacency matrix.
|
||||||
|
% prcm is a permutation; any permutation could be substituted.
|
||||||
|
% name is the vector of people's names.
|
||||||
|
% xy is just xy coords of points on the unit circle (and the origin).
|
||||||
|
|
||||||
|
Aperm = A(prcm,prcm);
|
||||||
|
nameperm = name(prcm,:);
|
||||||
|
nfolks = max(size(A));
|
||||||
|
|
||||||
|
clf
|
||||||
|
gplot(Aperm,xy);
|
||||||
|
axis off;
|
||||||
|
x = xy(:,1) * 1.05;
|
||||||
|
y = xy(:,2) * 1.05;
|
||||||
|
x(1) = .08; % Put names(1) in the center of the circle.
|
||||||
|
y(1) = .06;
|
||||||
|
h = text(x,y,nameperm);
|
||||||
|
|
||||||
|
for k = 2:nfolks % Shrink the font for the other names, and rotate them.
|
||||||
|
set(h(k),'fontsize',10);
|
||||||
|
set(h(k),'rotation',180/pi*atan2(y(k),x(k)));
|
||||||
|
end;
|
1036
mp2/Project.2.Maggioni.Claudio/householder/graph.ps
Normal file
1036
mp2/Project.2.Maggioni.Claudio/householder/graph.ps
Normal file
File diff suppressed because it is too large
Load diff
BIN
mp2/Project.2.Maggioni.Claudio/householder/housegraph.mat
Normal file
BIN
mp2/Project.2.Maggioni.Claudio/householder/housegraph.mat
Normal file
Binary file not shown.
190
mp2/Project.2.Maggioni.Claudio/householder/runme.m
Normal file
190
mp2/Project.2.Maggioni.Claudio/householder/runme.m
Normal file
|
@ -0,0 +1,190 @@
|
||||||
|
% RUNME : Demonstrate the graph of coauthors from Householder 1993.
|
||||||
|
|
||||||
|
load housegraph;
|
||||||
|
|
||||||
|
% A is the adjacency matrix.
|
||||||
|
% prcm is a permutation; any permutation could be substituted.
|
||||||
|
% name is the vector of people's names.
|
||||||
|
% xy is just xy coords of points on the unit circle (and the origin).
|
||||||
|
|
||||||
|
|
||||||
|
clc;
|
||||||
|
more off;
|
||||||
|
format compact;
|
||||||
|
disp(' ');
|
||||||
|
disp(' On a Matrix and Its Graph');
|
||||||
|
disp(' ');
|
||||||
|
disp('At the 1993 Householder Symposium on Numerical Algebra in Lake Arrowhead,');
|
||||||
|
disp('Nick Trefethen posted a flip chart and invited everyone present to write');
|
||||||
|
disp('their name on it, and to draw lines connecting their name with the names');
|
||||||
|
disp('of all their coauthors. The diagram grew denser throughout the week; at');
|
||||||
|
disp('the end it was a graph with 104 vertices (or people) and 211 edges. ');
|
||||||
|
disp(' ');
|
||||||
|
disp('Just for fun we typed the graph into Matlab. Here''s the result....');
|
||||||
|
disp(' ');
|
||||||
|
disp(' [Hit space to continue] ');
|
||||||
|
pause;
|
||||||
|
|
||||||
|
figure(1);
|
||||||
|
clf reset;
|
||||||
|
spy(A);
|
||||||
|
title('Coauthor Matrix');
|
||||||
|
drawnow;
|
||||||
|
|
||||||
|
figure(2);
|
||||||
|
clf reset;
|
||||||
|
drawit;
|
||||||
|
|
||||||
|
disp(' ');
|
||||||
|
disp('The adjacency matrix is symmetric with 104 rows and columns, and');
|
||||||
|
disp('211 nonzeros above the diagonal; all the nonzeros have value 1. ');
|
||||||
|
|
||||||
|
disp(' ');
|
||||||
|
disp(' [Hit space to continue] ');
|
||||||
|
pause;
|
||||||
|
|
||||||
|
disp(' ');
|
||||||
|
disp('Which column has the highest nonzero count?');
|
||||||
|
disp(' ');
|
||||||
|
|
||||||
|
echo on
|
||||||
|
[count,column] = max(sum(A))
|
||||||
|
|
||||||
|
name(column,:)
|
||||||
|
|
||||||
|
echo off
|
||||||
|
|
||||||
|
disp(' ');
|
||||||
|
disp(' [Hit space to continue] ');
|
||||||
|
pause;
|
||||||
|
|
||||||
|
clc;
|
||||||
|
disp('Here''s a bandwidth-reducing order of the matrix. ');
|
||||||
|
|
||||||
|
p = symrcm(A);
|
||||||
|
figure(1);
|
||||||
|
spy(A(p,p));
|
||||||
|
title('Reverse Cuthill-McKee Order');
|
||||||
|
drawnow;
|
||||||
|
|
||||||
|
disp(' ');
|
||||||
|
disp('I don''t know what to conclude from this!');
|
||||||
|
|
||||||
|
disp(' ');
|
||||||
|
disp(' [Hit space to continue] ');
|
||||||
|
pause;
|
||||||
|
|
||||||
|
clc;
|
||||||
|
disp('Powers of the matrix give information about paths in the graph.');
|
||||||
|
disp('Squaring the matrix gives paths of length 1 and 2.');
|
||||||
|
|
||||||
|
figure(1);
|
||||||
|
AA = A^2;
|
||||||
|
spy(AA);
|
||||||
|
title('A^2');
|
||||||
|
|
||||||
|
disp(' ');
|
||||||
|
disp(' [Hit space to continue] ');
|
||||||
|
pause;
|
||||||
|
disp(' ');
|
||||||
|
|
||||||
|
disp('Have Gene Golub and Cleve Moler ever been coauthors?');
|
||||||
|
|
||||||
|
disp(' ');
|
||||||
|
disp(' [Hit space to continue] ');
|
||||||
|
pause;
|
||||||
|
disp(' ');
|
||||||
|
|
||||||
|
echo on;
|
||||||
|
A(Golub,Moler)
|
||||||
|
|
||||||
|
echo off;
|
||||||
|
|
||||||
|
disp(' ');
|
||||||
|
disp('No.');
|
||||||
|
disp('But how many coauthors do they have in common?');
|
||||||
|
|
||||||
|
disp(' ');
|
||||||
|
disp(' [Hit space to continue] ');
|
||||||
|
pause;
|
||||||
|
disp(' ');
|
||||||
|
|
||||||
|
echo on;
|
||||||
|
AA = A^2;
|
||||||
|
AA(Golub,Moler)
|
||||||
|
|
||||||
|
echo off;
|
||||||
|
|
||||||
|
disp(' ');
|
||||||
|
disp('And who are those common coauthors? (Matlab hackers raise your hands.)');
|
||||||
|
|
||||||
|
disp(' ');
|
||||||
|
disp(' [Hit space to continue] ');
|
||||||
|
pause;
|
||||||
|
disp(' ');
|
||||||
|
|
||||||
|
echo on;
|
||||||
|
name( find ( A(:,Golub) .* A(:,Moler) ), :)
|
||||||
|
|
||||||
|
echo off;
|
||||||
|
|
||||||
|
disp(' ');
|
||||||
|
disp(' [Hit space to continue] ');
|
||||||
|
pause;
|
||||||
|
|
||||||
|
clc;
|
||||||
|
|
||||||
|
disp('If we keep taking powers of the matrix, ...');
|
||||||
|
|
||||||
|
p = 2;
|
||||||
|
while ~all(AA(1,:))
|
||||||
|
AA = AA*A;
|
||||||
|
spy(AA);
|
||||||
|
p = p+1;
|
||||||
|
title(['A^' int2str(p)]);
|
||||||
|
pause(1);
|
||||||
|
end;
|
||||||
|
|
||||||
|
disp(' ');
|
||||||
|
disp('... we can find the length of the longest path ');
|
||||||
|
disp('from Gene Golub to anybody, which is the power that');
|
||||||
|
disp('first has row 1 full, ...');
|
||||||
|
|
||||||
|
disp(' ');
|
||||||
|
disp(' [Hit space to continue] ');
|
||||||
|
pause;
|
||||||
|
disp(' ');
|
||||||
|
|
||||||
|
while ~all(all(AA))
|
||||||
|
AA = AA*A;
|
||||||
|
spy(AA);
|
||||||
|
p = p+1;
|
||||||
|
title(['A^' int2str(p)]);
|
||||||
|
pause(1);
|
||||||
|
end;
|
||||||
|
|
||||||
|
disp('... and also the diameter of the graph, which is ');
|
||||||
|
disp('the power that first has the whole matrix full.');
|
||||||
|
|
||||||
|
disp(' ');
|
||||||
|
disp(' [Hit space to continue] ');
|
||||||
|
pause;
|
||||||
|
|
||||||
|
clc;
|
||||||
|
|
||||||
|
disp(' ');
|
||||||
|
disp('Finally, we try a minimum degree reordering of the matrix');
|
||||||
|
disp('and discover its true nature as, of course, ....');
|
||||||
|
disp(' ');
|
||||||
|
|
||||||
|
p = symamd(A);
|
||||||
|
spy(A(p,p));
|
||||||
|
title('The (Lake) Arrowhead Matrix');
|
||||||
|
pause(8);
|
||||||
|
|
||||||
|
disp(' ');
|
||||||
|
disp('Thanks to Tony Chan and Gene Golub for the meeting,');
|
||||||
|
disp(' Rob Schreiber and Barry Smith for helping count edges,');
|
||||||
|
disp(' and all concerned for a wonderful week.');
|
||||||
|
disp(' - John Gilbert, Cleve Moler, and Nick Trefethen ');
|
||||||
|
disp(' ');
|
34
mp2/Project.2.Maggioni.Claudio/karate.adj
Normal file
34
mp2/Project.2.Maggioni.Claudio/karate.adj
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
0 1 1 1 1 1 1 1 1 0 1 1 1 1 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0
|
||||||
|
1 0 1 1 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0
|
||||||
|
1 1 0 1 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0
|
||||||
|
1 1 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||||
|
1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||||
|
1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||||
|
1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||||
|
1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||||
|
1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1
|
||||||
|
0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
|
||||||
|
1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||||
|
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||||
|
1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||||
|
1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
|
||||||
|
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
|
||||||
|
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
|
||||||
|
0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||||
|
1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||||
|
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
|
||||||
|
1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
|
||||||
|
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
|
||||||
|
1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||||
|
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
|
||||||
|
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 1
|
||||||
|
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0
|
||||||
|
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0
|
||||||
|
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1
|
||||||
|
0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1
|
||||||
|
0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1
|
||||||
|
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 1
|
||||||
|
0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
|
||||||
|
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 1 1
|
||||||
|
0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1 1 1 0 1
|
||||||
|
0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 1 0 0 1 1 1 0 1 1 0 0 1 1 1 1 1 1 1 0
|
65
mp2/Project.2.Maggioni.Claudio/pagerank.m
Normal file
65
mp2/Project.2.Maggioni.Claudio/pagerank.m
Normal file
|
@ -0,0 +1,65 @@
|
||||||
|
function x = pagerank(U,G,p)
|
||||||
|
% PAGERANK Google's PageRank
|
||||||
|
% pagerank(U,G,p) uses the URLs and adjacency matrix produced by SURFER,
|
||||||
|
% together with a damping factory p, (default is .85), to compute and plot
|
||||||
|
% a bar graph of page rank, and print the dominant URLs in page rank order.
|
||||||
|
% x = pagerank(U,G,p) returns the page ranks instead of printing.
|
||||||
|
% See also SURFER, SPY.
|
||||||
|
|
||||||
|
if nargin < 3, p = .85; end
|
||||||
|
|
||||||
|
|
||||||
|
if(ischar(U))
|
||||||
|
U=cellstr(U);
|
||||||
|
end
|
||||||
|
|
||||||
|
if(isreal(U))
|
||||||
|
U=(num2cell(U));
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
% Eliminate any self-referential links
|
||||||
|
|
||||||
|
G = G - diag(diag(G));
|
||||||
|
|
||||||
|
% c = out-degree, r = in-degree
|
||||||
|
|
||||||
|
n = size(G,1);
|
||||||
|
c = sum(G,1);
|
||||||
|
r = sum(G,2);
|
||||||
|
|
||||||
|
% Scale column sums to be 1 (or 0 where there are no out links).
|
||||||
|
|
||||||
|
k = find(c~=0);
|
||||||
|
D = sparse(k,k,1./c(k),n,n);
|
||||||
|
|
||||||
|
% Solve (I - p*G*D)*x = e
|
||||||
|
|
||||||
|
e = ones(n,1);
|
||||||
|
I = speye(n,n);
|
||||||
|
x = (I - p*G*D)\e;
|
||||||
|
|
||||||
|
% Normalize so that sum(x) == 1.
|
||||||
|
|
||||||
|
x = x/sum(x);
|
||||||
|
|
||||||
|
% Bar graph of page rank.
|
||||||
|
|
||||||
|
shg
|
||||||
|
bar(x)
|
||||||
|
title('Page Rank')
|
||||||
|
|
||||||
|
% Print URLs in page rank order.
|
||||||
|
|
||||||
|
if nargout < 1
|
||||||
|
[~,q] = sort(-x);
|
||||||
|
disp(' page-rank in out url')
|
||||||
|
k = 1;
|
||||||
|
while (k <= n) && (x(q(k)) >= .005)
|
||||||
|
j = q(k);
|
||||||
|
temp1 = r(j);
|
||||||
|
temp2 = c(j);
|
||||||
|
fprintf(' %3.0f %8.4f %4.0f %4.0f %s\n', j,x(j),full(temp1),full(temp2),U{j})
|
||||||
|
k = k+1;
|
||||||
|
end
|
||||||
|
end
|
27
mp2/Project.2.Maggioni.Claudio/test.m
Normal file
27
mp2/Project.2.Maggioni.Claudio/test.m
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
clear;
|
||||||
|
n = 1000;
|
||||||
|
x = randperm(n);
|
||||||
|
gs = 450;
|
||||||
|
|
||||||
|
group1 = x(1:gs);
|
||||||
|
group2 = x(gs+1:end);
|
||||||
|
|
||||||
|
p_group1 = 0.5;
|
||||||
|
p_group2 = 0.4;
|
||||||
|
p_between = 0.1;
|
||||||
|
|
||||||
|
A(group1, group1) = rand(gs, gs) < p_group1;
|
||||||
|
A(group2, group2) = rand(n-gs, n-gs) < p_group2;
|
||||||
|
A(group1, group2) = rand(gs, n-gs) < p_between;
|
||||||
|
% no group2, group1 needed since we'll force the matrix to be symmetric
|
||||||
|
|
||||||
|
A = triu(A,1); % upper triangular part of A without diagonal
|
||||||
|
A = A + A'; % make it symmetric
|
||||||
|
deg = sum(A);
|
||||||
|
L = diag(deg) - A;
|
||||||
|
[V, D] = eig(L);
|
||||||
|
display(D(2,2));
|
||||||
|
plot(sort(V(:,2)), '.-');
|
||||||
|
|
||||||
|
[ignore, p] = sort(V(:,2));
|
||||||
|
spy(A(p,p));
|
322
mp2/assignment.sty
Normal file
322
mp2/assignment.sty
Normal file
|
@ -0,0 +1,322 @@
|
||||||
|
%% % for readable pdf files
|
||||||
|
%% \usepackage{times}
|
||||||
|
\usepackage{ifthen}
|
||||||
|
\usepackage{comment}
|
||||||
|
\usepackage[utf8]{inputenc}
|
||||||
|
%% \usepackage{enumerate}
|
||||||
|
%% \usepackage{alltt}
|
||||||
|
%% \usepackage{xspace}
|
||||||
|
%% \usepackage{wrapfig}
|
||||||
|
\usepackage{graphics}
|
||||||
|
\usepackage{graphicx}
|
||||||
|
\usepackage{epstopdf}
|
||||||
|
% \usepackage{amsmath}
|
||||||
|
%% \usepackage{mathtools}
|
||||||
|
\usepackage{amssymb}
|
||||||
|
%\usepackage[xetex,bookmarks,pdfencoding=unicode,colorlinks=true,citecolor=blue,linkcolor=black,urlcolor=blue]{hyperref}
|
||||||
|
\usepackage[bookmarks,pdfencoding=unicode,colorlinks=true,citecolor=blue,linkcolor=black,urlcolor=blue]{hyperref}
|
||||||
|
% \usepackage{nohyperref}
|
||||||
|
%\usepackage{url}
|
||||||
|
%% \usepackage{fancyvrb}
|
||||||
|
\usepackage{verbatim}
|
||||||
|
\usepackage{listingsutf8}
|
||||||
|
\usepackage{color}
|
||||||
|
%% \usepackage{textcomp}
|
||||||
|
%% \usepackage{cmap}
|
||||||
|
%% \usepackage[colorinlistoftodos]{todonotes}
|
||||||
|
%% \usepackage{lineno}
|
||||||
|
%% \usepackage{tocloft}
|
||||||
|
%% \usepackage{marginnote}
|
||||||
|
\usepackage{geometry}
|
||||||
|
\usepackage{booktabs}
|
||||||
|
%% \usepackage{longtable}
|
||||||
|
%% \usepackage{etoolbox}
|
||||||
|
%% \usepackage{titlesec}
|
||||||
|
\usepackage[font=small,labelfont=it,labelsep=period,justification=centering]{caption}
|
||||||
|
\usepackage{array}
|
||||||
|
%% %\usepackage{tabularx}
|
||||||
|
%% \usepackage[titletoc]{appendix}%
|
||||||
|
|
||||||
|
\pagestyle{plain}
|
||||||
|
\voffset -5mm
|
||||||
|
|
||||||
|
\oddsidemargin 0mm
|
||||||
|
\evensidemargin -11mm
|
||||||
|
\marginparwidth 2cm
|
||||||
|
\marginparsep 0pt
|
||||||
|
|
||||||
|
\topmargin 0mm
|
||||||
|
\headheight 0pt
|
||||||
|
\headsep 0pt
|
||||||
|
\topskip 0pt
|
||||||
|
|
||||||
|
%\footheight 0pt
|
||||||
|
%\footskip 0pt
|
||||||
|
\textheight 255mm
|
||||||
|
\textwidth 165mm
|
||||||
|
|
||||||
|
% ----------------------------------------
|
||||||
|
%
|
||||||
|
% II. Macros
|
||||||
|
%
|
||||||
|
% ----------------------------------------
|
||||||
|
|
||||||
|
\let\gaga=\phi \let\phi=\varphi \let\varphi=\gaga
|
||||||
|
\let\gaga=\theta \let\theta=\vartheta \let\vartheta=\gaga
|
||||||
|
\let\gaga=\epsilon \let\epsilon=\varepsilon \let\varepsilon=\gaga
|
||||||
|
|
||||||
|
\newcommand\code[1]{ {\footnotesize \texttt{#1}} }
|
||||||
|
|
||||||
|
\newcommand\isassignment {false}
|
||||||
|
\newcommand{\setassignment}{\renewcommand\isassignment {true}}
|
||||||
|
\newcommand{\ifassignment}[1]{\ifthenelse{\boolean{\isassignment}}{#1}{}}
|
||||||
|
\newcommand{\ifnotassignment}[1]{\ifthenelse{\boolean{\isassignment}}{}{#1}}
|
||||||
|
\newcommand{\ignore}[1]{}
|
||||||
|
\newcommand{\duedate} {}
|
||||||
|
\newcommand{\setduedate}[1]{%
|
||||||
|
\renewcommand\duedate {Due date:~ #1}
|
||||||
|
}
|
||||||
|
\newcommand{\assignmentpolicy}{
|
||||||
|
\bigskip
|
||||||
|
\bigskip
|
||||||
|
\begin{table}[h]
|
||||||
|
\begin{center}
|
||||||
|
\scalebox{0.8} {%
|
||||||
|
\begin{tabular}{|p{0.02cm}p{16cm}|}
|
||||||
|
\hline
|
||||||
|
&\\
|
||||||
|
\multicolumn{2}{|c|}{\Large\textbf{Submission instructions}}\\
|
||||||
|
\multicolumn{2}{|c|}{\large\textbf{(Please, notice that following instructions are mandatory: }}\\
|
||||||
|
\multicolumn{2}{|c|}{\large\textbf{submissions that don't comply with, won't be considered)}}\\
|
||||||
|
&\\
|
||||||
|
\textbullet & Assignments must be submitted to Moodle (i.e. in electronic format).\\
|
||||||
|
\textbullet & Provide both executable package (single .class or .jar file) and sources (.java files). If you are using non-sdk libraries, please add them in the file. Sources must be organized in packages called:\\
|
||||||
|
\multicolumn{2}{|c|}{\textit{ch.usi.inf.ncc12.assignment$<$assignmentNumber$>$.exercise$<$exerciseNumber$>$.$<$name$>$.$<$surname$>$}}\\
|
||||||
|
& and the jar file must be called:\\
|
||||||
|
\multicolumn{2}{|c|}{\textit{assignment$<$AssignmentNumber$>$.$<$Name$>$.$<$Surname$>$.jar}}\\
|
||||||
|
& Projects exported directly from Eclipse would be much appreciated (Please, be sure that you are including also the sources in the jar file).\\
|
||||||
|
\textbullet & The produced files (one pdf and one jar file) must be collected into a single archive file (.zip) named:\\
|
||||||
|
\multicolumn{2}{|c|}{\textit{assignment$<$AssignmentNumber$>$.$<$Name$>$.$<$Surname$>$.zip}}\\
|
||||||
|
\hline
|
||||||
|
\end{tabular}
|
||||||
|
}
|
||||||
|
\end{center}
|
||||||
|
\end{table}
|
||||||
|
}
|
||||||
|
\newcommand{\ie}{\textit{i.e.,}\xspace}
|
||||||
|
\newcommand{\eg}{\textit{e.g.,}\xspace}
|
||||||
|
\newcommand{\etal}{\textit{et al.}\xspace}
|
||||||
|
|
||||||
|
\newcommand\nat{{\Bbb N}}
|
||||||
|
\def\int{{\Bbb Z}}
|
||||||
|
\newcommand\rat{{\Bbb Q}}
|
||||||
|
\newcommand\real{{\Bbb R}}
|
||||||
|
\newcommand\calD{{\cal D}}
|
||||||
|
\newcommand\calM{{\cal M}}
|
||||||
|
\newcommand\calL{{\cal L}}
|
||||||
|
\newcommand\Gone{\bfmath{G1}}%
|
||||||
|
\newcommand\Gonei{\bfmath{G1i}}%
|
||||||
|
\newcommand\Goneai{\bfmath{G1(i)}}%
|
||||||
|
\newcommand\Gtwo{\bfmath{G2}}%
|
||||||
|
\newcommand\Gtwoi{\bfmath{G2i}}%
|
||||||
|
\newcommand\Gtwoai{\bfmath{G2(i)}}%
|
||||||
|
\newcommand\Gthree{\bfmath{G3}}%
|
||||||
|
\newcommand\Gthreei{\bfmath{G3i}}%
|
||||||
|
\newcommand\Gthreeai{\bfmath{G3(i)}}%
|
||||||
|
\newcommand\True{\bfmath{True}}
|
||||||
|
\newcommand\False{\bfmath{False}}
|
||||||
|
\newcommand\FV{\itmath{FV}}
|
||||||
|
%
|
||||||
|
% mathrel's
|
||||||
|
%
|
||||||
|
\def\maps{\mathrel{:}}
|
||||||
|
\def\andthen{\mathrel{;}}
|
||||||
|
\def\suchthat{\mathrel{:}}
|
||||||
|
\def\defid{\mathrel{:\equiv}}
|
||||||
|
\def\defeq{\mathrel{:=}}
|
||||||
|
\def\eqdef{\mathrel{=:}}
|
||||||
|
\def\gewenn{\leftrightarrow}
|
||||||
|
\newcommand\tnt{\mathrel{\supset}}
|
||||||
|
\newcommand\pr{\mathrel{\vdash}}%
|
||||||
|
\def\prld#1#2{\mathrel{\vrule width 0.3pt height 8pt depth 2pt\mkern-2mu\textstyle{\hskip0.5ex\raise2pt\hbox{$\scriptstyle#1$}\hskip0.1ex\over\hskip0.5ex#2\hskip0.1ex}}}
|
||||||
|
\def\defGewenn{\mathrel{{:}{\Longleftrightarrow}}}
|
||||||
|
\def\Gewenn{\mathrel{\Longleftrightarrow}}
|
||||||
|
\def\To{\mathrel{\Longrightarrow}}
|
||||||
|
\def\defsimeq{\mathrel{:\simeq}}
|
||||||
|
\def\redone{\mathrel{\vartriangleright_1}}
|
||||||
|
\def\red{\mathrel{\vartriangleright}}
|
||||||
|
%
|
||||||
|
% mathbin's
|
||||||
|
%
|
||||||
|
\newlength{\lminus}
|
||||||
|
\settowidth{\lminus}{\hbox{$-$}}
|
||||||
|
\def\dotmin{\mathbin{\vbox{\lineskip0pt\baselineskip0pt\hbox to\lminus{\hfill.\hfill}\vglue-0.55ex\hbox{$-$}}}}
|
||||||
|
|
||||||
|
%
|
||||||
|
% mathop's
|
||||||
|
%
|
||||||
|
\def\pow{\mathop{\rm Pow}}
|
||||||
|
\def\dom{\mathop{\rm dom}}
|
||||||
|
\def\ran{\mathop{\rm ran}}
|
||||||
|
\def\seq#1{\langle #1\rangle}
|
||||||
|
\def\Seq{\mathop{\it Seq}}
|
||||||
|
\def\lh{\mathop{\it lh}}
|
||||||
|
|
||||||
|
%
|
||||||
|
% points
|
||||||
|
%
|
||||||
|
\newcommand{\punkte}[1]{\hspace{1ex}\emph{\mdseries\hfill(#1~\ifcase#1{Points}\or{Points}\else{Points}\fi)}}
|
||||||
|
|
||||||
|
% ----------------------------------------------------------------------
|
||||||
|
\newcommand\secRule{\vspace{-4mm} \rule{.5\textwidth}{4pt}\vspace{-5mm}}
|
||||||
|
\newcommand{\vf}{\vspace{7mm plus7mm minus1mm}}
|
||||||
|
\newcommand{\compl}{{\rm c}}
|
||||||
|
\newcommand{\blank}{\hspace{0.5em}}
|
||||||
|
\newcommand\nyt{\rule{0pt}{0pt}}
|
||||||
|
\newcommand{\emspace}{\hspace{1em}}
|
||||||
|
|
||||||
|
\newcounter{countaufg}
|
||||||
|
|
||||||
|
\newenvironment{exercise}[1]{\addtocounter{countaufg}{1}%
|
||||||
|
\bigskip%
|
||||||
|
\subsection*{Exercise \arabic{countaufg} - %\series{m}
|
||||||
|
\selectfont #1%
|
||||||
|
\makeatother}%
|
||||||
|
\bigskip%
|
||||||
|
}
|
||||||
|
|
||||||
|
\newenvironment{optexercise}[1]{\addtocounter{countaufg}{1}%
|
||||||
|
\bigskip%
|
||||||
|
\subsection*{Exercise \arabic{countaufg} (optional) - %\series{m}
|
||||||
|
\selectfont #1%
|
||||||
|
\makeatother}%
|
||||||
|
\bigskip%
|
||||||
|
}%
|
||||||
|
|
||||||
|
\newcommand\hint[1]{\emph{Hint :} #1}
|
||||||
|
\newcommand\note[1]{\emph{Note :} #1}
|
||||||
|
|
||||||
|
\newcommand\serieheader[6]{
|
||||||
|
\thispagestyle{empty}%
|
||||||
|
\begin{flushleft}
|
||||||
|
\includegraphics[width=0.4\textwidth]{usi_inf}
|
||||||
|
\end{flushleft}
|
||||||
|
\noindent%
|
||||||
|
{\large\ignorespaces{\textbf{#1}}\hspace{\fill}\ignorespaces{ \textbf{#2}}}\\ \\%
|
||||||
|
{\large\ignorespaces #3 \hspace{\fill}\ignorespaces #4}\\
|
||||||
|
{\large\ignorespaces \empty{}\hspace{\fill}\ignorespaces \duedate}\\
|
||||||
|
\noindent%
|
||||||
|
\bigskip
|
||||||
|
\hrule\par\bigskip\noindent%
|
||||||
|
\bigskip {\ignorespaces {\Large{\textbf{#5}}}
|
||||||
|
\hspace{\fill}\ignorespaces \large \ifthenelse{\boolean{\isassignment}}{ }{\textbf{\Large }}}
|
||||||
|
\hrule\par\bigskip\noindent% \linebreak
|
||||||
|
}
|
||||||
|
|
||||||
|
\makeatletter
|
||||||
|
\def\enumerateMod{\ifnum \@enumdepth >3 \@toodeep\else
|
||||||
|
\advance\@enumdepth \@ne
|
||||||
|
\edef\@enumctr{enum\romannumeral\the\@enumdepth}\list
|
||||||
|
{\csname label\@enumctr\endcsname}{\usecounter
|
||||||
|
{\@enumctr}%%%? the following differs from "enumerate"
|
||||||
|
\topsep0pt%
|
||||||
|
\partopsep0pt%
|
||||||
|
\itemsep0pt%
|
||||||
|
%%%? end(differs)
|
||||||
|
\def\makelabel##1{\hss\llap{##1}}}\fi}
|
||||||
|
\let\endenumerateMod =\endlist
|
||||||
|
\makeatother
|
||||||
|
|
||||||
|
|
||||||
|
\usepackage{etex}
|
||||||
|
\usepackage{type1ec}
|
||||||
|
\usepackage[T2A]{fontenc}
|
||||||
|
\usepackage{textcomp}
|
||||||
|
%\usepackage[utf8]{inputenc}
|
||||||
|
|
||||||
|
%% \usepackage{polyglossia}
|
||||||
|
%% %\defaultfontfeatures{Scale=MatchLowercase, Mapping=tex-text}
|
||||||
|
%% \setmainfont[Scale=MatchLowercase, Mapping=tex-text]{Times New Roman}
|
||||||
|
%% \newfontfamily\cyrillicfont[Scale=MatchLowercase, Mapping=tex-text]{Times New Roman}
|
||||||
|
%% \setsansfont[Scale=MatchLowercase, Mapping=tex-text]{Times New Roman}
|
||||||
|
%% \setmonofont{Courier New}
|
||||||
|
%%
|
||||||
|
%% \setdefaultlanguage{english}
|
||||||
|
%% \selectlanguage{english}
|
||||||
|
|
||||||
|
\geometry{inner=25mm, outer=25mm, top=35mm, bottom=35mm, headheight=25mm, headsep=6.17mm}
|
||||||
|
\textwidth=0.8\paperwidth
|
||||||
|
\linespread{1.2}
|
||||||
|
|
||||||
|
%% \font\smallfont="Times New Roman" at 9 pt
|
||||||
|
%% \font\chapterfont="Times New Roman" at 16 pt
|
||||||
|
%% \font\chaptertitlefont="Times New Roman" at 18 pt
|
||||||
|
%% \font\sectionfont="Times New Roman Bold" at 11 pt
|
||||||
|
%% \font\subsectionfont="Times New Roman" at 11 pt
|
||||||
|
%% \font\headerfont="Times New Roman" at 9 pt
|
||||||
|
%% \font\headerboldfont="Times New Roman Bold" at 9 pt
|
||||||
|
%% \font\footerboldfont="Times New Roman Bold" at 10 pt
|
||||||
|
%% \titleformat{\chapter}[display]{\chapterfont}
|
||||||
|
%% {\chaptertitlename\ \thechapter}{18pt}{\chaptertitlefont}
|
||||||
|
%% \titleformat{\section}{\sectionfont}{\thesection.}{0.5em}{}
|
||||||
|
%% \titleformat{\subsection}{\subsectionfont}{\thesubsection.}{0.5em}{}
|
||||||
|
%% \titleformat{\subsubsection}{\subsectionfont}{\thesubsubsection.}{0.5em}{}
|
||||||
|
%% \titleformat{\figure}{}{\thefigure\.}{0.5em}{}
|
||||||
|
|
||||||
|
\usepackage{sectsty}
|
||||||
|
|
||||||
|
%% \font\smallfont="Times New Roman" at 9 pt
|
||||||
|
%% \font\chapterfont="Times New Roman" at 16 pt
|
||||||
|
\chapterfont{\fontsize{16}{20}\selectfont}
|
||||||
|
%% \font\chaptertitlefont="Times New Roman" at 18 pt
|
||||||
|
\chaptertitlefont{\fontsize{18}{22}\selectfont}
|
||||||
|
%% \font\sectionfont="Times New Roman Bold" at 11 pt
|
||||||
|
\sectionfont{\fontsize{11}{14}\selectfont}
|
||||||
|
%% \font\subsectionfont="Times New Roman" at 11 pt
|
||||||
|
\subsectionfont{\fontsize{9}{11}\selectfont}
|
||||||
|
%% \font\headerfont="Times New Roman" at 9 pt
|
||||||
|
%% \font\headerboldfont="Times New Roman Bold" at 9 pt
|
||||||
|
%% \font\footerboldfont="Times New Roman Bold" at 10 pt
|
||||||
|
%% \titleformat{\chapter}[display]{\chapterfont}
|
||||||
|
%% {\chaptertitlename\ \thechapter}{18pt}{\chaptertitlefont}
|
||||||
|
%% \titleformat{\section}{\sectionfont}{\thesection.}{0.5em}{}
|
||||||
|
%% \titleformat{\subsection}{\subsectionfont}{\thesubsection.}{0.5em}{}
|
||||||
|
%% \titleformat{\subsubsection}{\subsectionfont}{\thesubsubsection.}{0.5em}{}
|
||||||
|
%% \titleformat{\figure}{}{\thefigure\.}{0.5em}{}
|
||||||
|
|
||||||
|
\lstset{
|
||||||
|
inputencoding=utf8,
|
||||||
|
% backgroundcolor=\color{white},
|
||||||
|
tabsize=4,
|
||||||
|
rulecolor=,
|
||||||
|
basicstyle=\scriptsize,
|
||||||
|
upquote=true,
|
||||||
|
% aboveskip={1.5\baselineskip},
|
||||||
|
columns=fixed,
|
||||||
|
showstringspaces=false,
|
||||||
|
extendedchars=true,
|
||||||
|
breaklines=true,
|
||||||
|
prebreak = \raisebox{0ex}[0ex][0ex]{\ensuremath{\hookleftarrow}},
|
||||||
|
frame=single,
|
||||||
|
showtabs=false,
|
||||||
|
showspaces=false,
|
||||||
|
showstringspaces=false,
|
||||||
|
identifierstyle=\ttfamily,
|
||||||
|
keywordstyle=\ttfamily\color[rgb]{0,0,1},
|
||||||
|
commentstyle=\ttfamily\color[rgb]{0.133,0.545,0.133},
|
||||||
|
stringstyle=\ttfamily\color[rgb]{0.627,0.126,0.941},
|
||||||
|
}
|
||||||
|
|
||||||
|
% Add dots after chapters / sections numbers in TOC.
|
||||||
|
\makeatletter
|
||||||
|
\def\@seccntformat#1{\csname the#1\endcsname.\quad}
|
||||||
|
\def\numberline#1{\hb@xt@\@tempdima{#1\if&\else.\fi\hfil}}
|
||||||
|
\makeatother
|
||||||
|
|
||||||
|
%% Define a new 'leo' style for the package that will use a smaller font.
|
||||||
|
\makeatletter
|
||||||
|
\def\url@leostyle{%
|
||||||
|
\@ifundefined{selectfont}{\def\UrlFont{\sf}}{\def\UrlFont{\small\ttfamily}}}
|
||||||
|
\makeatother
|
||||||
|
%% Now actually use the newly defined style.
|
||||||
|
\urlstyle{leo}
|
BIN
mp2/project.2.Maggioni.Claudio.pdf
Normal file
BIN
mp2/project.2.Maggioni.Claudio.pdf
Normal file
Binary file not shown.
50
mp2/project.2.Maggioni.Claudio.tex
Normal file
50
mp2/project.2.Maggioni.Claudio.tex
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
\documentclass[unicode,11pt,a4paper,oneside,numbers=endperiod,openany]{scrartcl}
|
||||||
|
|
||||||
|
\input{assignment.sty}
|
||||||
|
|
||||||
|
|
||||||
|
\hyphenation{PageRank}
|
||||||
|
\hyphenation{PageRanks}
|
||||||
|
|
||||||
|
|
||||||
|
\begin{document}
|
||||||
|
|
||||||
|
|
||||||
|
\setassignment
|
||||||
|
\setduedate{Wednesday, 14 October 2020, 11:55 PM}
|
||||||
|
|
||||||
|
\serieheader{Numerical Computing}{2020}{Student: FULL NAME}{Discussed with: FULL NAME}{Solution for Project 2}{}
|
||||||
|
\newline
|
||||||
|
|
||||||
|
\assignmentpolicy
|
||||||
|
|
||||||
|
|
||||||
|
The purpose of this assignment\footnote{This document is originally
|
||||||
|
based on a blog from Cleve Moler, who wrote a fantastic blog post about the Lake Arrowhead graph, and John
|
||||||
|
Gilbert, who initially created the coauthor graph from the 1993 Householder Meeting. You can find more information
|
||||||
|
at \url{http://blogs.mathworks.com/cleve/2013/06/10/lake-arrowhead-coauthor-graph/}. Most of this assignment is derived
|
||||||
|
from this archived work.} is to learn the importance of sparse linear algebra algorithms to solve fundamental
|
||||||
|
questions in social network analyses.
|
||||||
|
We will use the coauthor graph from the Householder Meeting and the social network of friendships from Zachary's karate club~\cite{karate}.
|
||||||
|
These two graphs are one of the first examples where matrix methods were used in computational social network analyses.
|
||||||
|
|
||||||
|
|
||||||
|
\section{The Reverse Cuthill McKee Ordering [10 points]}
|
||||||
|
|
||||||
|
\section{Sparse Matrix Factorization [10 points]}
|
||||||
|
|
||||||
|
\section{Degree Centrality [10 points]}
|
||||||
|
|
||||||
|
\section{The Connectivity of the Coauthors [10 points]}
|
||||||
|
|
||||||
|
\section{PageRank of the Coauthor Graph [10 points]}
|
||||||
|
|
||||||
|
\section{Zachary's karate club: social network of friendships between 34 members [50 points]}
|
||||||
|
|
||||||
|
\begin{thebibliography}{99}
|
||||||
|
\bibitem{karate} The social network of a karate club at a US university, M.~E.~J. Newman and M. Girvan, Phys. Rev. E 69,026113 (2004)
|
||||||
|
pp. 219-229.
|
||||||
|
\end{thebibliography}
|
||||||
|
|
||||||
|
|
||||||
|
\end{document}
|
BIN
mp2/usi_inf.pdf
Normal file
BIN
mp2/usi_inf.pdf
Normal file
Binary file not shown.
Reference in a new issue