@@ -29,8 +29,9 @@ public Form1()
29
29
private void Form1_Load ( object sender , EventArgs e )
30
30
31
31
{
32
- // TODO: This line of code loads data into the '_GA_ARP_3DataSet10.Müsteriler' table. You can move, or remove it, as needed.
33
- this . müsterilerTableAdapter2 . Fill ( this . _GA_ARP_3DataSet10 . Müsteriler ) ;
32
+ // TODO: This line of code loads data into the '_GA_ARP_3DataSet2.Müsteriler' table. You can move, or remove it, as needed.
33
+ this . müsterilerTableAdapter3 . Fill ( this . _GA_ARP_3DataSet2 . Müsteriler ) ;
34
+
34
35
35
36
baglanti = new SqlConnection ( "Data Source = BASRI\\ BASRI; Initial Catalog = GA-ARP-3; Integrated Security = True" ) ;
36
37
da = new SqlDataAdapter ( "Select *From Müsteriler order by Acılar" , baglanti ) ;
@@ -46,19 +47,20 @@ private void Form1_Load(object sender, EventArgs e)
46
47
baglanti . Open ( ) ;
47
48
komut = new SqlCommand ( sql , baglanti ) ;
48
49
SqlDataReader dr = komut . ExecuteReader ( ) ;
49
- while ( dr . Read ( ) )
50
+ while ( dr . Read ( ) )
50
51
{
51
52
Musteri depo = new Musteri ( ) ;
52
53
depo . ID = Convert . ToInt32 ( dr [ 0 ] ) ;
53
54
depo . X = Convert . ToDouble ( dr [ 1 ] ) ;
54
55
depo . Y = Convert . ToDouble ( dr [ 2 ] ) ;
55
56
depo . Talep = Convert . ToInt32 ( dr [ 3 ] ) ;
56
57
depo . Acılar = Convert . ToDouble ( dr [ 4 ] ) ;
58
+ depo . Gidildimi = Convert . ToBoolean ( dr [ 5 ] ) ;
57
59
MusteriListesi . Add ( depo ) ;
58
60
}
59
61
baglanti . Close ( ) ;
60
62
61
- string sql1 = "SELECT*FROM Arac" ;
63
+ string sql1 = "SELECT*FROM Arac " ;
62
64
baglanti . Open ( ) ;
63
65
komut = new SqlCommand ( sql1 , baglanti ) ;
64
66
SqlDataReader dr1 = komut . ExecuteReader ( ) ;
@@ -67,11 +69,11 @@ private void Form1_Load(object sender, EventArgs e)
67
69
Araclar arac = new Araclar ( ) ;
68
70
arac . ID = Convert . ToInt32 ( dr1 [ 0 ] ) ;
69
71
arac . Kapasite = Convert . ToInt32 ( dr1 [ 1 ] ) ;
70
- arac . Kullanildimi = Convert . ToBoolean ( dr1 [ 2 ] ) ; ;
72
+ arac . Kullanildimi = Convert . ToBoolean ( dr1 [ 2 ] ) ; ;
71
73
Araclist . Add ( arac ) ;
72
74
}
73
75
baglanti . Close ( ) ;
74
- // listBox1.Items.Add(Convert.ToString(Araclist));
76
+ // listBox1.Items.Add(Convert.ToString(Araclist));
75
77
/* SqlCommand komut = new SqlCommand("Select*From Müsteriler order by Acılar", baglanti);
76
78
try
77
79
{
@@ -100,23 +102,20 @@ private void Form1_Load(object sender, EventArgs e)
100
102
finally { baglanti.Close(); }*/
101
103
102
104
int MüşteriSayısı = MusteriGridWiew . RowCount - 1 ;
103
- int [ ] Çözüm = new int [ MüşteriSayısı ] ;
104
- int [ ] EnİyiÇözüm = new int [ MüşteriSayısı ] ;
105
+
105
106
int i , j ;
106
107
double [ , ] Uzaklık = new double [ MüşteriSayısı , MüşteriSayısı ] ;
107
- double [ ] PolarKoordinat = new double [ MüşteriSayısı ] ;
108
- double [ ] X = new double [ MüşteriSayısı - 1 ] ;
109
- double [ ] Y = new double [ MüşteriSayısı - 1 ] ;
110
108
111
-
109
+
110
+
112
111
for ( i = 0 ; i < MüşteriSayısı ; i ++ )
113
112
for ( j = 0 ; j < MüşteriSayısı ; j ++ )
114
113
{
115
114
Uzaklık [ i , j ] = Math . Pow ( Convert . ToDouble ( MusteriGridWiew . Rows [ i ] . Cells [ 1 ] . Value ) - Convert . ToDouble ( MusteriGridWiew . Rows [ j ] . Cells [ 1 ] . Value ) , 2 ) ;
116
115
Uzaklık [ i , j ] += Math . Pow ( Convert . ToDouble ( MusteriGridWiew . Rows [ i ] . Cells [ 2 ] . Value ) - Convert . ToDouble ( MusteriGridWiew . Rows [ j ] . Cells [ 2 ] . Value ) , 2 ) ;
117
116
Uzaklık [ i , j ] = Math . Sqrt ( Uzaklık [ i , j ] ) ;
118
117
Uzaklık [ i , j ] = Math . Ceiling ( Uzaklık [ i , j ] ) ;
119
- // listBox1.Items.Add(Uzaklık[i, j]);
118
+ // listBox1.Items.Add(Uzaklık[i, j]);
120
119
}
121
120
/* for (i = 1; i < MüşteriSayısı; i++)
122
121
{
@@ -131,77 +130,92 @@ private void Form1_Load(object sender, EventArgs e)
131
130
132
131
private void button1_Click ( object sender , EventArgs e )
133
132
{
134
- string Guzergah = Convert . ToString ( MusteriListesi [ 0 ] . ID ) ;
133
+
135
134
int MüsteriSayisi = MusteriListesi . Count ;
136
135
int [ ] Çözüm = new int [ MüsteriSayisi ] ;
137
136
int [ ] EnİyiÇözüm = new int [ MüsteriSayisi ] ;
138
137
double [ , ] Uzaklık = new double [ MüsteriSayisi , MüsteriSayisi ] ;
139
- int i ;
138
+ int i , j ;
140
139
double Sonuç , EnİyiSonuç ;
141
- for ( i = 0 ; i < MüsteriSayisi ; i ++ )
140
+ for ( i = 0 ; i < MüsteriSayisi ; i ++ )
141
+ for ( j = 0 ; j < MüsteriSayisi ; j ++ )
142
+ {
143
+ Uzaklık [ i , j ] = Math . Pow ( Convert . ToDouble ( MusteriGridWiew . Rows [ i ] . Cells [ 1 ] . Value ) - Convert . ToDouble ( MusteriGridWiew . Rows [ j ] . Cells [ 1 ] . Value ) , 2 ) ;
144
+ Uzaklık [ i , j ] += Math . Pow ( Convert . ToDouble ( MusteriGridWiew . Rows [ i ] . Cells [ 2 ] . Value ) - Convert . ToDouble ( MusteriGridWiew . Rows [ j ] . Cells [ 2 ] . Value ) , 2 ) ;
145
+ Uzaklık [ i , j ] = Math . Sqrt ( Uzaklık [ i , j ] ) ;
146
+ Uzaklık [ i , j ] = Math . Ceiling ( Uzaklık [ i , j ] ) ;
147
+ // listBox1.Items.Add(Uzaklık[i, j]);
148
+ }
149
+ for ( i = 0 ; i < MüsteriSayisi ; i ++ )
142
150
{
143
151
Çözüm [ i ] = i ;
144
152
}
145
153
Sonuç = Geography . AmaçFonkHesapla ( MüsteriSayisi , Çözüm , Uzaklık ) ;
146
154
Array . Copy ( Çözüm , EnİyiÇözüm , Çözüm . Length ) ;
147
155
EnİyiSonuç = Sonuç ;
148
- for ( i = 0 ; i < MüsteriSayisi - 1 ; i ++ )
149
- {
150
- List < Musteri > bireyinMusterileri = MusteriListesi . CloneList ( ) . ToList ( ) ;
151
- List < Araclar > bireyinAraclari = Araclist . CloneList ( ) . ToList ( ) ;
152
- int SuankiMusteri = Convert . ToInt32 ( bireyinMusterileri [ i ] . ID ) ;
153
- int SıradakiMüsteri = Convert . ToInt32 ( bireyinMusterileri [ i + 1 ] . ID ) ;
154
- for ( int j = 0 ; j < Araclist . Count ; j ++ )
155
- {
156
- for ( int a = 0 ; a < bireyinMusterileri . Count ; a ++ )
157
- {
158
- if ( bireyinMusterileri [ a ] . Talep <= bireyinAraclari [ j ] . Kapasite && bireyinAraclari [ j ] . Kullanildimi == false )
159
- {
160
- int SuankiTalep = bireyinMusterileri [ a ] . Talep ;
161
- SuankiMusteri = bireyinMusterileri [ a ] . ID ;
162
- int Kapasite = bireyinAraclari [ j ] . Kapasite - bireyinMusterileri [ a ] . Talep ;
163
- SıradakiMüsteri = bireyinMusterileri [ a + 1 ] . ID ;
164
- Guzergah += "*" + Convert . ToString ( SıradakiMüsteri ) ;
165
- if ( bireyinMusterileri [ a ] . ID != 0 )
166
- {
167
- bireyinMusterileri . RemoveAt ( a ) ;
168
- }
169
-
170
- if ( Kapasite < bireyinMusterileri [ a + 1 ] . Talep )
171
- {
172
- SıradakiMüsteri = bireyinMusterileri [ 0 ] . ID ;
173
- bireyinAraclari [ j ] . Kullanildimi = true ;
174
- Guzergah += "*" + Convert . ToString ( SıradakiMüsteri ) + "---" ;
175
- }
176
- else
177
- {
178
- SıradakiMüsteri = bireyinMusterileri [ a + 1 ] . ID ;
179
- Guzergah += "*" + Convert . ToString ( SıradakiMüsteri ) ;
180
- }
156
+ int itersay = 200 ;
157
+ int Mus1 ;
158
+ // for(i=0;i<itersay ;i++)
159
+ // {
181
160
182
- }
183
161
184
- else
162
+
163
+ List < Araclar > bireyinAraclari = Araclist . CloneList ( ) . ToList ( ) ;
164
+ List < Musteri > bireyinMusterileri = MusteriListesi . CloneList ( ) . ToList ( ) ;
165
+ int a = 0 ;
166
+ string Guzergah = " " ;
167
+ for ( int b = 0 ; b < bireyinAraclari . Count ; b ++ )
168
+ {
169
+
170
+ for ( a = a ; a < MüsteriSayisi ; a ++ )
171
+ {
172
+
173
+ try
174
+ {
175
+ if ( bireyinAraclari [ b ] . Kullanildimi == false && bireyinMusterileri [ a ] . Talep <= bireyinAraclari [ b ] . Kapasite && bireyinMusterileri [ a ] . Gidildimi == false )
176
+ {
177
+ Mus1 = bireyinMusterileri [ a ] . ID ;
178
+ // Mus2 = bireyinMusterileri[a + 1].ID;
179
+ bireyinAraclari [ b ] . Kapasite = bireyinAraclari [ b ] . Kapasite - bireyinMusterileri [ a ] . Talep ;
180
+ Guzergah += "*" + Convert . ToString ( Mus1 ) ;
181
+ bireyinMusterileri [ a ] . Gidildimi = true ;
182
+
183
+ }
184
+ else
185
185
{
186
- SıradakiMüsteri = bireyinMusterileri [ 0 ] . ID ;
187
- bireyinAraclari [ j ] . Kullanildimi = true ;
186
+
187
+ Mus1 = bireyinMusterileri [ a ] . ID ;
188
+ bireyinAraclari [ b ] . Kullanildimi = true ;
189
+ bireyinAraclari [ b ] . Kapasite = bireyinAraclari [ b ] . Kapasite - bireyinMusterileri [ a ] . Talep ;
190
+ Guzergah += "*" + Convert . ToString ( Mus1 ) ;
191
+ Guzergah += "*0 *0" ;
192
+ listBox1 . Items . Add ( String . Format ( "{0}" , Guzergah ) ) ;
193
+ break ;
194
+
188
195
}
196
+
189
197
}
198
+ catch ( Exception )
199
+ {
200
+
201
+ }
202
+
203
+
190
204
}
191
- int Tmp = Çözüm [ SuankiMusteri ] ;
192
- Çözüm [ SuankiMusteri ] = Çözüm [ SıradakiMüsteri ] ;
193
- Çözüm [ SıradakiMüsteri ] = Tmp ;
194
- Sonuç = Geography . AmaçFonkHesapla ( MüsteriSayisi , Çözüm , Uzaklık ) ;
195
- if ( Sonuç < EnİyiSonuç )
196
- {
197
- Array . Copy ( Çözüm , EnİyiÇözüm , Çözüm . Length ) ;
198
- EnİyiSonuç = Sonuç ;
199
- }
200
- }
201
- for ( i = 0 ; i < EnİyiÇözüm . Length ; i ++ )
202
- {
203
- listBox1 . Items . Add ( String . Format ( "{0}\t " , Guzergah ) ) ;
205
+
206
+ /* Sonuç = Geography.AmaçFonkHesapla(MüsteriSayisi, Çözüm, Uzaklık);
207
+ if (Sonuç < EnİyiSonuç)
208
+ {
209
+ Array.Copy(Çözüm, EnİyiÇözüm, Çözüm.Length);
210
+ EnİyiSonuç = Sonuç;
211
+ }
212
+ for (i = 0; i < EnİyiÇözüm.Length; i++)
213
+ {
214
+
215
+ }*/
204
216
}
217
+
218
+
205
219
}
206
220
}
207
221
internal static class Extensions
0 commit comments