Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

tomaskender/approx

Repository files navigation

Approx

About

This project deals with approximations of arithmetic circuits using Cartesian Genetic Programming. We aim to reduce the complexity of a circuit while preserving certain allowed error rates. For circuit simulation we use the ArithsGen package. Optimizer accept specifically 8-bit multipliers.

Setup

Pull ArithsGen

git submodule init
git submodule update

Launch solver for u_arrmul8.cgp output with max allowed error 2%.

python3 main.py ariths-gen/generated_circuits/cgp_circuits/flat/u_arrmul8.cgp --error 2

Example

python .\main.py ariths-gen/generated_circuits/cgp_circuits/flat/u_arrmul8.cgp --error 2

Starting generation 1
Current gate count is 320
Errors: [mean] 0.000, [max] 0, [rel mean] 0.000
Starting generation 2
Current gate count is 306
Errors: [mean] 0.002, [max] 260, [rel mean] 2.128
...
Starting generation 18
Current gate count is 253
Errors: [mean] 0.018, [max] 3512, [rel mean] 22.048
Starting generation 19
Current gate count is 253
Errors: [mean] 0.018, [max] 3512, [rel mean] 22.048
Best found code is:
['{16,16,1,320,2,1,0}([18]2,10,2)([19]3,10,9)([20]4,10,2)([21]5,10,2)([22]6,10,2)([23]7,10,2)([24]8,10,2)([25]9,10,2)([26]2,11,2)([27]26,19,4)([28]26,19,2)([29]3,11,2)([30]29,20,4)([31]29,20,2)([32]30,28,4)([33]30,28,2)([34]31,33,3)([35]4,11,9)([36]35,21,4)([37]35,21,2)([38]36,34,4)([39]36,34,8)([40]37,39,3)([41]5,11,2)([42]41,22,4)([43]41,22,2)([44]42,40,4)([45]42,40,2)([46]43,45,3)([47]6,11,2)([48]47,23,4)([49]47,23,2)([50]48,46,4)([51]48,46,2)([52]49,51,3)([53]7,11,2)([54]53,24,4)([55]53,24,2)([56]54,52,4)([57]54,52,2)([58]55,57,3)([59]8,11,2)([60]59,25,4)([61]59,25,2)([62]60,58,4)([63]60,58,2)([64]61,63,9)([65]9,11,8)([66]65,64,4)([67]65,64,9)([68]2,12,2)([69]68,32,4)([70]68,32,2)([71]3,12,2)([72]71,38,4)([73]71,38,2)([74]72,70,4)([75]72,70,2)([76]73,75,3)([77]4,12,2)([78]77,44,4)([79]77,44,2)([80]78,76,4)([81]78,76,2)([82]79,81,3)([83]5,12,2)([84]83,50,9)([85]83,50,2)([86]84,82,4)([87]84,82,2)([88]85,87,3)([89]6,12,2)([90]89,56,4)([91]89,56,2)([92]90,88,4)([93]90,88,2)([94]91,93,3)([95]7,12,2)([96]95,62,4)([97]95,62,2)([98]96,94,4)([99]96,94,2)([100]97,99,3)([101]8,12,2)([102]101,66,4)([103]101,66,2)([104]102,100,4)([105]102,100,2)([106]103,105,3)([107]9,12,2)([108]107,67,4)([109]107,67,2)([110]108,106,9)([111]108,106,2)([112]109,111,3)([113]2,13,2)([114]113,74,4)([115]113,74,2)([116]3,13,2)([117]116,80,4)([118]116,80,2)([119]117,115,8)([120]117,115,2)([121]118,120,3)([122]4,13,2)([123]122,86,8)([124]122,86,2)([125]123,121,4)([126]123,121,2)([127]124,126,3)([128]5,13,2)([129]128,92,4)([130]128,92,2)([131]129,127,8)([132]129,127,8)([133]130,132,3)([134]6,13,2)([135]134,98,4)([136]134,98,2)([137]135,133,4)([138]135,133,2)([139]136,138,3)([140]7,13,2)([141]140,104,4)([142]140,104,2)([143]141,139,4)([144]141,139,9)([145]142,144,3)([146]8,13,2)([147]146,110,8)([148]146,110,2)([149]147,145,4)([150]147,145,2)([151]148,150,3)([152]9,13,2)([153]152,112,4)([154]152,112,2)([155]153,151,4)([156]153,151,2)([157]154,156,3)([158]2,14,2)([159]158,119,4)([160]158,119,2)([161]3,14,2)([162]161,125,4)([163]161,125,2)([164]162,160,4)([165]162,160,2)([166]163,165,3)([167]4,14,2)([168]167,131,4)([169]167,131,2)([170]168,166,4)([171]168,166,2)([172]169,171,3)([173]5,14,2)([174]173,137,4)([175]173,137,2)([176]174,172,4)([177]174,172,2)([178]175,177,3)([179]6,14,8)([180]179,143,4)([181]179,143,2)([182]180,178,4)([183]180,178,2)([184]181,183,3)([185]7,14,2)([186]185,149,4)([187]185,149,2)([188]186,184,4)([189]186,184,2)([190]187,189,3)([191]8,14,2)([192]191,155,4)([193]191,155,2)([194]192,190,4)([195]192,190,2)([196]193,195,3)([197]9,14,2)([198]197,157,4)([199]197,157,2)([200]198,196,4)([201]198,196,2)([202]199,201,3)([203]2,15,2)([204]203,164,4)([205]203,164,2)([206]3,15,2)([207]206,170,4)([208]206,170,2)([209]207,205,4)([210]207,205,2)([211]208,210,9)([212]4,15,2)([213]212,176,4)([214]212,176,2)([215]213,211,4)([216]213,211,2)([217]214,216,3)([218]5,15,2)([219]218,182,4)([220]218,182,2)([221]219,217,4)([222]219,217,2)([223]220,222,3)([224]6,15,2)([225]224,188,4)([226]224,188,2)([227]225,223,8)([228]225,223,2)([229]226,228,9)([230]7,15,2)([231]230,194,4)([232]230,194,2)([233]231,229,4)([234]231,229,2)([235]232,234,3)([236]8,15,2)([237]236,200,4)([238]236,200,2)([239]237,235,4)([240]237,235,2)([241]238,240,3)([242]9,15,2)([243]242,202,4)([244]242,202,2)([245]243,241,4)([246]243,241,2)([247]244,246,3)([248]2,16,2)([249]248,209,8)([250]248,209,2)([251]3,16,2)([252]251,215,9)([253]251,215,2)([254]252,250,4)([255]252,250,2)([256]253,255,3)([257]4,16,2)([258]257,221,9)([259]257,221,2)([260]258,256,4)([261]258,256,9)([262]259,261,3)([263]5,16,2)([264]263,227,4)([265]263,227,2)([266]264,262,4)([267]264,262,2)([268]265,267,9)([269]6,16,2)([270]269,233,4)([271]269,233,2)([272]270,268,4)([273]270,268,2)([274]271,273,3)([275]7,16,2)([276]275,239,4)([277]275,239,2)([278]276,274,4)([279]276,274,2)([280]277,279,3)([281]8,16,2)([282]281,245,4)([283]281,245,2)([284]282,280,4)([285]282,280,2)([286]283,285,3)([287]9,16,2)([288]287,247,4)([289]287,247,2)([290]288,286,4)([291]288,286,2)([292]289,291,3)([293]2,17,2)([294]293,254,4)([295]293,254,2)([296]3,17,2)([297]296,260,4)([298]296,260,2)([299]297,295,4)([300]297,295,2)([301]298,300,3)([302]4,17,2)([303]302,266,4)([304]302,266,2)([305]303,301,4)([306]303,301,2)([307]304,306,3)([308]5,17,8)([309]308,272,4)([310]308,272,2)([311]309,307,4)([312]309,307,2)([313]310,312,3)([314]6,17,2)([315]314,278,4)([316]314,278,2)([317]315,313,4)([318]315,313,2)([319]316,318,3)([320]7,17,2)([321]320,284,4)([322]320,284,2)([323]321,319,4)([324]321,319,2)([325]322,324,3)([326]8,17,2)([327]326,290,4)([328]326,290,2)([329]327,325,4)([330]327,325,2)([331]328,330,3)([332]9,17,2)([333]332,292,4)([334]332,292,2)([335]333,331,4)([336]333,331,2)([337]334,336,3)(18,27,69,114,159,204,249,294,299,305,311,317,323,329,335,337)']
with mean error 1.786% and fitness 253.
Circuit has been reduced to 79.1% of original circuit.

Experiments

For more experiments with different errors, please check EXPERIMENTS.md.

About

approximations of arithmetic circuits using Cartesian Genetic Programming

Topics

Resources

Stars

Watchers

Forks

Languages

AltStyle によって変換されたページ (->オリジナル) /