惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

P
Palo Alto Networks Blog
Recent Commits to openclaw:main
Recent Commits to openclaw:main
C
CERT Recently Published Vulnerability Notes
C
Cybersecurity and Infrastructure Security Agency CISA
S
Schneier on Security
S
Securelist
酷 壳 – CoolShell
酷 壳 – CoolShell
C
CXSECURITY Database RSS Feed - CXSecurity.com
Cyberwarzone
Cyberwarzone
Apple Machine Learning Research
Apple Machine Learning Research
S
SegmentFault 最新的问题
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
GbyAI
GbyAI
Security Latest
Security Latest
Last Week in AI
Last Week in AI
Microsoft Security Blog
Microsoft Security Blog
云风的 BLOG
云风的 BLOG
Recorded Future
Recorded Future
Webroot Blog
Webroot Blog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
TaoSecurity Blog
TaoSecurity Blog
C
Cisco Blogs
博客园 - 【当耐特】
Blog — PlanetScale
Blog — PlanetScale
Hugging Face - Blog
Hugging Face - Blog
B
Blog
Hacker News - Newest:
Hacker News - Newest: "LLM"
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Attack and Defense Labs
Attack and Defense Labs
The Last Watchdog
The Last Watchdog
U
Unit 42
阮一峰的网络日志
阮一峰的网络日志
Project Zero
Project Zero
WordPress大学
WordPress大学
L
LINUX DO - 最新话题
F
Fortinet All Blogs
L
LINUX DO - 热门话题
PCI Perspectives
PCI Perspectives
Simon Willison's Weblog
Simon Willison's Weblog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
MongoDB | Blog
MongoDB | Blog
Latest news
Latest news
P
Proofpoint News Feed
T
Threat Research - Cisco Blogs
The Hacker News
The Hacker News
爱范儿
爱范儿
O
OpenAI News
J
Java Code Geeks
T
The Exploit Database - CXSecurity.com
H
Hackread – Cybersecurity News, Data Breaches, AI and More

博客园 - Goodspeed

几种常见的函数 Caesar cipher Transport scheme NOT recognized: [stomp] error running git Canvas 旋转的图片 canvas时钟 火箭起飞 让图标转起来 Tomcat启动脚本 Task中的异常处理 Parallel的陷阱 用Task代替TheadPool 使用ThreadPool代替Thread 正确停止线程 线程同步中使用信号量AutoResetEvent 异步和多线程的区别 C#和.NET Framework的关系 为什么泛型不支持协变性? 可空值类型与值类型这间的转换
遗传算法之背包问题
Goodspeed · 2019-10-12 · via 博客园 - Goodspeed
def gen():
    #print(gen_grade([0, 1, 1, 0, 1, 1]))
    seeds = [[1,0,0,1,1,0], [0,0,1,1,1,0],[0,1,0,1,0,0],[0,1,1,0,0,1]]
    count_down = 1000
    while count_down > 0:
        grade_table = [(seed,gen_grade(seed)) for seed in seeds]
        best = max(grade_table,key = lambda x:x[1])
        print(best)
        # print(seeds)
        dad = survival(grade_table)
        mom = survival([(s,g) for s,g in grade_table if s != dad])
        seeds = [dad, mom] + off_spring(dad, mom) +[best[0]]
        # print(seeds)
        count_down -= 1


def off_spring(dad, mom):
    bro, sis = dad[:3] + mom[3:],mom[:3] + dad[3:]
    #变异
    r =  random.randint(0,5)
    monster = bro.copy()
    # print(r, monster)
    monster[r] = 1 if monster[r] == 0 else 0
    # print(monster)
    return [bro, sis, monster]

def survival(grade_table):
    total = sum([g for s,g, in grade_table])
    r = random.randint(0,total)
    total = 0
    for seed, g in grade_table:
        total += g
        if r <= total:
            return seed
    print (r, grade_table)



def gen_grade(chromosome):
    grade_table = [(15,15),(3,7),(2,10),(5,5),(9,8),(20,17)]
    grades = [grade_table[i] for i,x in enumerate(chromosome) if x > 0]
    if sum([w for w,s in grades]) > 30:
        return 0
    return sum([s for w,s in grades])