PPackSerein
Espacio de programación con IA

Valor de mochila cero-uno

Maximiza el valor de hasta 64 pares de peso y valor con capacidad entera entre cero y 1000, usando cada objeto una vez.

● ● ●PackSerein●
Flujos de trabajo · Valor de mochila cero-uno ×
def knapsack_value(items, capacity):
    items = tuple(tuple(item) for item in items)
    if type(capacity) is not int or not 0 <= capacity <= 1000:
        raise ValueError("capacity.range")
    if len(items) > 64 or any(len(item) != 2 for item in items):
        raise ValueError("items.shape")
    if any(type(w) is not int or type(v) is not int or not 1 <= w <= 1000 or not 0 <= v <= 1000000 for w, v in items):
        raise ValueError("item.range")
    best = [0] * (capacity + 1)
    for weight, value in items:
        for limit in range(capacity, weight - 1, -1):
            best[limit] = max(best[limit], best[limit - weight] + value)
    return best[capacity]
✳Maximiza el valor de hasta 64 pares de peso y valor con capacidad entera entre cero y 1000, usando cada objeto una vez.
✓ CambiosRevisa antes de aplicar ↗
Vista ilustrativa
  1. Revisa antes de aplicar

    Compara el comportamiento real con el resultado esperado. Si una prueba falla, investiga la causa antes de hacer más cambios.

  2. Modelos

    Configura un endpoint compatible con OpenAI o Anthropic usando la URL base y, si hace falta, una clave API. Prueba la conexión. Un servidor local debe estar en ejecución; las herramientas remotas pueden enviar datos por separado.

  3. Proyecto

    Prueba capacidad cero y un objeto demasiado pesado, rechazando pesos cero u operandos no enteros antes de crear la tabla.

Flujos de trabajo

Valor de mochila cero-uno

Flujos de trabajo ↗
Flujos de trabajo
def knapsack_value(items, capacity):
    items = tuple(tuple(item) for item in items)
    if type(capacity) is not int or not 0 <= capacity <= 1000:
        raise ValueError("capacity.range")
    if len(items) > 64 or any(len(item) != 2 for item in items):
        raise ValueError("items.shape")
    if any(type(w) is not int or type(v) is not int or not 1 <= w <= 1000 or not 0 <= v <= 1000000 for w, v in items):
        raise ValueError("item.range")
    best = [0] * (capacity + 1)
    for weight, value in items:
        for limit in range(capacity, weight - 1, -1):
            best[limit] = max(best[limit], best[limit - weight] + value)
    return best[capacity]
Espacio de programación con IA

Distingue la regla de selección del código que la implementa

PackSerein facilita el desarrollo de software con ayuda de IA en un espacio de proyectos para Windows donde analizar los requisitos de optimización junto con los archivos de implementación. Describe qué se puede seleccionar, qué restricciones son obligatorias y qué resultado necesita realmente el código llamante. Pide al asistente que inspeccione la representación actual antes de cambiar el algoritmo de resolución. Un objetivo claro evita que una implementación plausible resuelva un problema sutilmente diferente.

El ejemplo knapsack.py sugiere una revisión en la que cada elemento se puede elegir como máximo una vez dentro de un límite de capacidad. Puedes preguntar si un cambio propuesto conserva esa regla y si la aplicación necesita solo un valor o también los elementos elegidos. Resuelve manualmente un caso pequeño y examina el código según ese caso. Mantén los límites de entrada y los valores rechazados dentro de la misma revisión.

Cuando el cambio esté listo, ejecuta las pruebas del proyecto para una selección vacía, un límite de capacidad y combinaciones que compitan entre sí. Comprueba el contrato de salida antes de adaptar el consumidor. PackSerein admite endpoints compatibles con OpenAI o de Anthropic y credenciales cuando sean necesarias. Puedes seleccionar un modelo de IA sin filtros si tu conexión lo ofrece; sus restricciones, límites de contexto y compatibilidad con herramientas siguen dependiendo del modelo y del servidor. El espacio de trabajo ayuda a estructurar la decisión de programación, mientras que tus comprobaciones determinan si cumple el objetivo.

Preguntas que definen una tarea de optimización

¿Por qué indicar si un elemento se puede seleccionar dos veces?

Permitir selecciones repetidas cambia el problema y puede cambiar el resultado. Incluye esa restricción en la solicitud y prueba un caso pequeño en el que repetir produciría otra respuesta; después inspecciona si el cambio la conserva.

¿Basta con un valor óptimo para la aplicación?

Depende del código llamante. Algunos consumidores solo necesitan la puntuación, mientras que otros también necesitan los elementos seleccionados. Indica la salida requerida antes de pedir cambios para que el asistente no suponga que un número completa la función.

¿Cómo debo tratar soluciones de igual valor?

Define si se acepta cualquier óptimo válido o si la aplicación necesita una regla determinista de desempate. Si se devuelven los elementos seleccionados, prueba los empates explícitamente y revisa la regla en lugar de depender de un orden de iteración incidental.

¿Puede el ejemplo demostrar el rendimiento del algoritmo a gran escala?

No. Úsalo para analizar una implementación acotada y evalúa después el proyecto real con los tamaños exigidos. Un caso pequeño correcto y una explicación de IA no demuestran el comportamiento temporal o de memoria a otra escala.

Descargar para Windows ↗

PackSerein · Actualizado 2026-10-25