小编tob*_*s_k的帖子

遗传/进化算法 - 画家

我的任务:

创建一个程序来复制图片(仅作为输入)使用基元(如三角形或其他东西).程序应使用进化算法来创建输出图像.


我的问题:

我需要发明一种算法来创建种群并检查它们(多少 - 以%为单位 - 它们与输入图像匹配).我有个主意; 你可以在下面找到它.

所以我想要你:建议(如果你发现我的想法不那么糟糕)或灵感(也许你有更好的主意?)


我的想法:

假设我将仅使用三角形来构建输出图片.

我的第一个人口是P图片(通过使用T随机生成的三角形生成 - 称为元素).

我通过我的健身功能检查每个人口中的图片,并选择他们的E作为精英,其余的人口只是删除:

    To compare 2 pictures we check every pixel in picture A and compare his R,G,B with
    the same pixel (the same coordinates) in picture B.
    I use this: 
           SingleDif = sqrt[ (Ar - Br)^2 + (Ag - Bg)^2 + (Ab - Bb)^2]
    then i sum all differences (from all pixels) - lets call it SumDif
    and use:
           PictureDif = …
Run Code Online (Sandbox Code Playgroud)

algorithm genetic-algorithm evolutionary-algorithm

6
推荐指数
1
解决办法
480
查看次数

使用python进行拉丁超立方体采样

我想对一个函数定义的分布进行多维(2、3、4)采样:

f(x, y, ...) = ...
Run Code Online (Sandbox Code Playgroud)

分布可能是丑陋的,非标准的(例如数据上的3D样条曲线,高斯之和等)。为此,我想对2..4维空间进行统一采样,而不是使用一个额外的随机数来接受或拒绝该空间的给定点进入样本。

  1. 是否有为此目的准备使用python lib?

  2. 是否有python lib可以通过拉丁超立方体采样或其他统一采样方法在2..4维空间中生成点?具有独立随机数的Bruteforce采样通常会导致空间密度越来越小。

  3. 如果1)和2)不存在,那么是否有人善良地分享相同或相似问题的实现。

我将在python代码中使用它,但也认可到其他解决方案的链接。

python random sampling

6
推荐指数
4
解决办法
1万
查看次数

为什么我的for循环跳过列表中的元素?

我有一个整数列表,我通过for循环运行,以发现两个元素组合是否等于另一个变量t.所以如果t等于10并且我有一个整数列表: l = [1,2,3,4,5,8,9]那么该函数应该打印所有不同的数字组合(1,9),(2,8).

我觉得我差不多了,但是当我使用这个.pop()功能时,列表中发生了一些奇怪的事情.下面的代码用于显示需要计算的所有数字组合,但会跳过列表中的每个其他元素.

l = [1,2,5,8,13,15,26,38]
c = 10
for i in l:
    first = i
    l.pop(0)
    for x in l:
        second = x
        print(first,second)
Run Code Online (Sandbox Code Playgroud)

这是输出:

1 2
1 5
1 8
1 13
1 15
1 26
1 38
5 5
5 8
5 13
5 15
5 26
5 38
13 8
13 13
13 15
13 26
13 38
26 …
Run Code Online (Sandbox Code Playgroud)

python loops for-loop

6
推荐指数
1
解决办法
5730
查看次数

使用方法调用在 Python 中格式化多行

Python 中用于格式化多行方法调用代码的可接受样式是什么?

my_obj.call(x,y).multiple(*args).methods([1,2,3])
Run Code Online (Sandbox Code Playgroud)

在括号/圆括号后使用隐式换行符,它看起来像这样:

my_obj.call(
  x, y).multiple(
  *args).methods(
  [1,2,3])
Run Code Online (Sandbox Code Playgroud)

这有点难看,并不适合典型的 Python 风格。

  1. 使用反斜杠格式化多个方法调用是否可以接受\

    my_obj.call(x, y) \
      .multiple(*args) \
      .methods([1,2,3])
    
    Run Code Online (Sandbox Code Playgroud)
  2. 如果可以接受,那么在方法调用之后的行中使用两个空格是否也可以接受,或者应该没有缩进?

python coding-style code-formatting pep8

6
推荐指数
2
解决办法
6215
查看次数

HashMap中Holder类的用途是什么?

我发现在HashMap我们的内部类中Holder有以下描述:

/**
 * holds values which can't be initialized until after VM is booted.
 */
Run Code Online (Sandbox Code Playgroud)

我们如何以及何时使用该课程?它的用途是什么?请解释.

java collections hashmap

5
推荐指数
1
解决办法
923
查看次数

在Python 3.5中,如何将函数指定为类型提示?

指定变量应该是函数(相当于委托Func<T>还是ActionC#)的适当类型提示是什么?

是否也可以以通用方式指定函数参数类型(例如Func<int, int>)?

我在文档中找不到任何相关细节.

python static-typing type-hinting python-3.x

5
推荐指数
1
解决办法
391
查看次数

迭代python中的列表

我有序列L的列表(序列的1000多家公司)l = [ABCD,AABA,...].我还有一个f包含许多4个字母序列的文件(大约一百万个).我想l为每个序列选择最接近的字符串,f最多为汉明距离2,并更新计数器good_count.我为此编写了以下代码,但速度非常慢.我想知道它是否可以更快地完成.

def hamming(s1, s2):
    if len(s1) != len(s2):
            raise ValueError("Undefined for sequences of unequal length")  
    return sum(ch1 != ch2 for ch1, ch2 in zip(s1, s2))

f = open("input.txt","r")

l = [ABCD,AABA,...]

good_count = 0
for s in f:
     x = f.readline()
     dist_array = []
     for ll in l:
        dist = hamming(x,ll)
        dist_array.append(dist)
     min_dist = min(dist_array)
     if min_dist <= 2:
        good_count += 1
print good_count
Run Code Online (Sandbox Code Playgroud)

它的工作原理快,如果lf …

python

5
推荐指数
1
解决办法
122
查看次数

将带有列表的嵌套字典展开到pandas DataFrame中

我有一个嵌套字典,子字典使用列表:

nested_dict = {'string1': {69: [1231, 232], 67:[682, 12], 65: [1, 1]}, 
    `string2` :{28672: [82, 23], 22736:[82, 93, 1102, 102], 19423: [64, 23]}, ... }
Run Code Online (Sandbox Code Playgroud)

列表中至少有两个元素用于子词典,但可能会有更多.

我想将这个字典"展开"成一个pandas DataFrame,第一个字典键有一列(例如'string1','string2',..),一个列用于子目录键,一列用于第一个字典键列表中的项目,下一个项目的一列,依此类推.

这是输出应该是什么样子:

col1       col2    col3     col4    col5    col6
string1    69      1231     232
string1    67      682      12
string1    65      1        1
string2    28672   82       23
string2    22736   82       93      1102    102
string2    19423   64       23
Run Code Online (Sandbox Code Playgroud)

当然,我尝试使用pd.DataFrame.from_dict:

new_df = pd.DataFrame.from_dict({(i,j): nested_dict[i][j] 
                           for i in nested_dict.keys() 
                           for j in nested_dict[i].keys()
                           ... 
Run Code Online (Sandbox Code Playgroud)

现在我被卡住了.并且存在许多问题:

  1. 如何解析字符串(即nested_dict[i].values() …

python dictionary pandas

5
推荐指数
1
解决办法
1451
查看次数

使用 with 和 try..except 时如何关闭文件?

我写这个例子是为了向自己展示__exit__在发生异常时没有运行:

class A(object):
    def __enter__(self):
        print('enter')
    def __exit__(self):
        print('exit')
try:
    with A() as a:
        raise RunTimeError()
except Exception as e:
    print('except')
Run Code Online (Sandbox Code Playgroud)

输出:

enter
except
Run Code Online (Sandbox Code Playgroud)

也就是说with,在确保__exit__最终运行的同时,使用语句和捕获异常的正确方法是什么?谢谢!

python

5
推荐指数
1
解决办法
226
查看次数

选择不相邻的单元格:算法的时间复杂度

有一个由 N 个 1x1 方格组成的区域,并且该区域的所有部分都是相连的(没有任何方格无法到达的方格)。下面是一些面积的例子。

在此处输入图片说明

我想在这个区域中选择一些方块,并且两个相邻的方块不能一起选择(对角接触是不相邻的)。

我可以在时间复杂度 O(N) 内找到最大数量的选定方块吗?我该怎么办?

非常感谢。

algorithm

5
推荐指数
1
解决办法
72
查看次数