unitsize(1cm); real marge=1mm; pair z1=(0,0), z2=(4,0), z3=(4,-3), z4=(0,-3); transform r=scale(.8); object etat_1=draw("1",ellipse,z1,marge), etat_2=draw("2",ellipse,z2,marge), etat_3=draw("3",ellipse,z3,marge), etat_4=draw("4",ellipse,z4,marge); add(new void(picture pic, transform t) { draw(pic,r*Label("3/5"),point(etat_1,N,t){N}..{E}point(etat_1,W,t),Arrow); draw(pic,r*Label("2/5"),point(etat_2,E,t){E}..{S}point(etat_2,N,t),Arrow); draw(pic,r*Label("1/5"),point(etat_3,S,t){S}..{W}point(etat_3,E,t),Arrow); draw(pic,r*Label("1"),point(etat_4,W,t){W}..{N}point(etat_4,S,t),Arrow); draw(pic,r*Label("3/10"),point(etat_1,E,t){NE}..point(etat_2,W,t),Arrow); draw(pic,r*Label("1/10"),point(etat_2,W,t){SW}..point(etat_1,E,t),Arrow); draw(pic,r*Label("1/2"),point(etat_2,S,t){S}..point(etat_3,N,t),Arrow); draw(pic,r*Label("1/20"),point(etat_3,W,t){W}..point(etat_4,E,t),Arrow); draw(pic,r*Label("1/10"),point(etat_1,S,t){S}..point(etat_4,N,t),Arrow); draw(pic,r*Label("3/4"),point(etat_3,NW,t){NW}..point(etat_1,SE,t),Arrow); });