Ouvrir, sous Scilab, l'application Metanet par la commande
metanet();
Ouvrir un nouveau graphe (files/new), le nommer avec une extension .graph et le choisir
orienté ;
Créer deux nœuds en utilisant le bouton droit de la souris, et un arc orienté en
cliquant, avec le bouton droit de la souris sur le premier nœud puis le second.
Modifier les caractéristiques par la rubrique Modify et les afficher par la rubrique
Graph.
2.4 Création d'un graphe directement sous scilab
On utilise la fonction make_graph dont les arguments sont décrits dans l'aide
g=make_graph('essai',1,2,[1],[2])
On crée ensuite le fichier essai.graph avec la fonction save_graph
save_graph(g,'essai')
On visualise maintenant le graphe
metanet('essai')
Sans créer de fichier, on peut directement visualiser le graphe
show_graph(g)
3 Modélisation d'une ville sous forme de graphe
3.1 Création du graphe
Créer par Metanet le graphe correspondant au réseau de la ville.
Figure 1: Graphe Metanet de la ville
Un tel fichier peut aussi être obtenu par les commandes suivantes sous Scilab
:
Affecter le trafic T12 et déterminer les flux générés sur les arcs. En déduire les
capacitées maximales restantes à réintroduire dans le graphe. Initialiser les arguments de
la fonction min_lcost_cflow() :
c=0;
v=0;
flag=0;
f=zeros(1,16);
Garder les valeurs des capacités maximales initiales sous capa0 :
capa0=zeros(1,16);
capa0=g(24);
Utiliser la fonction, les flux sont donnés par f :
[c,f,v,flag]=min_lcost_cflow(1,2,T(1,2),g);
Réintégrer les capacités maximales :
g(24)=capa0-f;
Visualiser les résultats :
show_graph(g);
En déduire, par une itération permettant d'affecter tous les Tij, les flux totaux sur les
tronçons. Les visualiser sous Metanet. Les flux finaux sont visualisés par exemple sur le
vecteur 22 du graphe correspondant au coût de l'arc.
Programmer la fonction Em(V ), donnant les émissions moyennes par véhicule et
kilomètre pour les vitesses V .
Cette fonction est à enregistrer dans un fichier, nommé pour l'exemple fonction_emission.
On remarque que V peut être un vecteur.
function [X]=Em(V)
pc=[0.35,0.35,0.2,0.1];
coef_a=[0.6089,0.4767,0.9037,0.9037;-0.0118,-0.0107,-0.0168,-0.0168;
0.0001,0.0001,0.0001, 0.0001];
X=0;
z=size(V);
X=sum((pc'*ones(1,z(1)))'.*([ones(z(1),1),V,V^2]*coef_a),'c');
X
Les longueurs des tronçons sont donnés dans l'énoncé. Calculer les émissions
de chaque arc, pour les flux calculés précédemment et les visualiser sur le
graphe. On décide que le poids de l'arc sous metanetreprésente les émissions.
Modifier l'épaisseur des arcs proportionnellement aux émissions.
g(18)=0.001*g(27);
show_graph(g);
4 Résumé du code informatique
4.1 Les fonctions
function [X]=Em(V)
pc=[0.35,0.35,0.2,0.1];
coef_a=[0.6089,0.4767,0.9037,0.9037;-0.0118,-0.0107,-0.0168,-0.0168;
0.0001,0.0001,0.0001, 0.0001];
X=0;
z=size(V);
X=sum((pc'*ones(1,z(1)))'.*([ones(z(1),1),V,V^2]*coef_a),'c');
X