gpt4 book ai didi

python - 以最经济的努力取得合理结果的算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:51:26 25 4
gpt4 key购买 nike

假设读书时有六种问题需要处理,
我详细说明如下:

while True:
if encounter A :
handle A
#during handling the problem, it might spawn new problems of
#A, B, C, D, E,
produce (A,B..E or null)
continue

if B occurs:
handle B
#during hanlding the problem, it might spwan new problems
#A, B, C, D, E,
produce (A,B..E or null)
continue

if C happens:
handle C
produce (A,B..E or null)
continue
...

if there are no problmes:
break

假设我有3个问题,
上面的程序可能会在第一个上无限循环而永远不会触及第二个。

举个例子,我正在看书,
'问题A'定义为遇到一个'生词',处理它就是查字典。
抬头时,我可能会遇到另一个新词,一个又一个。
在这种情况下,我永远不会把一本书的一句话看完。

作为解决方案,
我引入了一个容器来收集问题,对它们进行值(value)加权,然后确定执行哪一个。

def solve_problems(problems)
problem_backet = list(problems)
while True:
if problem_backet not is null:
#value-weighted all the problem
#and determine one to implement
value_weight problems
problem = x

if problem == A:
handle A
problem_backet.append(new_problem)
continue

if problem == B:
handle B
problem_backet.append(new_problem)
continue
...
if problem_backet is null:
return

我尝试交替寻求灵感和提高效率。

def solve_problems(problems):
global problem_backet
problem_backet = list(problems)
value_weight problems
problem = x
if problem == A:
handle A
problem_backet.append(new_problem)
solve_problems(problem_backet)
if problem == B:
handle B
problem_backet.append(new_problem)
solve_problems(problem_backet)
if problem == C:
handle C
problem_backet.append(new_problem)
solve_problems(problem_backet)
...
if problem_backet is null:
return

同样,value_weighted 过程耗费了大量的精力和时间。

如何用合适的算法解决这样的问题?

最佳答案

'Problem A' is defined as encounter a 'new word', handle it is to look up dictionary. When looking up, I might come across another new word, another and another. In this case, I will never end up reading one sentence of a book.

看起来它最终会读完这个句子,因为新单词的数量受到字典大小的限制。总的来说,我觉得还可以,除非有一些其他没有明确提到的限制,比如在有限的时间内完成句子阅读。

How to solve such a problem in a proper algorithms?

好吧,如果没有“限时”的限制,你原来的算法就几近完美了。为了使其在整体性能方面更好,我们可能会首先处理所有问题 A,然后移动到 B 等等。它将提高我们算法的数据局部性和整体性能。

但是如果有“限时”的限制,我们可以在那段时间内读完完整的句子(没有完全理解)或者读完句子的一部分(完全理解那部分)或者介于两者之间(如建议的那样)作者@Lauro Bravar)。

从上面的例子中我们不太清楚我们是如何处理value_weight的,但是这类问题的正确名称是Priority Queueing。有多种算法和实现,详情请查看维基百科页面:https://en.wikipedia.org/wiki/Priority_queue

关于python - 以最经济的努力取得合理结果的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49748266/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com