Applied Intelligence

, Volume 49, Issue 3, pp 950–962 | Cite as

An improved firework algorithm for hardware/software partitioning

  • Tao Zhang
  • Qianyu Yue
  • Xin ZhaoEmail author
  • Ganjun Liu


Hardware/software partitioning is a crucial step in the co-design of embedded system. It can not only shorten the R&D cycle, but also improve the performance of the product. In the co-design of embedded system, the hardware/software partitioning algorithm plays the most important role and many heuristic algorithms have been applied to solve this problem. In this paper, we introduce a novel swarm intelligence optimization algorithm called firework algorithm (FWA) and apply it to hardware/software partitioning. In order to improve the optimization accuracy and decrease the time consumed, operators in the conventional FWA are analyzed and their disadvantages are revealed. Then these operators are modified and an improved version of the conventional FWA called improved firework algorithm (IFWA) is proposed. To avoid overwhelming effects, the IFWA provides an innovative calculation of explosion amplitude and spark’s number by setting up dynamic boundaries. Besides, according to grouping and elite strategy, a new selection strategy is put forward to accelerate the convergence speed of the algorithm. Experiments on 8 instances of hardware/software partitioning are conducted in order to illustrate the performance of the proposed algorithm. Experimental results show that the IFWA outperforms significantly the FWA and several other heuristic algorithms in terms of optimization accuracy, time consumed, and convergence speed.


Firework algorithm Hardware/software partitioning Heuristic algorithm Swarm intelligence 


  1. 1.
    Youness H, Hussein A, Mahfoz A (2015) A new hardware/software partitioning technique. In: 2015 Tenth International conference on computer engineering systems (ICCES), pp 113–118Google Scholar
  2. 2.
    Wu J, Srikanthan T (2006) Low-complex dynamic programming algorithm for hardware/software partitioning. Inf Process Lett 98(2):41–46CrossRefzbMATHGoogle Scholar
  3. 3.
    Shrivastava A, Kumar H, Kapoor S, Kumar S, Balakrishnan M (2000) Optimal hardware/software partitioning for concurrent specification using dynamic programming. In: Proceedings of 13th international conference on VLSI design VLSI design 2000. wireless and digital imaging in the millennium, pp 110–113Google Scholar
  4. 4.
    Niemann R, Marwedel P (1997) An algorithm for hardware/software partitioning using mixed integer linear programming. Des Autom Embed Syst 2(2):165–193CrossRefGoogle Scholar
  5. 5.
    Chatha KS, Vemuri R (2002) Hardware-software partitioning and pipelined scheduling of transformative applications. IEEE Trans Very Large Scale Integr (VLSI) Syst 10(3):193–208CrossRefGoogle Scholar
  6. 6.
    Eimuri T, Salehi S (2010) Using dpso and b&b algorithms for hardware/software partitioning in co-design. In: 2010 Second international conference on computer research and development, pp 416–420Google Scholar
  7. 7.
    Jianliang Y, Manman P (2011) Hardware/software partitioning algorithm based on wavelet mutation binary particle swarm optimization. In: 2011 IEEE 3rd International conference on communication software and networks, pp 347–350Google Scholar
  8. 8.
    Luo L, He H, Liao C, Dou Q, Xu W (2010) Hardware/software partitioning for heterogeneous multicore soc using particle swarm optimization and immune clone (pso-ic) algorithm. In: The 2010 IEEE International conference on information and automation, pp 490–494Google Scholar
  9. 9.
    Jemai M, Dimassi S, Ouni B, Mtibaa A (2017) A meta-heuristic based on tabu search for hardware/software partitioning. Turkish J Electr Eng Comput Sci, 25(2)Google Scholar
  10. 10.
    Wu J, Pu W, Lam S-K, Srikanthan T (2013) Efficient heuristic and tabu search for hardware/software partitioning. J Supercomput 66(1):118–134CrossRefGoogle Scholar
  11. 11.
    Eles P, Peng Z, Kuchcinski K, Doboli A (1997) System level hardware/software partitioning based on simulated annealing and tabu search. Des Autom Embed Syst 2(1):5–32CrossRefGoogle Scholar
  12. 12.
    Dou S, Ding S, Zhang S, Zhu L (2010) Ga-based algorithm for hardware/software partitioning with resource contentions. In: 2010 2nd International conference on advanced computer control, vo 1, pp 68–72Google Scholar
  13. 13.
    Luo L, He H, Dou Q, Xu W (2012) Hardware/software partitioning for heterogeneous multicore soc using genetic algorithm. In: 2012 Second international conference on intelligent system design and engineering application, pp 1267–1270Google Scholar
  14. 14.
    Shi Y (2015) Brain storm optimization algorithm in objective space. In: 2015 IEEE Congress on evolutionary computation (CEC), pp 1227–1234Google Scholar
  15. 15.
    Cao J, Yin B, Lu X, Yu K, Chen X (2017) A modified artificial bee colony approach for the 0-1 knapsack problem. Applied IntelligenceGoogle Scholar
  16. 16.
    Zheng W, Tan Y, Meng L, Zhang H (2018) An improved moea/d design for many-objective optimization problems. Applied IntelligenceGoogle Scholar
  17. 17.
    Xu Z, Zhao X, Liu Y (2018) A multiobjective discrete bat algorithm for community detection in dynamic networks. Applied IntelligenceGoogle Scholar
  18. 18.
    Salama KM, Abdelbar AM (2017) Learning cluster-based classification systems with ant colony optimization algorithms. Swarm Intell 11(3):211–242CrossRefGoogle Scholar
  19. 19.
    Taghiyeh S, Xu J (2016) A new particle swarm optimization algorithm for noisy optimization problems. Swarm Intell 10(3):161–192CrossRefGoogle Scholar
  20. 20.
    Wang Y, Feng L, Zhu J (2018) Novel artificial bee colony based feature selection method for filtering redundant information. Appl Intell 48(4):868–885CrossRefGoogle Scholar
  21. 21.
    Ijaz S, Hashmi FA, Asghar S, Alam M (2018) Vector based genetic algorithm to optimize predictive analysis in network security. Appl Intell 48(5):1086–1096Google Scholar
  22. 22.
    Zhang T, Zhao X, An X, Quan H, Lei Z (2017) Using blind optimization algorithm for hardware/software partitioning. IEEE Access 5:1353–1362CrossRefGoogle Scholar
  23. 23.
    Zhao X, Zhang T, An X, Fan L (2018) An improved blind optimization algorithm for hardware/software partitioning and schedulingGoogle Scholar
  24. 24.
    Wu J, Srikanthan T, Chen G (2010) Algorithmic aspects of hardware/software partitioning: 1d search algorithms. IEEE Trans Comput 59(4):532–544MathSciNetCrossRefzbMATHGoogle Scholar
  25. 25.
    Yan X-H, He F-Z, Chen Y-L (2017) A novel hardware/software partitioning method based on position disturbed particle swarm optimization with invasive weed optimization. J Comput Sci Technol 32(2):340–355MathSciNetCrossRefGoogle Scholar
  26. 26.
    Tan Y, Yu C, Zheng S, Ke D (2013) Introduction to fireworks algorithm. Int J Swarm Intell Res 4 (4):39–70CrossRefGoogle Scholar
  27. 27.
    Janecek A, Tan Y (2011) Swarm intelligence for non-negative matrix factorization. Int J Swarm Intell Res 2(4):12–34CrossRefGoogle Scholar
  28. 28.
    Gao H, Diao M (2011) Cultural firework algorithm and its application for digital filters design. Int J Model Identif Control 14(4):324–331CrossRefGoogle Scholar
  29. 29.
    Zheng S, Tan Y (2013) A unified distance measure scheme for orientation coding in identification. In: 2013 IEEE Third international conference on information science and technology (ICIST), pp 979–985Google Scholar
  30. 30.
    He W, Mi G, Tan Y (2013) Parameter optimization of local-concentration model for spam detection by using fireworks algorithm. In: Tan Y, Shi Y, Mo H (eds) Advances in swarm intelligence. Springer, Berlin, pp 439–450Google Scholar
  31. 31.
    Liu Z, Feng Z, Ke L (2015) Fireworks algorithm for the multi-satellite control resource scheduling problem. In: 2015 IEEE Congress on evolutionary computation (CEC), pp 1280–1286Google Scholar
  32. 32.
    Bacanin N, Tuba M (2015) Fireworks algorithm applied to constrained portfolio optimization problem. In: 2015 IEEE Congress on evolutionary computation (CEC), pp 1242–1249Google Scholar
  33. 33.
    Gu J, Fu F, Qing Z (2018) Penalized estimation of directed acyclic graphs from discrete data. Statistics and ComputingGoogle Scholar
  34. 34.
    Baxter JSH, Rajchl M, Jonathan McLeod A, Yuan J, Peters TM (2017) Directed acyclic graph continuous max-flow image segmentation for unconstrained label orderings. Int J Comput Vis 123(3):415–434MathSciNetCrossRefGoogle Scholar
  35. 35.
    Azari E, Koc H (2015) Improving performance through path-based hardware/software partitioning. In: 2015 Fifth International conference on digital information processing and communications (ICDIPC), pp 54–59Google Scholar
  36. 36.
    Tan Y, Zhu Y (2010) Fireworks algorithm for optimization. In: Tan Y, Shi Y, Tan KC (eds) Advances in swarm intelligence. Springer, Berlin, pp 355–364Google Scholar
  37. 37.
    Zheng S, Janecek A, Tan Y (2013) Enhanced fireworks algorithm. In: 2013 IEEE Congress on evolutionary computation, pp 2069–2077Google Scholar
  38. 38.
    Zheng S, Janecek A, Li J, Tan Y (2014) Dynamic search in fireworks algorithm. In: 2014 IEEE Congress on evolutionary computation (CEC), pp 3222–3229Google Scholar
  39. 39.
    Li J, Zheng S, Tan Y (2014) Adaptive fireworks algorithm. In: 2014 IEEE Congress on evolutionary computation (CEC), pp 3214–3221Google Scholar
  40. 40.
    Yu JZ, Xu XL, Ling HF, Chen SY (2015) A hybrid fireworks optimization method with differential evolution operators. Neurocomputing 148:75–82CrossRefGoogle Scholar
  41. 41.
    Liu J, Zheng S, Tan Y (2013) The improvement on controlling exploration and exploitation of firework algorithm. In: Tan Y, Shi Y, Mo H (eds) Advances in swarm intelligence. Springer, Berlin, pp 11–23Google Scholar
  42. 42.
    Akay B, Karaboga D (2012) A modified artificial bee colony algorithm for real-parameter optimization. Inf Sci 192:120–142. Swarm Intelligence and Its ApplicationsCrossRefGoogle Scholar
  43. 43.
    Li T, Zhang ZJ (2016) Wang improvement of artificial fish swarm algorithm. Computer Technology and DevelopmentGoogle Scholar
  44. 44.
    Hou N, He F, Zhou Y, Chen Y, Yan X (2018) A parallel genetic algorithm with dispersion correction for hw/sw partitioning on multi-core cpu and many-core gpu. IEEE Access 6:883–898CrossRefGoogle Scholar
  45. 45.
    Wiangtong T, Cheung PYK, Luk W (2002) Comparing three heuristic search methods for functional partitioning in hardware/software codesign. Des Autom Embed Syst 6(4):425–449CrossRefzbMATHGoogle Scholar

Copyright information

© Springer Science+Business Media, LLC, part of Springer Nature 2018

Authors and Affiliations

  1. 1.School of Electrical and Information EngineeringTianjin UniversityTianjinChina
  2. 2.Texas Instruments DSP Joint LabTianjin UniversityTianjinChina

Personalised recommendations