Accueil > > > ALGORITHME DE DJIKSTRA
ALGORITHME DE DJIKSTRA
Information sur la source
Description
ce programme est un tp de recherche operationnelle implemente le l'algorthme de Djikstra
Source
- #include<stdio.h>
- #include<conio.h>
- #include <stdlib.h>
- #include <time.h>
- int n;
- int t[20][20],p[20],arc[20][20],a[20],s[20],q,j,i,r,o,z,x;
- long c;
- int main()
- {
- time_t ti;
- printf(" ===========================================================\n");
- printf(" UNIVERSITE DE BEJAIA\n ");
- printf(" DEPARTEMENT D'INFORMATIQUE \n ");
- printf(" ETUDIANT : TOUATI MOHAMED \n ");
- printf(" MODLE DE RECHERCHE OPERATIONNELLE\n");
- printf(" ===========================================================\n");
- printf(" ***bonjour***\n\n");
- printf(" Algorithme de Djikstra :\n\n\n");
- getch();
- int clrscr();
- printf(" ===========================================================\n");
- printf(" UNIVERSITE DE BEJAIA\n ");
- printf(" DEPARTEMENT D'INFORMATIQUE \n ");
- printf(" ETUDIANT : TOUATI MOHAMED \n ");
- printf(" MODULE DE RECHERCHE OPERATIONNELLE\n");
- printf(" ===========================================================\n\n");
- printf("introduire le nombre de sommet n \n\n");
- printf("n=");
- scanf("%d",&n);
- a:
- printf(" pour avoir la matrice manualement tappez '1' \n\n");
- printf(" pour avoir la mtrice automatiquement tappez '2' \n");
- scanf("%d",&q);
- if(q!=1 && q!=2)
- {
- goto a;
- }
- if (q==1)
- {
- printf(" donnez maintenant les valeurs de la matrice:\n");
- for(i=1;i<=n;i++)
- {
- for(j=1;j<=n;j++)
- {
- ref:
- printf("X(%d,%d)=",i,j);
- scanf("%d",&t[i][j]);
- if (t[i][j]<0)
- {
- printf("error!!!\a\n");
- printf("reffere l'introduction de la valeure de X(%d,%d)>=0\n",i,j);
- goto ref;
- }
- }
- }
-
- }
- else
- {
- srand((unsigned) time(&ti));
- for(i=1;i<=n;i++)
- {
- for(j=1;j<=n;j++)
- {
- t[i][j]=(rand() % 10);
- printf(" %d ",t[i][j]);
- }
- printf("\n\n\n");
- }
- }
- getch();
- for(i=1;i<=n;i++)
- t[i][i]=0; ///pour eliminer les boucles
-
- printf("---------------------------------------------------\n\n");
- //clrscr();
-
- for(i=1;i<=2;i++)
- for(j=1;j<=2;j++) //initialisation de arc
- arc[i][j]=0;
-
- for(i=1;i<=n;i++) // initialiser les potenciels a l'infinit
- p[i]=1000;
-
- for(i=1;i<=n;i++)
- a[i]=0;
-
- for(i=1;i<=n;i++)
- s[i]=0;
- o=1; /// "o"la variable qui contien la racine
- x=1;
-
- zero:
-
- if(o<=n)
- {
- s[x]=1;
- p[x]=0;
- z=1;
- un:
- for(i=1;i<=n;i++)
- {
- if((s[i]==0)&&(t[x][i]!=0))
- {
- if((p[x]+t[x][i])<p[i])
- {
- p[i]=p[x]+t[x][i];
- a[i]=x; //extremité initiale "x" extremité terminale "i"
- }
- }
- }
- deux:
- for(i=1;i<=n;i++)
- {
- if(s[i]==0)
- {
- z=i; //z est un sommet qui n'appartin pas a S
- i=n;
- }
- }
-
- for(i=1;i<=n;i++)
- {
- if((s[i]==0)&&(p[i]<p[z]))
- {z=i;} //z est un sommet qui n'appartin pas a S mais de ptentieile minimume
- }
-
-
- if(p[z]==1000) ////si le ptontiel min est a l'infinit
- { ////n'est pas une racine
- for(i=1;i<=2;i++)
- for(j=1;j<=2;j++)
- arc[i][j]=0;
-
- for(i=1;i<=n;i++)
- p[i]=1000;
-
- for(i=1;i<=n;i++)
- a[i]=0;
-
- for(i=1;i<=n;i++)
- s[i]=0;
- o=o+1;
- x=o;
- goto zero;
- }
- else
- {
- s[z]=1; ///introduire l'arc (a[z],z) dans l'arborecence
- arc[(a[z])][z]=t[(a[z])][z];
- x=z;
- }
- for(i=1;i<=n;i++)
- {
- if(s[i]==0)
- {goto un;}
- }
- }
- printf("l'arborecence de poid minimume avec la racine le sommet %d est:",o);
- printf("\n\n\n");
- for(i=1;i<=n;i++)
- {
- for(j=1;j<=n;j++)
- {
- printf(" %d ",arc[i][j]);
- }
- printf("\n\n\n");
- }
- printf("\n\n\n");
- printf("la racine est: %d",o);
- }
#include<stdio.h>
#include<conio.h>
#include <stdlib.h>
#include <time.h>
int n;
int t[20][20],p[20],arc[20][20],a[20],s[20],q,j,i,r,o,z,x;
long c;
int main()
{
time_t ti;
printf(" ===========================================================\n");
printf(" UNIVERSITE DE BEJAIA\n ");
printf(" DEPARTEMENT D'INFORMATIQUE \n ");
printf(" ETUDIANT : TOUATI MOHAMED \n ");
printf(" MODLE DE RECHERCHE OPERATIONNELLE\n");
printf(" ===========================================================\n");
printf(" ***bonjour***\n\n");
printf(" Algorithme de Djikstra :\n\n\n");
getch();
int clrscr();
printf(" ===========================================================\n");
printf(" UNIVERSITE DE BEJAIA\n ");
printf(" DEPARTEMENT D'INFORMATIQUE \n ");
printf(" ETUDIANT : TOUATI MOHAMED \n ");
printf(" MODULE DE RECHERCHE OPERATIONNELLE\n");
printf(" ===========================================================\n\n");
printf("introduire le nombre de sommet n \n\n");
printf("n=");
scanf("%d",&n);
a:
printf(" pour avoir la matrice manualement tappez '1' \n\n");
printf(" pour avoir la mtrice automatiquement tappez '2' \n");
scanf("%d",&q);
if(q!=1 && q!=2)
{
goto a;
}
if (q==1)
{
printf(" donnez maintenant les valeurs de la matrice:\n");
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
ref:
printf("X(%d,%d)=",i,j);
scanf("%d",&t[i][j]);
if (t[i][j]<0)
{
printf("error!!!\a\n");
printf("reffere l'introduction de la valeure de X(%d,%d)>=0\n",i,j);
goto ref;
}
}
}
}
else
{
srand((unsigned) time(&ti));
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
t[i][j]=(rand() % 10);
printf(" %d ",t[i][j]);
}
printf("\n\n\n");
}
}
getch();
for(i=1;i<=n;i++)
t[i][i]=0; ///pour eliminer les boucles
printf("---------------------------------------------------\n\n");
//clrscr();
for(i=1;i<=2;i++)
for(j=1;j<=2;j++) //initialisation de arc
arc[i][j]=0;
for(i=1;i<=n;i++) // initialiser les potenciels a l'infinit
p[i]=1000;
for(i=1;i<=n;i++)
a[i]=0;
for(i=1;i<=n;i++)
s[i]=0;
o=1; /// "o"la variable qui contien la racine
x=1;
zero:
if(o<=n)
{
s[x]=1;
p[x]=0;
z=1;
un:
for(i=1;i<=n;i++)
{
if((s[i]==0)&&(t[x][i]!=0))
{
if((p[x]+t[x][i])<p[i])
{
p[i]=p[x]+t[x][i];
a[i]=x; //extremité initiale "x" extremité terminale "i"
}
}
}
deux:
for(i=1;i<=n;i++)
{
if(s[i]==0)
{
z=i; //z est un sommet qui n'appartin pas a S
i=n;
}
}
for(i=1;i<=n;i++)
{
if((s[i]==0)&&(p[i]<p[z]))
{z=i;} //z est un sommet qui n'appartin pas a S mais de ptentieile minimume
}
if(p[z]==1000) ////si le ptontiel min est a l'infinit
{ ////n'est pas une racine
for(i=1;i<=2;i++)
for(j=1;j<=2;j++)
arc[i][j]=0;
for(i=1;i<=n;i++)
p[i]=1000;
for(i=1;i<=n;i++)
a[i]=0;
for(i=1;i<=n;i++)
s[i]=0;
o=o+1;
x=o;
goto zero;
}
else
{
s[z]=1; ///introduire l'arc (a[z],z) dans l'arborecence
arc[(a[z])][z]=t[(a[z])][z];
x=z;
}
for(i=1;i<=n;i++)
{
if(s[i]==0)
{goto un;}
}
}
printf("l'arborecence de poid minimume avec la racine le sommet %d est:",o);
printf("\n\n\n");
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
printf(" %d ",arc[i][j]);
}
printf("\n\n\n");
}
printf("\n\n\n");
printf("la racine est: %d",o);
}
Conclusion
universté de bejaia j'ai créé ce code ya deux ans pour mon tp de recherche operationnelle Djikstra -ford merci pour les remarques je prendrai en copte a la venire
Historique
- 22 juillet 2008 02:18:50 :
- enlevé la capture
- 23 juillet 2008 13:10:33 :
- prise en compte de quelque remarques
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
arborescence [ par Neoxeo ]
voila je sui tout nouveau sur ce site alor Bijour bon voila mon pb...je dois, pour un programme, creer un objet graphique sous c++ builder 4 afin de f
Parcourir une arborescence en C [ par HCJarod ]
Salut, je voudrai savoir comment en utilisant les fonction findfirst() et findnext() du C trouver tous les fichiers d'extension .exe. Je mexplique : l
arborescence d'un HD [ par Galerien ]
Bonjour à tous les dingues de la programmation en C,débutant dans la programmation en C sur PC, je souhaiterai inclure dans mon bout de code l'équival
lister une arborescence de repertoire [ par krater ]
bonjour, je souhaite réaliser un programme en C sous unix/linux qui rentre dans un fichier texte la liste des fichier du repertoir passer en parametre
CFileDialog améliorée ? [ par bzouli ]
Bonjour,Je voudrais faire un CFileDialog mais avec un Tree Control qui n'affiche que les dossiers de l'arborescence, et une Clist (à coté) où les fic
Comment afficher un scan de tous les disques du pc dans une arborescence? [ par champista ]
bijou,Voila, je suis un débutant en c++.Je travaille sous visual c++ 6.J'aimerais créer une arborescence qui affiche tous les disques et dossiers d'un
PB d'affichage des sous dossier dans une arborescence? [ par champista ]
Salut, Mon but est de créer une interface du type mfc avec:-une arborescence des disques+dossiers-une fenetre 'contenu du dossier' contenant sous
Pb sur "arborescence de dossier" [ par TahitiLove ]
Bonjour,J'ai créé un projet MFC. Ce que j'aimerai ce serait de rajouter l'affichage d'une arborescence de dossier dans la fenêtre
Obtenir arborescence des dossiers virtuels de mon FTP [ par melkiorlenecrarque ]
Bonjour,Existe-t-il une fonction api win32, semblable à SHBrowseForFolder pour selectionner un dossier virtuel sur mon serveur FTP ?Autre questio
arborescence de fichiers [ par otofraise ]
Bonjour,J'aimerais savoir s'il existe un composant qui permet d'obtenir l'arborescence des repertoires/fichiers d'une machine, qui possede en racine l
|
Derniers Blogs
PRATIQUE DE SILVERLIGHT PAR ERIC AMBROSIPRATIQUE DE SILVERLIGHT PAR ERIC AMBROSI par MPOWARE
Je viens de finir la lecture du dernier livre d'
Eric Ambrosi
Son livre donne une approche pratique de Silverlight qui sera aussi bien comprise par le développeur que par le designeur.
Tous les aspects du développement RIA sont abordés: animations, 3...
Cliquez pour lire la suite de l'article par MPOWARE APPRENDRE à DéVELOPPER POUR LES MOBILES AVEC LA NOUVELLE GéNéRATION .NETAPPRENDRE à DéVELOPPER POUR LES MOBILES AVEC LA NOUVELLE GéNéRATION .NET par odewit
2 déclinaisons de Silverlight et 2 déclinaisons de Mono permettent dorénavant (ou permettront prochainement) de développer des applications .NET mobiles pour les principales plates-formes du marché :
Silverlight pour Symbian, basé sur Silverlight 2...
Cliquez pour lire la suite de l'article par odewit ZUNE : NOUVELLE VERSION DU ZUNE SOFTWARE - V 4.2ZUNE : NOUVELLE VERSION DU ZUNE SOFTWARE - V 4.2 par ROMELARD Fabrice
Avec la dernière génération du lecteur MP3 de Microsoft, le ZUNE HD, Microsoft a publié une nouvelle version du logiciel pour PC. Ainsi, je me suis décidé à installer celle-ci sur mon Tablet PC ACER, comme toujours le logiciel est donc tél...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice L'INTERFACE NATURELLE DE WINDOWS PHONE 7 SERIESL'INTERFACE NATURELLE DE WINDOWS PHONE 7 SERIES par odewit
La tendance est aux interfaces naturelles (NUI), et le keynote de Bill Buxton au MIX l'a bien souligné.
La charte graphique et ergonomique de Windows Phone 7 a donc été entièrement repensée en vue d'obtenir un maximum d'efficacité sur ce point. En re...
Cliquez pour lire la suite de l'article par odewit
Forum
RE : TRADAIONRE : TRADAION par rt15
Cliquez pour lire la suite par rt15
Logiciels
Academy System (10.9.4.0)ACADEMY SYSTEM (10.9.4.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods
|