Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more
Download
Standard view
Full view
of .
Look up keyword
Like this
1Activity
0 of .
Results for:
No results containing your search query
P. 1
4siq-Methodes de conception et construction de programmes - algorithme de branch&bound - BBA.h

4siq-Methodes de conception et construction de programmes - algorithme de branch&bound - BBA.h

Ratings: (0)|Views: 37|Likes:
Published by assem chelli
the header of Branch and bound algorithme (A*) of MCP project
the header of Branch and bound algorithme (A*) of MCP project

More info:

Published by: assem chelli on Jul 10, 2009
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as RTF, TXT or read online from Scribd
See more
See less

05/11/2014

text

 
#include <cstdlib>#include <iostream>#define tab_max_x 3#define tab_max_y 3//changer enfiler pour test les ouvertusing namespace 
std 
;/*types and structures*/typedef struct 
config
 
config
;typedef struct 
list
 
list
;struct 
 bi
 { char 
x
;char 
y
;};struct 
config
{char 
 val
[
tab_max_x
][
tab_max_y
];}; struct 
list
 { 
config
 
X
; float 
f
; float 
g
; 
list
 *
suiv 
; 
list
 *
 prev 
; // float hash; }; struct 
file
 { 
list
 *
l
; 
file
 *
suiv 
; };/*class general d'entree d'entree*/class 
system 
 { public:  
system 
(){
cpt
=0;
trouv 
=false;
solution
=
 NULL
;
n
=1;
 m 
=1;}bool 
trouv 
; char 
n
,
 m 
;
 
 
config
 
init
; bool (*
 but
)(
config
 
 A 
,int 
n
,int 
 m 
); float (*
 p
)(
config
 
 A 
,int 
n
,int 
 m 
); float (*
h
)(
config
 
 A 
,int 
n
,int 
 m 
); 
list
 *(*
SUCC
)(
config
 
 A 
,int 
n
,int 
 m 
); 
list
 *
solution
; int 
cpt
; };/*declaration functions*/bool 
eqiv 
(
config
 
 A 
,
config
 
B
,char 
n
,char 
 m 
);//bool copylist(list *A,list **B);
list
 *
inverser
(
list
 *
 A 
);bool 
detruire
(
list
 **
 A 
);bool 
inserer
(
list
 **
Z
,
config
 
X0
,char 
n
,char 
 m 
);bool 
search
(
list
 *
Z
,
config
 
X0
,char 
n
,char 
 m 
);
 bi
 
SchConf
(
config
 
 A 
,char 
n
,char 
 m 
,char 
 val
); bool 
enfiler
(
file
 **
F
,
list
 *
l
/*,char n,char m*/);
list
 *
defiler
(
file
 **
F
);float 
Hash
(
config
 
Y
,int 
n
,int 
 m 
);/*implementation*/ /*float Hash(config Y,int n,int m){float hash=0;for(int i=0;i<n;i++)for(char j=0;j<m;j++){hash+=Y.val[i][j]*i*j;};return hash;}*/ bool 
eqiv 
(
config
 
 A 
,
config
 
B
,char 
n
,char 
 m 
) {char 
i
; for(
i
=0;
i
<
n
;
i
++) for(char 
j
=0;
j
<
 m 
;
j
++) {if(
 A 
.
 val
[
i
][
j
]!=
B
.
 val
[
i
][
j
]) goto 
fin_eqiv 
; } 
fin_eqiv 
:if (
i
==
n
) returntrue; else return false;  }; /*list lineare de configs*//*bool copylist(list *A,list **B){list *p=A,*l=NULL,*m=NULL;while(p!=NULL) { m=l;l=new list;l->X=p->X;l->suiv=NULL;if (m==NULL) *B=l;else m->suiv=l;p=p->suiv;}
 
return true;}*/
list
 *
inverser
(
list
 *
 A 
){
list
 *
 p
=
 A 
,*
l
=
 NULL
,*
B
=
 NULL
;while(
 p
!=
 NULL
) { 
l
=
B
; 
B
=new 
list
; 
B
->
X
=
 p
->
X
; 
B
->
suiv 
=
l
; 
 p
=
 p
->
 prev 
; }return 
B
;}bool 
detruire
(
list
 **
 A 
){
list
 *
 p
=
 NULL
;while (*
 A 
!=
 NULL
){
 p
=*
 A 
;*
 A 
=(**
 A 
).
suiv 
;delete 
 p
;}return true; }bool 
inserer
(
list
 **
Z
,
config
 
X0
,char 
n
,char 
 m 
){ 
list
 *
 p
=new 
list
; 
 p
->
X
=
X0
; 
 p
->
suiv 
=*
Z
; *
Z
=
 p
; return true;  }bool 
search
(
list
 *
Z
,
config
 
X0
,char 
n
,char 
 m 
) { 
list
 *
 p
=
Z
; //float hX0=Hash(X0,n,m); bool 
trouv 
=false; while (
 p
!=
 NULL
 && !
trouv 
) {/*if (p->hash==hX0)*/ if (
eqiv 
(
 p
->
X
,
X0
,
n
,
 m 
)) 
trouv 
=true;
 p
=
 p
->
suiv 
;} return 
trouv 
;} ;
 bi
 
SchConf
(
config
 
 A 
,char 
n
,char 
 m 
,char 
 val
) {char 
i
;char 
j
; for(
i
=0;
i
<
n
;
i
++) for(
j
=0;
j
<
 m 
;
j
++){ if (
 A 
.
 val
[
i
][
j
]==
 val
) goto 
fin
; } 
fin
: 
 bi
 
 b
; 
 b
.
x
=
i
; 
 b
.
y
=
j
; return 
 b
; }/*File avec priorite*/bool 
enfiler
(
file
 **
F
,
list
 *
l
,char 
n
,char 
 m 
){ 
file
 *
 p
=*
F
,*
=
 NULL
;

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->