【任務(wù)分配】基于粒子群算法實現(xiàn)無人車任務(wù)分配問題附matlab代碼
1 簡介
作為多無人車系統(tǒng)應(yīng)用的一項關(guān)鍵技術(shù),任務(wù)分配是一個多維互異離散變量的優(yōu)化問題.采用混合整數(shù)線性規(guī)劃方法構(gòu)造優(yōu)化函數(shù),并利用群智算法中的粒子群算法來求最優(yōu)解,這樣可以解決多無人車的任務(wù)分配問題.針對互異性要求進(jìn)行必要的算法改進(jìn).數(shù)值仿真實驗表明,該粒子群算法可以迅速找到優(yōu)化函數(shù)的最優(yōu)解,從而高效地實現(xiàn)多無人車的任務(wù)分配.
2 部分代碼
function [c]=factor_C(d)
if d<=1
? ?c=1;
elseif d<333
? ?c=1;
elseif d<334
? ?c=1; ? ?
elseif d<335
? ?c=1; ? ? ?
elseif d<336
? ?c=1;
elseif d<337
? ?c=1; ? ?
elseif d<338
? ?c=1;
elseif d<339
? ?c=1; ? ?
elseif d<340
? ?c=1; ? ? ?
elseif d<341
? ?c=1;
elseif d<342
? ?c=1; ? ? ?
elseif d<343
? ?c=1;
elseif d<344
? ?c=1; ? ?
elseif d<345
? ?c=1; ? ? ?
elseif d<346
? ?c=1;
elseif d<347
? ?c=1; ? ? ?
elseif d<348
? ?c=1;
elseif d<349
? ?c=1; ? ?
elseif d<350
? ?c=1; ? ? ?
elseif d<351
? ?c=1;
elseif d<352
? ?c=1; ? ? ?
elseif d<353
? ?c=1;
elseif d<354
? ?c=1; ? ?
elseif d<355
? ?c=1; ? ? ?
elseif d<356
? ?c=1;
elseif d<357
? ?c=1; ? ? ?
elseif d<358
? ?c=1;
elseif d<359
? ?c=1; ? ?
elseif d<360
? ?c=1; ? ? ?
elseif d<361
? ?c=1;
elseif d<362
? ?c=1; ? ? ?
elseif d<363
? ?c=1;
elseif d<364
? ?c=1; ? ?
elseif d<365
? ?c=1; ? ? ?
elseif d<366
? ?c=1;
elseif d<367
? ?c=1; ? ? ?
elseif d<368
? ?c=1;
elseif d<369
? ?c=1; ? ?
elseif d<370
? ?c=1; ? ? ?
elseif d<371
? ?c=1;
elseif d<372
? ?c=1; ? ? ?
elseif d<373
? ?c=1;
elseif d<374
? ?c=1; ? ?
elseif d<375
? ?c=1; ? ? ?
elseif d<376
? ?c=1;
elseif d<377
? ?c=1; ? ? ?
elseif d<378
? ?c=1;
elseif d<379
? ?c=1; ? ?
elseif d<380
? ?c=1; ? ? ?
elseif d<381
? ?c=1;
elseif d<382
? ?c=1; ? ? ?
elseif d<383
? ?c=1;
elseif d<384
? ?c=1; ? ?
elseif d<385
? ?c=1; ? ? ?
elseif d<386
? ?c=1;
elseif d<387
? ?c=1; ? ? ?
elseif d<388
? ?c=1;
elseif d<389
? ?c=1; ? ?
elseif d<390
? ?c=1; ? ? ?
elseif d<391
? ?c=1;
elseif d<392
? ?c=1; ? ? ?
elseif d<393
? ?c=1;
elseif d<394
? ?c=1; ? ?
elseif d<395
? ?c=1; ? ? ?
elseif d<396
? ?c=1;
elseif d<397
? ?c=1; ? ? ?
elseif d<398
? ?c=1;
elseif d<399
? ?c=1; ? ?
elseif d<400
? ?c=1; ? ? ?
elseif d<401
? ?c=1;
elseif d<402
? ?c=1; ? ? ?
elseif d<403
? ?c=1;
elseif d<404
? ?c=1; ? ?
elseif d<405
? ?c=1; ? ? ?
elseif d<406
? ?c=1;
elseif d<407
? ?c=1; ? ? ?
elseif d<408
? ?c=1;
elseif d<409
? ?c=1; ? ?
elseif d<410
? ?c=1; ? ? ?
elseif d<411
? ?c=1;
elseif d<412
? ?c=1; ? ? ?
elseif d<413
? ?c=1;
elseif d<414
? ?c=1; ? ?
elseif d<415
? ?c=1; ? ? ?
elseif d<416
? ?c=1;
elseif d<417
? ?c=1; ? ? ?
elseif d<418
? ?c=1;
elseif d<419
? ?c=1; ? ?
elseif d<420
? ?c=1; ? ? ?
elseif d<421
? ?c=1;
elseif d<422
? ?c=1; ? ? ?
elseif d<423
? ?c=1;
elseif d<424
? ?c=1; ? ?
elseif d<425
? ?c=1; ? ? ?
elseif d<426
? ?c=1;
elseif d<427
? ?c=1; ? ?
elseif d<428
? ?c=1;
elseif d<429
? ?c=1;
elseif d<430
? ?c=1; ? ? ?
elseif d<431
? ?c=1;
elseif d<432
? ?c=1; ? ? ?
elseif d<433
? ?c=1;
elseif d<434
? ?c=1; ?
elseif d<435
? ?c=1; ? ? ?
elseif d<436
? ?c=1;
elseif d<437
? ?c=1; ? ? ?
elseif d<438
? ?c=1;
elseif d<439
? ?c=1; ? ?
elseif d<440
? ?c=1; ? ? ?
elseif d<441
? ?c=1;
elseif d<442
? ?c=1; ? ? ?
elseif d<443
? ?c=1;
elseif d<444
? ?c=1; ? ?
elseif d<445
? ?c=1; ? ? ?
elseif d<446
? ?c=1;
elseif d<447
? ?c=1; ? ? ?
elseif d<448
? ?c=1;
elseif d<449
? ?c=1; ? ?
elseif d<450
? ?c=1; ? ? ?
elseif d<451
? ?c=1;
elseif d<452
? ?c=1; ? ? ?
elseif d<453
? ?c=1;
elseif d<454
? ?c=1; ? ?
elseif d<455
? ?c=1; ? ? ?
elseif d<456
? ?c=1;
elseif d<457
? ?c=1; ? ? ?
elseif d<458
? ?c=1;
elseif d<459
? ?c=1; ? ?
elseif d<460
? ?c=1; ? ? ?
elseif d<461
? ?c=1;
elseif d<462
? ?c=1; ? ? ?
elseif d<463
? ?c=1;
elseif d<464
? ?c=1; ? ?
elseif d<465
? ?c=1; ? ? ?
elseif d<466
? ?c=1;
elseif d<467
? ?c=1; ? ? ?
elseif d<468
? ?c=1;
elseif d<469
? ?c=1; ? ?
elseif d<470
? ?c=1; ? ? ?
elseif d<471
? ?c=1;
elseif d<472
? ?c=1; ? ? ?
elseif d<473
? ?c=1;
elseif d<474
? ?c=1; ? ?
elseif d<475
? ?c=1; ? ? ?
elseif d<476
? ?c=1;
elseif d<477
? ?c=1; ? ? ?
elseif d<478
? ?c=1;
elseif d<479
? ?c=1; ? ?
elseif d<480
? ?c=1; ? ? ?
elseif d<481
? ?c=1;
elseif d<482
? ?c=1; ? ? ?
elseif d<483
? ?c=1;
elseif d<484
? ?c=1; ? ?
elseif d<485
? ?c=1; ? ? ?
elseif d<486
? ?c=1;
elseif d<487
? ?c=1; ? ? ?
elseif d<488
? ?c=1;
elseif d<489
? ?c=1; ? ?
elseif d<490
? ?c=1; ? ? ?
elseif d<491
? ?c=1;
elseif d<492
? ?c=1; ? ? ?
elseif d<493
? ?c=1;
elseif d<494
? ?c=1; ? ?
elseif d<495
? ?c=1; ? ? ?
elseif d<496
? ?c=1;
elseif d<497
? ?c=1; ? ? ?
elseif d<498
? ?c=1;
elseif d<499
? ?c=1; ? ?
elseif d<500
? ?c=1; ? ? ?
elseif d<501
? ?c=1;
elseif d<502
? ?c=1; ? ? ?
elseif d<503
? ?c=1;
elseif d<504
? ?c=1; ? ?
elseif d<505
? ?c=1; ? ? ?
elseif d<506
? ?c=1;
elseif d<507
? ?c=1; ? ? ?
elseif d<508
? ?c=1;
elseif d<509
? ?c=1; ? ?
elseif d<510
? ?c=1; ? ? ?
elseif d<511
? ?c=1;
elseif d<512
? ?c=1; ? ? ?
elseif d<513
? ?c=1;
elseif d<514
? ?c=1; ? ?
elseif d<515
? ?c=1; ? ? ?
elseif d<516
? ?c=1;
elseif d<517
? ?c=1; ? ? ?
elseif d<518
? ?c=1;
elseif d<519
? ?c=1; ? ?
elseif d<520
? ?c=1; ? ? ?
elseif d<521
? ?c=1;
elseif d<522
? ?c=1; ? ? ?
elseif d<523
? ?c=1;
elseif d<524
? ?c=1; ? ?
elseif d<525
? ?c=1; ? ? ?
elseif d<526
? ?c=1;
elseif d<527
? ?c=1; ? ? ?
elseif d<528
? ?c=1;
elseif d<529
? ?c=1; ? ?
elseif d<530
? ?c=1; ? ? ?
elseif d<531
? ?c=1;
elseif d<532
? ?c=1; ? ? ?
elseif d<533
? ?c=1;
elseif d<534
? ?c=1; ? ?
elseif d<535
? ?c=1; ? ? ?
elseif d<536
? ?c=1;
elseif d<537
? ?c=1; ? ? ?
elseif d<538
? ?c=1;
elseif d<539
? ?c=1; ? ?
elseif d<540
? ?c=1; ? ? ?
elseif d<541
? ?c=1;
elseif d<542
? ?c=1; ? ? ?
elseif d<543
? ?c=1;
elseif d<544
? ?c=1; ? ?
elseif d<545
? ?c=1; ? ? ?
elseif d<546
? ?c=1;
elseif d<547
? ?c=1; ? ? ?
elseif d<548
? ?c=1;
elseif d<549
? ?c=1; ?
elseif d<550
? ?c=1; ? ? ?
elseif d<551
? ?c=1;
elseif d<552
? ?c=1; ? ? ?
elseif d<553
? ?c=1;
elseif d<554
? ?c=1; ? ?
elseif d<555
? ?c=1; ? ? ?
elseif d<556
? ?c=1;
elseif d<557
? ?c=1; ? ? ?
elseif d<558
? ?c=1;
elseif d<559
? ?c=1; ? ?
elseif d<560
? ?c=1; ? ? ?
elseif d<561
? ?c=1;
elseif d<562
? ?c=1; ? ? ?
elseif d<563
? ?c=1;
elseif d<564
? ?c=1; ? ?
elseif d<565
? ?c=1; ? ? ?
elseif d<566
? ?c=1;
elseif d<567
? ?c=1; ? ? ?
elseif d<568
? ?c=1;
elseif d<569
? ?c=1; ? ?
elseif d<570
? ?c=1; ? ? ?
elseif d<571
? ?c=1;
elseif d<572
? ?c=1; ? ? ?
elseif d<573
? ?c=1;
elseif d<574
? ?c=1; ? ?
elseif d<575
? ?c=1; ? ? ?
elseif d<576
? ?c=1;
elseif d<577
? ?c=1; ? ? ?
elseif d<578
? ?c=1;
elseif d<579
? ?c=1; ? ?
elseif d<580
? ?c=1; ? ? ?
elseif d<581
? ?c=1;
elseif d<582
? ?c=1; ? ? ?
elseif d<583
? ?c=1;
elseif d<584
? ?c=1; ? ?
elseif d<585
? ?c=1; ? ? ?
elseif d<586
? ?c=1;
elseif d<587
? ?c=1; ? ? ?
elseif d<588
? ?c=1;
elseif d<589
? ?c=1; ? ?
elseif d<590
? ?c=1; ? ? ?
elseif d<591
? ?c=1;
elseif d<592
? ?c=1; ? ? ?
elseif d<593
? ?c=1;
elseif d<594
? ?c=1; ? ?
elseif d<595
? ?c=1; ? ? ?
elseif d<596
? ?c=1;
elseif d<597
? ?c=1; ? ? ?
elseif d<598
? ?c=1;
elseif d<599
? ?c=1; ? ?
elseif d<600
? ?c=1;
elseif d<601
? ?c=1;
elseif d<602
? ?c=1; ? ? ?
elseif d<603
? ?c=1;
elseif d<604
? ?c=1; ? ?
elseif d<605
? ?c=1; ? ? ?
elseif d<606
? ?c=1;
elseif d<607
? ?c=1; ? ? ?
elseif d<608
? ?c=1;
elseif d<609
? ?c=1; ? ?
elseif d<610
? ?c=1; ? ? ?
elseif d<611
? ?c=1;
elseif d<612
? ?c=1; ? ? ?
elseif d<613
? ?c=1;
elseif d<614
? ?c=1; ? ?
elseif d<615
? ?c=1; ? ? ?
elseif d<616
? ?c=1;
elseif d<617
? ?c=1; ? ? ?
elseif d<618
? ?c=1;
elseif d<619
? ?c=1; ? ?
elseif d<620
? ?c=1;
elseif d<621
? ?c=1;
elseif d<622
? ?c=1; ? ? ?
elseif d<623
? ?c=1;
elseif d<624
? ?c=1; ? ?
elseif d<625
? ?c=1; ? ? ?
elseif d<626
? ?c=1;
elseif d<627
? ?c=1; ? ? ?
elseif d<628
? ?c=1;
elseif d<629
? ?c=1; ? ?
elseif d<630
? ?c=1; ? ? ?
elseif d<631
? ?c=1;
elseif d<632
? ?c=1; ? ? ?
elseif d<633
? ?c=1;
elseif d<634
? ?c=1; ? ?
elseif d<635
? ?c=1; ? ? ?
elseif d<636
? ?c=1;
elseif d<637
? ?c=1; ? ? ?
elseif d<638
? ?c=1;
elseif d<639
? ?c=1; ? ?
elseif d<640
? ?c=1;
elseif d<633
? ?c=1;
elseif d<634
? ?c=1; ? ?
elseif d<635
? ?c=1; ? ? ?
elseif d<636
? ?c=1;
elseif d<637
? ?c=1; ? ? ?
elseif d<638
? ?c=1;
elseif d<639
? ?c=1; ? ?
elseif d<640
? ?c=1;
elseif d<641
? ?c=1;
elseif d<642
? ?c=1; ? ?
elseif d<643
? ?c=1; ? ? ?
elseif d<644
? ?c=1;
elseif d<645
? ?c=1; ? ? ?
elseif d<646
? ?c=1;
elseif d<647
? ?c=1; ? ?
elseif d<648
? ?c=1;
elseif d<649
? ?c=1;
elseif d<650
? ?c=1; ? ?
elseif d<651
? ?c=1; ? ? ?
elseif d<652
? ?c=1;
elseif d<653
? ?c=1; ? ? ?
elseif d<654
? ?c=1;
elseif d<655
? ?c=1; ? ?
elseif d<656
? ?c=1;
elseif d<657
? ?c=1;
elseif d<658
? ?c=1; ? ?
elseif d<659
? ?c=1; ? ? ?
elseif d<660
? ?c=1;
elseif d<661
? ?c=1; ? ? ?
elseif d<662
? ?c=1;
elseif d<663
? ?c=1; ? ?
elseif d<664
? ?c=1;
elseif d<665
? ?c=1;
elseif d<666
? ?c=1; ? ? ?
elseif d<667
? ?c=1;
elseif d<668
? ?c=1; ? ?
elseif d<669
? ?c=1;
elseif d<670
? ?c=1;
elseif d<671
? ?c=1; ? ? ?
elseif d<672
? ?c=1;
elseif d<673
? ?c=1; ? ?
elseif d<674
? ?c=1;
elseif d<675
? ?c=1;
elseif d<676
? ?c=1; ? ? ?
elseif d<677
? ?c=1;
elseif d<678
? ?c=1; ? ?
elseif d<679
? ?c=1;
elseif d<680
? ?c=1;
elseif d<681
? ?c=1; ? ? ?
elseif d<682
? ?c=1;
elseif d<683
? ?c=1; ? ?
elseif d<684
? ?c=1;
elseif d<685
? ?c=1;
elseif d<686
? ?c=1; ? ? ?
elseif d<687
? ?c=1;
elseif d<688
? ?c=1; ? ?
elseif d<689
? ?c=1;
elseif d<690
? ?c=1;
elseif d<691
? ?c=1; ? ?
elseif d<692
? ?c=1;
elseif d<693
? ?c=1;
elseif d<694
? ?c=1; ? ? ?
elseif d<695
? ?c=1;
elseif d<696
? ?c=1; ? ?
elseif d<697
? ?c=1;
elseif d<698
? ?c=1;
elseif d<699
? ?c=1; ? ?
elseif d<700
? ?c=1;
elseif d<701
? ?c=1;
elseif d<702
? ?c=1; ? ? ?
elseif d<703
? ?c=1;
elseif d<704
? ?c=1; ? ?
elseif d<705
? ?c=1;
end ? ?
end
3 仿真結(jié)果


4 參考文獻(xiàn)
[1]李煒, 張偉. 基于粒子群算法的多無人機任務(wù)分配方法[J]. 控制與決策, 2010, 25(9):1359-1363.
博主簡介:擅長智能優(yōu)化算法、神經(jīng)網(wǎng)絡(luò)預(yù)測、信號處理、元胞自動機、圖像處理、路徑規(guī)劃、無人機等多種領(lǐng)域的Matlab仿真,相關(guān)matlab代碼問題可私信交流。
部分理論引用網(wǎng)絡(luò)文獻(xiàn),若有侵權(quán)聯(lián)系博主刪除。
